利用CreateRemoteThread来注入通常是个细致工作,就好比穿针引线,尤其是在嵌入汇编后,这种针线活很容易出错
利用以下断点:
bp CsrNewThread
可以在OD中调试注入后的代码,非常方便。
不过以上方法有可能在调试中不完全奏效,具体原因我还没有详细分析。
在以上方法失效时,我推倒用下面的更好的方法:
如果在CreateRemoteThread时,使用了将本地代码复制到目标进程的方法,那么恭喜你,
你可以利用VirtualAllocEx返回的目标进程启动函数地址在OD中快速定位到入口代码。
其具体步骤为:
- 使用OD打开目标进程
- 利用VirtualAllocEx在目标进程中分配内存
- 利用WirteProcessMemory将启动函数代码复制到目标进程中
- 获取VirtualAllocEx的目标进程地址
- 以线程标志CREATE_SUSPENDED执行CreateRemoteThread
- 阻塞注入的主进程
- 进入OD,按Ctrl + G,输入VirtualAllocEx返回的地址定位到入口函数
以后的步骤就随你喜好了