API拦截应用,改变一个进程的父进程

上一篇介绍了,使用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中包含那个父进程的句柄。

扫描二维码关注公众号,回复: 2302788 查看本文章

UpdateProcThreadAttribute这个API也是修改AttributeList来实现的,我是通过查看内存而找到的。

下面看下我实现后工具的截图,我创建notepad程序,并指定为explorer创建的。



也有人会说这个可以通过远程线程注入,向explorer注入一个dll来实现,这个方法确实可以,我只是提供一个方案。

你可以去这里下载这个小工具测试。http://download.csdn.net/detail/qq112358hai198771/9720400

猜你喜欢

转载自blog.csdn.net/qq112358hai198771/article/details/53862625