我正在尝试用ReadProcessMemory读取整个进程,但由于某种原因,无论出于什么原因,尝试以较低的地址读取都会导致函数失败。
例如,如果我从一个进程中读取数据,我可以毫无问题地访问它的内存区域。但是进程的低位地址,比如0,是不能被访问的,在这些地址上ReadProcessMemory会失败。
我是否需要一些权限才能使用ReadProcessMemory访问整个流程
发布于 2020-12-17 19:55:48
有些内存页被故意设置为不可读,尤其是第一页,因为这样会检测到许多编程错误。
您可以使用VirtualQueryEx确定是否能够读取另一个进程中的内存页。
要确定内存页面的大小,请使用GetSystemInfo。
你必须一页一页地读内存。
另外,请查看这篇文章,它解释了为什么不应该使用IsBadReadPtr而不是VirtualQuery:IsBadXxxPtr should really be called CrashProgramRandomly
https://stackoverflow.com/questions/65338769
复制相似问题