先解释一下远程进程,其实就是要植入你的代码的进程,相对于你的工作进程(如果叫本地进程的话)它就叫远程进程,可理解为宿主。 ~
cKmf]
vj+x(
首先介绍一下我们的主要工具CreateRemoteThread,这里先将函数原型简单介绍以下。 V'";u?h#S
R(?g+:eCpM
CreateRemoteThread可将线程创建在远程进程中。 ccUq!1
yX}riXe
函数原型 o2FQ/EIE
HANDLE CreateRemoteThread( z8SrZ#mg
HANDLE hProcess, // handle to process A{5^A)$
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD `Ns$HV
SIZE_T dwStackSize, // initial stack size H0zKL]D'>
LPTHREAD_START_ROUTINE lpStartAddress, // thread function 88)F-St
LPVOID lpParameter, // thread argument z9k3@\7
DWORD dwCreationFlags, // creation option `g2DN#q[0
LPDWORD lpThreadId // thread identifier 8\+Q*7~@i
); NArql
参数说明: TwlrncK*
hProcess jpl"KN?X
[输入] 进程句柄 fa7I6 i
lpThreadAttributes Pa.D+
[输入] 线程安全描述字,指向SECURITY_ATTRIBUTES结构的指针 nQ*9|v4
dwStackSize 6R%Ra
[输入] 线程栈大小,以字节表示 0-ISOA&
lpStartAddress yG)zrRU
[输入] 一个LPTHREAD_START_ROUTINE类型的指针,指向在远程进程中执行的函数地址 Pg]&^d&