从64位应用程序(c#)中检索所有32位进程模块

本文关键字:32位 进程 模块 检索 应用程序 64位 | 更新日期: 2023-09-27 18:13:27

我有一个64位程序,从其他进程中检索进程模块,但当我试图从32位进程中获取模块时,我只得到:

  1. 应用程序可执行文件。——各种
  2. ntdll.dll - always
  3. wow64.dll - always
  4. wow64cpu.dll - always
  5. wow64win.dll - always

但是进程有许多其他模块。

我可以从64位应用程序(c#)中获得所有32位进程模块吗?

谢谢!

从64位应用程序(c#)中检索所有32位进程模块

是的,但是你需要p/invoke。

  • EnumProcessModulesEx

DbgHelp API可能会被诱导这样做,但是我被告知,尽管具有适当大小的结构,但当对Win32-on-Win64进程调用时,它只返回64位WOW64仿真层dll。

  • EnumerateLoadedModules64

wow64*模块是x86的思考层。所有的x86模块都应该显示为正在被思考模块加载。