如何枚举进程的模块?

时间:2010-08-18 22:13:02

标签: winapi

我的应用程序创建一个暂停的进程,通过VirtualQueryEx()获取进程的信息,但无法使用EnumProcessModules()获取进程的模块信息。

上述任务仅在未创建进程被挂起并且在调试器中命中断点时才完成(因此程序在执行调用之前运行)。

我正在尝试编写一个非常不错的反汇编程序,为此我需要暂停目标进程,但EnumProcessModules()不能对挂起的进程起作用。

有替代方案吗?

1 个答案:

答案 0 :(得分:1)

几年前我处理过这样的事情。如果我没记错的话,我最终做的是创建任务暂停,然后GetThreadContext,设置其陷阱标志SetThreadContext,恢复线程(运行一条指令),然后使用{{1} }。

当然,可能还有其他方法可以解决这个问题,但至少如果内存有效,那就是我当时想出来的东西,我似乎记得它的工作原理。