我注意到DebugActiveProcess让你的进程成为另一个进程的调试器。 我看到这个函数让你知道调试对象的以下事件:异常,Createthread,CreateProcess,ExitThread,ExitProces,LoadDll,UnloadDll,OutputDebugString。 我的问题是,如果我们可以在没有WriteProcessMemory的情况下写入debuggee进程的内存?调试器是否存在于调试对象的上下文内存中?
谢谢!
答案 0 :(得分:2)
调试器存在于与其调试对象不同的进程中。因此,您需要使用ReadProcessMemory
和WriteProcessMemory
来访问调试对象的地址空间。
答案 1 :(得分:1)
除非您将代码注入您感兴趣的进程,否则这些是两个不同的进程:一个是调试器,另一个是调试对象。</ p>
您可以通过CreateProcess(cfr。process creation flags)启动调试对象,也可以将调试器附加到现有调试器,但无论如何它们仍然是两个不同的实体,您必须使用{{3}写信给它。
操作系统提供API来在目标进程上运行调试(并且您应该确保您有权执行此操作)。