先解释一下远程进程,其实就是要植入你的代码的进程,相对于你的工作进程(如果叫本地进程的话)它就叫远程进程,可理解为宿主。 X|&v]mJ
.)(5F45Wg
首先介绍一下我们的主要工具CreateRemoteThread,这里先将函数原型简单介绍以下。 Rtywi}VV2
Gx)U~L$B
CreateRemoteThread可将线程创建在远程进程中。 =;L44.,g
,I|3.4z
函数原型 bi{G
:xt
HANDLE CreateRemoteThread( o|7ztpr
HANDLE hProcess, // handle to process pu-X -j
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD t[e`wj+qz
SIZE_T dwStackSize, // initial stack size D9yAq'k$
LPTHREAD_START_ROUTINE lpStartAddress, // thread function G^1 5V'*
LPVOID lpParameter, // thread argument G/
sRiwL
DWORD dwCreationFlags, // creation option <@.!\
LPDWORD lpThreadId // thread identifier \u4`6EYF?
); yC&u^{~BC
参数说明: +HDfEo T
hProcess $I0&I[_LzK
[输入] 进程句柄
M4H~]Ftn
lpThreadAttributes r;n^\[Ov0,
[输入] 线程安全描述字,指向SECURITY_ATTRIBUTES结构的指针 :<p3L!?8y
dwStackSize 1S{AGgls5
[输入] 线程栈大小,以字节表示 62.)fCQ^
lpStartAddress )#os!Ns_A
[输入] 一个LPTHREAD_START_ROUTINE类型的指针,指向在远程进程中执行的函数地址 ntr&