远程线程注入是指一个进程在另一个进程中创建线程的技术。该技术可以用于:API Hook,破解软件所谓的“内存补丁”等。
将DLL注入到其它进程并不是难事,问题是这个被注入的DLL不太好调试。调试DLL是个比较头疼的问题,更何况是这种运行在其它进程空间的DLL。
几经周折,无意中发现了一个可以调试这种DLL的方法,现将该方法归纳总结如下。(有更好办法的朋友可以留言告知,一起成长)
一、准备
1. 详见教程
(一) Windows环境下的Detours编译
(一) Windows环境下的Detours编译_Code Captain的专栏-CSDN博客_detours 编译
说明:setdll.exe已经生成,存放路径如下所示:
二、dll注入具体调试前置条件
1. 打开*.exe所在目录,建议将*.pdb/*.exe/*.dll放置于同一目录,方便注入后的调试,以及setdll.exe的测试。
2. 启动命令行提示符,通过setdll.exe修改IAT。
setdll.exe/d:TestInjectDll.dll DllInject.exe
修改IAT成功后的结果如下所示:
PS:若dll未导出至少一个函数,将出现下图提示。因此,需要新增一个导出函数方能进行IAT修改。
导出函数限定符:__declspec(dllexport)
三、开始调试
启动工程开始调试,调试结果如下所示:
随后大家可以自行发挥了。
四、源码下载地址
https://github.com/Cavan2477/DllInjectTest.git
有任何问题请给我留言或直接联系我。