找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 18013|回复: 12

[原创开源]创建进程监控并注入DLL

  [复制链接]

3

主题

19

回帖

1

精华

金牌会员

积分
1262
发表于 2017-3-16 12:49:53 | 显示全部楼层 |阅读模式
        本人一直研究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破坏你的计算机,概不负责。

源码:

KMDF Driver2.zip

45.8 KB, 下载次数: 11909

src

评分

参与人数 1水晶币 +100 收起 理由
Tesla.Angela + 100 赞一个!

查看全部评分

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2017-3-16 14:59:38 | 显示全部楼层
其实单独使用PsSetLoadImageNotifyRoutine修改IAT就可以实现在进程启动时注入DLL了,支持XP到WIN10。

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

3

主题

19

回帖

1

精华

金牌会员

积分
1262
 楼主| 发表于 2017-3-16 15:22:35 | 显示全部楼层
Tesla.Angela 发表于 2017-3-16 14:59
其实单独使用PsSetLoadImageNotifyRoutine修改IAT就可以实现在进程启动时注入DLL了,支持XP到WIN10。

至于 ...

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

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2017-3-16 15:24:53 | 显示全部楼层
loriYagami 发表于 2017-3-16 15:22
受教了,我研究一下修改IAT的方法


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

3

主题

19

回帖

1

精华

金牌会员

积分
1262
 楼主| 发表于 2017-3-16 15:52:29 | 显示全部楼层
Tesla.Angela 发表于 2017-3-16 15:24
如果发SRC出来让其他人学习下,可以给精华。

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

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

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


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

3

主题

19

回帖

1

精华

金牌会员

积分
1262
 楼主| 发表于 2017-3-16 16:28:14 | 显示全部楼层
Tesla.Angela 发表于 2017-3-16 15:54
好。直接在本贴更新即可。

哦了

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2017-3-17 09:02:54 | 显示全部楼层

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

3

主题

19

回帖

1

精华

金牌会员

积分
1262
 楼主| 发表于 2017-3-17 20:57:21 | 显示全部楼层
补充一句:帖子里关于WIN10安装失败的问题找到了。原来只是因为KMDF的原因,只需要使用WDM工程即可,原因就是 内核驱动安装需要好几个文件,单服务驱动是启动不了的,而WDM工程可以编译NT驱动。
头像被屏蔽

0

主题

17

回帖

0

精华

禁止发言

积分
53
发表于 2017-4-21 21:03:12 | 显示全部楼层
学习了!!!!!!!!!!!!

0

主题

13

回帖

0

精华

铜牌会员

积分
62
发表于 2017-4-22 19:05:02 | 显示全部楼层
最好说一下原理哈

3

主题

19

回帖

1

精华

金牌会员

积分
1262
 楼主| 发表于 2017-7-12 14:04:04 | 显示全部楼层
ad7790h 发表于 2017-4-22 19:05
最好说一下原理哈

源码说明一切

1

主题

57

回帖

0

精华

铜牌会员

积分
68
发表于 2018-1-10 09:37:44 | 显示全部楼层
正好在找驱动DLL注入的方法,学习一下,谢谢。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表