首页
社区
课程
招聘
[原创]---注销 QQ 过滤驱动设置的事件通知 CALLBACK (完)-------
发表于: 2018-7-2 14:16 7828

[原创]---注销 QQ 过滤驱动设置的事件通知 CALLBACK (完)-------

2018-7-2 14:16
7828

系列的最后一篇演示如何通过调试手段摘除 QQ 过滤驱动设置的事件通知 CallBack。

内核中有几个全局的数组用来存放这些事件通知 CallBack 的指针,第一个就是nt!PspCreateProcessNotifyRoutine,

当有进程被创建时,该数组中的函数指针就会依次被调用,与此类似,当有线程被创建时,nt!PspCreateThreadNotifyRoutine

数组中的函数指针就被调用;nt!PspLoadImageNotifyRoutine中的回调则是在有内核模块加载时被调用。

驱动程序通过向这些数组中加入 CallBack 指针,就能够监控相应的事件。

首先来看下哪些驱动程序正在监控系统范围的进程创建事件:

 

从上图您可以看到,QQFrmMgr.sys 中有一个例程正在监视着进程创建事件。除此之外的其它内核模块都是合法的,比如

“avkmgr”与“avdevprot”是安装德国小红伞反病毒软件时,附带安装的两个内核模式驱动程序,它们注册了各自的回调在

监控着进程创建事件,这是实现 Real-Time Protection 用到的系统底层机制之一;“tcpip”不用我说各位也知道,它是

Windows 内核网络栈的主要实现模块之一:

 

注意,系统最多支持注册 8 枚事件回调指针,nt!PspCreateProcessNotifyRoutineCount存储当前注册的回调指针数量,如下图,

这个全局变量的值与第一张图片中的事件回调指针枚数一致:

 

现在,我们尝试从中摘除 QQFrmMgr.sys 的监控例程:


 


使用类似的手段,检查 QQFrmMgr.sys 有没有监控线程创建与内核模块加载事件:


您看,这家伙监控的地方还真不少,为的就是保护它自己免受其它恶意软件攻击!或许你会好奇:图中的“XLGuard”是啥东

东?

它就是在安装“迅雷”(一种基于 BitTorrent 协议的 P2P 下载/分享软件)时,一并安装的内核模式驱动程序之一,如下图:


从名称中的“Guard”来看,应该也是用来保护迅雷自身组件的——现在的软件都比女性还懂得怎么保护自己呢!

你可以使用前述的方法来阻止 QQFrmMgr.sys 监控线程创建与内核模块加载事件——就布置成家庭作业吧!

———————————————————————————————————————————————————

写到这里,本系列算是大致功德圆满了。。。。还记得上一篇我抱怨说“!chkimg”调试器扩展命令不能用吗?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-7-2 17:34 被shayi编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (12)
雪    币: 940
活跃值: (1053)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
没有一张图幸存,全军覆没
2018-7-2 14:31
0
雪    币: 23080
活跃值: (3432)
能力值: (RANK:648 )
在线值:
发帖
回帖
粉丝
3
感谢分享!麻烦楼主重新上传下图片
最后于 2018-7-2 14:48 被KevinsBobo编辑 ,原因:
2018-7-2 14:48
0
雪    币: 1604
活跃值: (640)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
4
KevinsBobo 感谢分享!麻烦楼主重新上传下图片
所有图片已重传,现在能看到了么
最后于 2018-7-2 17:37 被shayi编辑 ,原因:
2018-7-2 17:37
0
雪    币: 300
活跃值: (2472)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
mark
2018-7-2 17:54
0
雪    币: 23080
活跃值: (3432)
能力值: (RANK:648 )
在线值:
发帖
回帖
粉丝
6
shayi KevinsBobo 感谢分享!麻烦楼主重新上传下图片 所有图片已重传,现在能看到了么
可以了
2018-7-2 18:14
0
雪    币: 6
活跃值: (1509)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这一系列  是WINDBG 微操的详解篇之一,希望能出更多的系列文章,文章很精彩,实在是用心写的杰作,比某牛出烂书圈钱高尚的不知道那里去了唉!
2018-7-3 13:19
1
雪    币: 914
活跃值: (2463)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
8
中秋等着收腾讯的月饼吧
2018-7-3 14:32
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
9

注意,系统最多支持注册 8 枚事件回调指针,nt!PspCreateProcessNotifyRoutineCount存储当前注册的回调指针数量,如下图,

这是哪个年代的文章了?vista开始都支持64个回调了
2018-7-3 16:42
0
雪    币: 1604
活跃值: (640)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
10
hzqst 注意,系统最多支持注册 8 枚事件回调指针,nt!PspCreateProcessNotifyRoutineCount存储当前注册的回调指针数量,如下图,这是哪个年代的文章了?vista开始都支持64 ...
关于这点我不是很清楚,不过还是感谢指正文中的错误
2018-7-4 02:04
0
雪    币: 1604
活跃值: (640)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
11
还有企鹅
最后于 2018-7-4 02:07 被shayi编辑 ,原因:
2018-7-4 02:06
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
大佬教我写驱动
2018-8-10 08:20
0
雪    币: 1604
活跃值: (640)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
13
我只会最简单的 DriverEntry() 和 DispatchIRP() 
2018-8-10 21:49
0
游客
登录 | 注册 方可回帖
返回
//