所以...我需要从"notepad.exe"进程中获取peb,有人知道如何制作它吗?
我正在尝试使用"GetModuleHandle"API,但是...不会返回指针(每次都返回零),因为我必须是该模块的调用者进程.
出于这个原因,我想知道如何使用"EnumProcessModules"或"CreateToolhelp32Snapshot"来获取它.
如果有人知道请告诉我如何,提前谢谢!
Matt Pietrek在1994年的Under the Hood专栏中描述了如何做到这一点.它是关于如何获取另一个进程的环境变量,其中第一步是获取指向PEB的指针.为此,他说,打电话NtQueryInformationProcess
.PROCESS_BASIC_INFORMATION
它填充的结构包含PEB结构的基址.(您需要使用ReadProcessMemory
它来读取它,因为地址将位于外部进程的地址空间的上下文中,而不是您的地址空间.)
要打电话NtQueryInformationProcess
,您需要一个处理过程.如果您自己(通过调用CreateProcess
)启动了该过程,那么您已经拥有了一个句柄.否则,您需要找到进程ID然后调用OpenProcess
.要获取进程ID,请搜索所需的进程EnumProcesses
或Process32First
/ Process32Next
.(我更喜欢后者,因为它以较少的工作提供更多信息.)
归档时间: |
|
查看次数: |
5343 次 |
最近记录: |