【发布时间】:2011-11-02 22:11:31
【问题描述】:
我有一个 64 位程序,可以从其他进程中检索进程模块,但是当我尝试从 32 位进程中获取模块时,我只得到:
- 应用程序可执行文件。 - 各种
- ntdll.dll - 总是
- wow64.dll - 总是
- wow64cpu.dll - 总是
- wow64win.dll - 总是
但进程还有许多其他模块。
我可以从 64 位应用程序(C#)中获取所有 32 位进程模块吗?
谢谢!
【问题讨论】:
我有一个 64 位程序,可以从其他进程中检索进程模块,但是当我尝试从 32 位进程中获取模块时,我只得到:
但进程还有许多其他模块。
我可以从 64 位应用程序(C#)中获取所有 32 位进程模块吗?
谢谢!
【问题讨论】:
是的,但您需要 p/invoke。
DbgHelp API 可能会被哄骗来执行此操作,但我被告知尽管具有适当大小的结构,但在针对 Win32-on-Win64 调用时,它仅返回 64 位 WOW64 仿真层 DLL过程。
【讨论】:
wow64* 模块是 x86 的中继层。您的所有 x86 模块都应显示为由 thunking 模块加载。
【讨论】: