关于进程反注入的问题,请高手们不吝赐教!

我现在的问题是,有本地程序A.exe,这个A.exe每次启动后都被某个程序(暂且不知道是哪个,也不必要知道)进程注入,然后在A.exe退出的时候就弹出它设置好的对话框,或者是弹出IE,连接它设置好的网站。我现在想做一个守护A.exe的程序B.exe,使它能拦截其他的程序对A.exe进行进程注入,或者是,被进程注入后,使B.exe让注入的程序不能执行任何操作,请问各位高手,我这样的想法该如何实施?还望不吝提出好的思路,小弟将万分感激。

假设A程序是常规应用程序(使用标准的方法分配和使用内存,并在用户模式下运行)
方法1:在B程序中启动A程序,并获得A程序正常运行已分配保留的内存空间,将A程序未分配的进程虚拟空间全部分配保留(注意千万不要提交,否则会撑死你的机器),其他程序再也无法获得A程序的进程空间,它也就无法再注入A进程了。优点:简单,B程序几乎没有资源消耗。缺点:A进程自己要扩大堆内存虚拟空间也会失败(但常规应用程序一般不会出现堆扩大)。
方法2:在B程序中启动A程序,并获得A程序正常运行的线程,定时监视A程序线程,发现有新线程创建,就把它终止掉,因为注入程序往往需要在A进程创建自己的线程,否则不能在A进程中运行。优点:克服方法1的缺点。缺点:不适合A进程线程数不定的情况。
方法3:将1与2结合使用,改进1的智能程度,拦截空间分配异常中断,是A进程正常线程即释放给它,否则就饿死它。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-17
假设A程序是常规应用程序(使用标准的方法分配和使用内存,并在用户模式下运行)
方法1:在B程序中启动A程序,并获得A程序正常运行已分配保留的内存空间,将A程序未分配的进程虚拟空间全部分配保留(注意千万不要提交,否则会撑死你的机器),其他程序再也无法获得A程序的进程空间,它也就无法再注入A进程了。优点:简单,B程序几乎没有资源消耗。缺点:A进程自己要扩大堆内存虚拟空间也会失败(但常规应用程序一般不会出现堆扩大)。
第2个回答  2012-02-15
直接把A.exe丢进虚拟机,电脑上的就注入不了,连B.exe都省了
第3个回答  2012-02-13
这个......我也不怎么会......你去卡饭吧,这儿的"大神"很少.