DebugActiveProcess而不是WriteProcessMemory

时间:2014-09-08 11:26:07

标签: c++ winapi

我注意到DebugActiveProcess让你的进程成为另一个进程的调试器。 我看到这个函数让你知道调试对象的以下事件:异常,Createthread,CreateProcess,ExitThread,ExitProces,LoadDll,UnloadDll,OutputDebugString。 我的问题是,如果我们可以在没有WriteProcessMemory的情况下写入debuggee进程的内存?调试器是否存在于调试对象的上下文内存中?

谢谢!

2 个答案:

答案 0 :(得分:2)

调试器存在于与其调试对象不同的进程中。因此,您需要使用ReadProcessMemoryWriteProcessMemory来访问调试对象的地址空间。

答案 1 :(得分:1)

除非您将代码注入您感兴趣的进程,否则这些是两个不同的进程:一个是调试器,另一个是调试对象。<​​/ p>

您可以通过CreateProcess(cfr。process creation flags)启动调试对象,也可以将调试器附加到现有调试器,但无论如何它们仍然是两个不同的实体,您必须使用{{3}写信给它。

操作系统提供API来在目标进程上运行调试(并且您应该确保您有权执行此操作)。