进程注入的步骤

http://www.cnblogs.com/scarroot/archive/2008/09/16/1291506.html

使用CreateRemoteThread和LoadLibrary技术的步骤如下:
1.  得到远程进程的HANDLE(使用OpenProcess)。
2.  在远程进程中为DLL文件名分配内存(VirtualAllocEx)。
3.  把DLL的文件名(全路径)写到分配的内存中(WriteProcessMemory)
4.  使用CreateRemoteThread和LoadLibrary把你的DLL映射近远程进程。
5.  等待远程线程结束(WaitForSingleObject),即等待LoadLibrary返回。也就是说当我们的DllMain(是以DLL_PROCESS_ATTACH为参数调用的)返回时远程线程也就立即结束了。
6.  取回远程线程的结束码(GetExitCodeThtread),即LoadLibrary的返回值――我们DLL加载后的基地址(HMODULE)。
7.  释放第2步分配的内存(VirtualFreeEx)。
8.  用CreateRemoteThread和FreeLibrary把DLL从远程进程中卸载。调用时传递第6步取得的HMODULE给FreeLibrary(通过CreateRemoteThread的lpParameter参数)。
9.  等待线程的结束(WaitSingleObject)。

posted on 2011-12-01 11:53  l1b2q31  阅读(206)  评论(0编辑  收藏  举报

导航