上一篇介绍了,使用API拦截劫持网址,这篇介绍如何在创建进程时指定其父进程。
我们使用PCHunter工具可以看到,大多数的进程都是由explorer.exe进程创建的,也就是桌面进程。
实际上explorer是由登录进程创建的。
从下面这张图中我们可以看出,explorer创建了KuGou等进程。
那我们要做的一件事情就是,我们的进程A创建一个进程B,然后A在创建B的时候,指定其父进程是C。
看看如何实现吧,在Xp下只要拦截NtCreateProcess就搞定了,NtCreateProcess的第四个参数就是父进程的句柄,改这个就可以了。
至于win7下是有API支持的,就是UpdateProcThreadAttribute,大家可以自己去MSDN上查看用法。
但是我们这里讲的是使用API拦截技术,所以在Win7下我们依然拦截API实现,Win7下需要拦截NtCreateUserProcess实现,
但是NtCreateUserProcess并没有一个参数对应其父进程的句柄,而是在最后一个参数AttributeList中包含那个父进程的句柄。
UpdateProcThreadAttribute这个API也是修改AttributeList来实现的,我是通过查看内存而找到的。
下面看下我实现后工具的截图,我创建notepad程序,并指定为explorer创建的。
也有人会说这个可以通过远程线程注入,向explorer注入一个dll来实现,这个方法确实可以,我只是提供一个方案。
你可以去这里下载这个小工具测试。http://download.csdn.net/detail/qq112358hai198771/9720400