[原创开源]创建进程监控并注入DLL
本人一直研究C++和ring3编程,鲜有接触驱动,但是关注了本论坛有一段时间。由于最近时间空闲且对驱动有一些兴趣,遂想具体研究学习一番,谁曾想注册本论坛账号就不是一帆风顺,期间还麻烦Tesla.Angela好几次,甚是不好意思,在這里表示感谢。本人驱动经验很少,所以如果有不专业的地放,敬请拍砖。
代码并非全部原创,各种互相参考实验学习。互联网嘛,天下代码一大抄,看你会抄不会抄。
废话不多说,直奔主题。
我做的是监控创建进程,并且实现注入DLL(不知道这算不算内核注入DLL)。
思路:
使用的PsSetCreateProcessNotifyRoutine, PsSetLoadImageNotifyRoutine.
在64系统中,注入64位exe:只需要inlinehook exe启动时必经的一个函数即可(通用性是最重要的)。
注入32位exe:需要OEPhook掉 32位版本的ntdll入口点(关于为什么不能像64位一样直接HOOK 64位的NTDLL,具体原因我也不清楚,哎,论理论知识的重要性)。
亲测 WIN7 X86,X64可用,win10不知何原因启动驱动服务时报错 errorcode:2 文件不存在。暂时没查到原因。
注:此DEMO可以注入到360进程中,但是360的主动防御注入失败,因为他的服务启动比我的驱动早。如果想注入也有办法。我不知道驱动编程对360是不是不算个事。长期在ring3下,我一直把挑战360作为我的乐趣。不喜勿喷。
下载测试,请使用虚拟机建立快照,如因DEMO破坏你的计算机,概不负责。
源码: 其实单独使用PsSetLoadImageNotifyRoutine修改IAT就可以实现在进程启动时注入DLL了,支持XP到WIN10。
至于HOOK什么NtTestAlert之类的方法就烂大街了。 Tesla.Angela 发表于 2017-3-16 14:59
其实单独使用PsSetLoadImageNotifyRoutine修改IAT就可以实现在进程启动时注入DLL了,支持XP到WIN10。
至于 ...
受教了,我研究一下修改IAT的方法 loriYagami 发表于 2017-3-16 15:22
受教了,我研究一下修改IAT的方法
如果发SRC出来让其他人学习下,可以给精华。 Tesla.Angela 发表于 2017-3-16 15:24
如果发SRC出来让其他人学习下,可以给精华。
你是说我现在弄得这个?当然可以。知识就是用来传播的,我只是头一次发帖,不知道水深浅。怕大家笑话。那我发出来了。 loriYagami 发表于 2017-3-16 15:52
你是说我现在弄得这个?当然可以。知识就是用来传播的,我只是头一次发帖,不知道水深浅。怕大家笑话。那 ...
好。直接在本贴更新即可。 Tesla.Angela 发表于 2017-3-16 15:54
好。直接在本贴更新即可。
哦了 loriYagami 发表于 2017-3-16 16:28
哦了
已高亮并加精。恭喜,一贴成为中级会员。 补充一句:帖子里关于WIN10安装失败的问题找到了。原来只是因为KMDF的原因,只需要使用WDM工程即可,原因就是 内核驱动安装需要好几个文件,单服务驱动是启动不了的,而WDM工程可以编译NT驱动。 学习了!!!!!!!!!!!! 最好说一下原理哈 ad7790h 发表于 2017-4-22 19:05
最好说一下原理哈
源码说明一切 正好在找驱动DLL注入的方法,学习一下,谢谢。
页:
[1]