先解释一下远程进程,其实就是要植入你的代码的进程,相对于你的工作进程(如果叫本地进程的话)它就叫远程进程,可理解为宿主。 f+>l-6M+p
D5]4(]k&
首先介绍一下我们的主要工具CreateRemoteThread,这里先将函数原型简单介绍以下。 WmU5YZ(mAq
WXz'H),R
CreateRemoteThread可将线程创建在远程进程中。 VxD_:USIF
n#@/A
函数原型 VA4>!t)
HANDLE CreateRemoteThread( ShXk\"
HANDLE hProcess, // handle to process yh9fHN)F
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD {ctEjgiE
SIZE_T dwStackSize, // initial stack size N[e QT
LPTHREAD_START_ROUTINE lpStartAddress, // thread function cBICG",TA
LPVOID lpParameter, // thread argument H:9Z.|{Gv
DWORD dwCreationFlags, // creation option "-aak )7w
LPDWORD lpThreadId // thread identifier JNhHQvi\
); w`Q"m x*
参数说明: 6u-@_/O5R3
hProcess / S
[输入] 进程句柄 /*g9drwaa
lpThreadAttributes ~" \qX+
[输入] 线程安全描述字,指向SECURITY_ATTRIBUTES结构的指针 aq-`Bar
dwStackSize ut6M$d4
[输入] 线程栈大小,以字节表示 4R_Vi[i
lpStartAddress 3V")~m
[输入] 一个LPTHREAD_START_ROUTINE类型的指针,指向在远程进程中执行的函数地址 fQ>=\*b9x^
lpParameter X r7pFw
[输入] 传入参数 '[u=q
-Lv
dwCreationFlags RQ?T~ASs
[输入] 创建线程的其它标志 /18Z4TA
]y&w