看了姜晔老师的反病毒视频,其中提到了这些流程,就记录下来,方便自己查阅。
注入的流程如下:
1、OpenProcess获得要注入进程的句柄
2、VirtualAllocEx在远程进程中开辟出一段内存,长度为strlen(dllname)+1
3、WriteProcessMemory将Dll的名字写入第二步开辟出的内存中
4、CreateRemoteThread将LoadLibraryA作为线程函数,参数为Dll的名称,创建新线程
5、CloseHandle关闭线程句柄
卸载的流程如下:
1、CreateRemoteThread将GetModuleHandle注入到远程线程中,参数为被注入的Dll名
2、GetExitCodeThread将线程退出的退出码作为Dll模块的句柄值
3、CreateRemoteThread将FreeLibraryA注入到远程进程中,参数为第二步获得的句柄值
4、WaitForSingleObject等待对象句柄返回
5、CloseHandle关闭线程及进程句柄