【问题标题】:How is it possible to access memory of other processes?如何访问其他进程的内存?
【发布时间】:2010-12-31 16:18:21
【问题描述】:

我认为一个进程无法读取其他进程的内存。但是我很震惊地看到一个名为“WinHex”的应用程序具有“RAM 编辑器”并且能够访问整个内存。 所有进程。

这怎么可能?它甚至可以修改其他进程的内存。这不是恶意的吗?

【问题讨论】:

  • 如果你有合适的权限,你可以读写任何东西。
  • 你可以用几乎任何调试器做同样的事情......再次,只要你有所需的权利。

标签: security winapi memory virtual-memory protected-mode


【解决方案1】:

该工具很可能使用ReadProcessMemory 或某些变体,这需要 PROCESS_VM_READ 访问权限。

关于您的“恶意”评论,请记住您(或调用此 API 的进程,可能需要管理员级别的权限)已经完全控制了机器。安全游戏在这一点上已经失败了。

【讨论】:

  • 天啊!!我从来不知道这一点。我应该立即将我的特权级别更改为较低的级别。我想这就是他们在 vista 和 windows 7 中添加用户确认选项的原因。
【解决方案2】:

嗯,这是由操作系统授予的具有正确权限的进程可以做的事情之一。进程原则上不能访问其他进程的内存。在实践中,底层操作系统通常会为特权进程提供这种机制。

【讨论】:

    【解决方案3】:

    访问其他进程的内存是小菜一碟。
    您甚至可以使用Windows Driver Kit 访问和修改所有内容

    查看rootkits 示例,了解不限制程序权限时操作系统的脆弱性

    【讨论】:

    【解决方案4】:

    如果您以管理员身份运行,您可以获得读取所有内存的权限;看来 WinHex 正在代表您执行此操作。

    您是否在更受限制的帐户上尝试过此操作?

    【讨论】:

      【解决方案5】:

      我认为它使用了一些 DLL 注入技术。

      更多信息请参见http://en.wikipedia.org/wiki/DLL_injection

      【讨论】:

        猜你喜欢
        • 2017-11-18
        • 2016-08-16
        • 2012-01-01
        • 1970-01-01
        • 2011-08-26
        • 2011-02-06
        • 1970-01-01
        • 1970-01-01
        • 2012-04-25
        相关资源
        最近更新 更多