通过这个简单的案例,我们可以明白以下几点:
1. 创建被调试进程之后,被调试进程的进程线程的句柄与ID如何获取(PROCESS_INFORMATION)。
2. DEBUG_EVENT 的数据结构,u是对应的事件种类的数据结构。
3. 等待被调试进程的大体流程:使用 WaitForDebugEvent,等待被调试事件;使用ContinueDebugEvent,继续执行被调试事件。
4. 加载DLL时如果输出DLL名字:这里有个坑,必须连续两次从目标进程中读取,第一次读取地址,第二次通过该地址获取DllName,即文件名。
1 #include "pch.h" 2 #include <iostream> 3 #include <Windows.h> 4 #include <string> 5 6 using namespace std; 7 8 int main() 9 { 10 CHAR DllName[MAX_PATH] = {'