ReadProcessMemory全过程

ReadProcessMemory entire process

我正在尝试使用 ReadProcessMemory 读取整个进程,但无论如何,出于某种原因,尝试读取低地址会导致函数失败。

例如,如果我正在从一个进程中读取数据,我可以毫无问题地访问其内存区域。但是进程的较低地址,如 0,无法访问并且 ReadProcessMemory 在这些地址上失败。

是否需要一些权限才能使用 ReadProcessMemory 访问整个进程?

一些内存页面被故意设置为不可读,尤其是第一页,因为它会检测到很多编程错误。

您可以通过 VirtualQueryEx.

确定您是否能够在另一个进程中读取内存页

要确定内存页的大小,请使用 GetSystemInfo

你必须一页一页地阅读记忆。

此外,请查看这篇解释为什么您不应使用 IsBadReadPtr 而不是 VirtualQuery 的文章:IsBadXxxPtr should really be called CrashProgramRandomly