线程是什么
如果说进程是个大房子,那么线程是进程中干活的人
线程是进程的灵魂
使用进程提供的数据 执行进程提供的代码
临时数据存储在计算机的寄存器中
创建线程
//在自己的进程中创建线程
CreateThread()
//在别人的进程中创建线程
HANDLE WINAPI CreateRemoteThread
(
_In_ HANDLE hProcess, //目标进程句柄
_In_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize, //目标线程栈大小
_In_ LPTHREAD_START_ROUTINE lpStartAddress,//目标线程地址
_In_ LPVOID lpParameter, //目标线程参数
_In_ DWORD dwCreationFlags,//创建标志位
_Out_ LPDWORD lpThreadId //返回被创建线程的ID
);
远程线程注入的关键点
- 通过
CreateRemoteThread
创建线程 - 被创建的线程的本体在
目标进程内部
- 被创建的线程使用的各类资源
均依赖于目标进程
思考:
如果利用之前学习过的知识将我们想要实现的代码加入到目标进程中去?