loriYagami 发表于 2017-3-16 12:49:53

[原创开源]创建进程监控并注入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破坏你的计算机,概不负责。

源码:

Tesla.Angela 发表于 2017-3-16 14:59:38

其实单独使用PsSetLoadImageNotifyRoutine修改IAT就可以实现在进程启动时注入DLL了,支持XP到WIN10。

至于HOOK什么NtTestAlert之类的方法就烂大街了。

loriYagami 发表于 2017-3-16 15:22:35

Tesla.Angela 发表于 2017-3-16 14:59
其实单独使用PsSetLoadImageNotifyRoutine修改IAT就可以实现在进程启动时注入DLL了,支持XP到WIN10。

至于 ...

受教了,我研究一下修改IAT的方法

Tesla.Angela 发表于 2017-3-16 15:24:53

loriYagami 发表于 2017-3-16 15:22
受教了,我研究一下修改IAT的方法

如果发SRC出来让其他人学习下,可以给精华。

loriYagami 发表于 2017-3-16 15:52:29

Tesla.Angela 发表于 2017-3-16 15:24
如果发SRC出来让其他人学习下,可以给精华。

你是说我现在弄得这个?当然可以。知识就是用来传播的,我只是头一次发帖,不知道水深浅。怕大家笑话。那我发出来了。

Tesla.Angela 发表于 2017-3-16 15:54:55

loriYagami 发表于 2017-3-16 15:52
你是说我现在弄得这个?当然可以。知识就是用来传播的,我只是头一次发帖,不知道水深浅。怕大家笑话。那 ...

好。直接在本贴更新即可。

loriYagami 发表于 2017-3-16 16:28:14

Tesla.Angela 发表于 2017-3-16 15:54
好。直接在本贴更新即可。

哦了

Tesla.Angela 发表于 2017-3-17 09:02:54

loriYagami 发表于 2017-3-16 16:28
哦了

已高亮并加精。恭喜,一贴成为中级会员。

loriYagami 发表于 2017-3-17 20:57:21

补充一句:帖子里关于WIN10安装失败的问题找到了。原来只是因为KMDF的原因,只需要使用WDM工程即可,原因就是 内核驱动安装需要好几个文件,单服务驱动是启动不了的,而WDM工程可以编译NT驱动。

heshibin 发表于 2017-4-21 21:03:12

学习了!!!!!!!!!!!!

ad7790h 发表于 2017-4-22 19:05:02

最好说一下原理哈

loriYagami 发表于 2017-7-12 14:04:04

ad7790h 发表于 2017-4-22 19:05
最好说一下原理哈

源码说明一切

aqtata 发表于 2018-1-10 09:37:44

正好在找驱动DLL注入的方法,学习一下,谢谢。
页: [1]
查看完整版本: [原创开源]创建进程监控并注入DLL