读书人

线程注入进程后进程是如何运行注入的

发布时间: 2012-01-23 21:57:28 作者: rapoo

线程注入进程后,进程是怎么运行注入的线程的?
看了篇远程注入的文章,有些地方不明白,希望大家给点解释为感。
文章中将自己的线程函数注入到其它进程中去的过程是这样的:
1、定义要插入到进程的线程函数
2、使用Windows提供的CreateRemoteThread函数来创建一个远程线程
3、得到进程的ID
4、使用CreateRemoteThread创建远程线程了
5、将线程注入到宿主进程之中
6、将线程要用到的字符串入函数入口地址写入宿主进程中
完成
我的疑问是,这样是完成了线程的注入,但宿主进程会在什么情况下运行我们写入的进程呢?(具体代码我还没写也没试过,只是想先把原理想通)


[解决办法]
创建了就开始运行了
CreateRemoteThread和常用的CreateThread是差不多的,只是一个在别人进程中运行,一个在自己进程中运行
[解决办法]
再你写的DLL 中,DllMain函数里if (dwReason == DLL_PROCESS_ATTACH)分支添加实际运行的函数代码。。。
CreateRemoteThread线程开启后,就可是运行
[解决办法]
你的线程只是使用了宿主进程的运行空间,而运行的问题是在注入的时候就运行了的,宿主并不知道你的线程要做什么以及怎样做.
[解决办法]
在 CreateRemoteThread 调用时刻起,你启用的线程上下文都是宿主进程的空间,所以需要的资源都应该映射到宿主进程才可以,这是要注意的。

读书人网 >VC/MFC

热点推荐