因此,我编写了一个程序,它能够使用 VirtualQueryEx
从大多数进程中成功读取内存。但是,我遇到过此功能失败的过程。不是系统进程,只是游戏进程。没有调试权限,我什至无法打开进程的句柄。通过它们,我能够获得进程的句柄,但仍然拒绝访问 VirtualQueryEx
。
我不确定,但也许这个过程是私有(private)的?如果是这样,我应该怎么做才能成功使用 VirtualQueryEx
函数?
我还在某处读到我可能必须在运行 VirtualQueryEx
之前挂起整个进程的线程,但到目前为止我不需要那个......当我使用函数 Thread32First
获取第一个线程时出现错误:ERROR_BAD_LENGTH
...
如有任何帮助,我将不胜感激!
最佳答案
如何打开进程句柄?来自 the doc :
The handle must have been opened with the
PROCESS_QUERY_INFORMATION
access right, which enables using the handle to read information from the process object.
另一种可能性是目标进程和您的进程的位数不同(32 对 64)。在这种情况下,您需要使用 MEMORY_BASIC_INFORMATION32
或类似 VirtualQueryEx64
from wow64ext library 的东西.
关于winapi - 使用 VirtualQueryEx 时访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18769151/