今天看到一篇文章,关于远程代码注入,大概思路如下:
通过“目标窗口”获得“目标窗口”的hWnd->通过hWnd获得“目标进程”的ID(ProcessID)->根据ProcessID打开“目标进程”获得进程句柄hProcess->利用hProcess在“目标进程”new出一块或多块空间(使用函数VirtualAllocEx)用于填放自己的代码和传入参数,假设预先new出的代码空间地址为pCodeRemote,参数空间地址为pParamRemote->把自己的参数和代码copy到上述new出的空间(使用WriteProcessMemory)->OK创建线程就可以了(使用CreateRemoteThread)。
思路有了,但是还是有很多要注意的地方的,注意点很容易造成致命错误而直接导致“目标进程”挂掉。
首先是你如何知道在“目标进程”该为自己的pCodeRemote分配多大的空间?
//------------------------------------------------------test
假设我是这样写的这个结构:
#include <windows.h>
//
Void WINAPI RemoteFunc