首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
1
0
[已解决]一个键盘过滤驱动的问题
发表于: 2009-9-3 23:33
7605
[已解决]一个键盘过滤驱动的问题
aliwy
2009-9-3 23:33
7605
有A和B两个键盘过滤驱动,
都Attach到KeyboardClass0,
其中A在B之后Attach,
但为何A截获到的扫描码不是原始的,
而还是被B过滤过的呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
收藏
・
1
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
11
)
寒冰心结
雪 币:
8149
活跃值:
(2751)
能力值:
( LV3,RANK:20 )
在线值:
发帖
15
回帖
239
粉丝
0
关注
私信
寒冰心结
2
楼
这不是开玩笑嘛。。
肯定是后截获了。
你要知道堆栈的成长方向跟IRP的传递过程。。
当CPU感受到外部中断。。就是说。知道外部有输入了。
于是构造一个IRP。发给键盘驱动去处理这个事情。
IRP。从栈顶而下。一层一层的到达最底端的物理键盘设备驱动(假设的。)
等获取了信息。再从物理键盘设备驱动原路一层一层的返回。
B在A下面(B先Attach)。。返回的时候肯定是B先获得了。
注释:以上说法纯个人通俗理解。非官方文档。仅作参考。
2009-9-4 03:24
0
achillis
雪 币:
7651
活跃值:
(523)
能力值:
( LV9,RANK:610 )
在线值:
发帖
32
回帖
2032
粉丝
47
关注
私信
achillis
15
3
楼
过滤驱动之间也是有层次关系的,后来者居上,它最先接到Irp,但返回时则是最后一个
2009-9-4 06:17
0
aliwy
雪 币:
26
活跃值:
(28)
能力值:
( LV2,RANK:10 )
在线值:
发帖
20
回帖
140
粉丝
0
关注
私信
aliwy
4
楼
就是类似这样的关系:
—KeyboardClass0
│
—B Device
│
—A Device
是不是可以这样理解:
按键信息首先传递到A,然后是B,最后到达键盘驱动,
我们在A中调用KdPrint打印的时候,
打印出的扫描码则是由键盘驱动传递到B,B再传递到A,
最终打印出的扫描码就是经过B过滤了的。
是这样吗?
2009-9-4 08:34
0
achillis
雪 币:
7651
活跃值:
(523)
能力值:
( LV9,RANK:610 )
在线值:
发帖
32
回帖
2032
粉丝
47
关注
私信
achillis
15
5
楼
那个层次关系直接用DeviceTree就可以看到了~
2009-9-4 10:23
0
aliwy
雪 币:
26
活跃值:
(28)
能力值:
( LV2,RANK:10 )
在线值:
发帖
20
回帖
140
粉丝
0
关注
私信
aliwy
6
楼
既然它最先接到Irp,那为何此时KdPrint出来的不是实际的扫描码呢?
2009-9-4 16:30
0
achillis
雪 币:
7651
活跃值:
(523)
能力值:
( LV9,RANK:610 )
在线值:
发帖
32
回帖
2032
粉丝
47
关注
私信
achillis
15
7
楼
它第一次接到Irp的时候里面还没有数据呢,所以要设置完成例程继续发下去啊,等Irp带着数据返回时,它的完成例程才有机会处理数据,不过这时候的数据已经是底层驱动的完成例程处理过的了
2009-9-4 18:31
0
aliwy
雪 币:
26
活跃值:
(28)
能力值:
( LV2,RANK:10 )
在线值:
发帖
20
回帖
140
粉丝
0
关注
私信
aliwy
8
楼
哦,明白了,以前一直理解反了,谢谢
achillis。
我记得好像在哪本书上看过,介绍以前QQ的密码输入驱动保护,
说它是在开始输入密码时才挂接,所以就防止了盗号,
所以我一直以为在最外层的才是截获到最初的扫描码。
2009-9-4 22:32
0
achillis
雪 币:
7651
活跃值:
(523)
能力值:
( LV9,RANK:610 )
在线值:
发帖
32
回帖
2032
粉丝
47
关注
私信
achillis
15
9
楼
那得看数据的流向了,如果数据是从上往下,那么最顶层的设备确实是最先接触到数据的,比如文件防删,待删除的文件的信息数据是从上往下传的;在这个例子里,从上往下的是请求,真正的数据是从下往上传的,所以就变成最底层的设备先接触数据了,道理很简单啊
2009-9-5 00:15
0
Fypher
雪 币:
636
活跃值:
(174)
能力值:
( LV9,RANK:260 )
在线值:
发帖
20
回帖
251
粉丝
8
关注
私信
Fypher
4
10
楼
唉……我来给你解释吧。做个通俗的比喻:
我、A、B、苹果商,四个人排成一排,我想要苹果(按键信息),传个篮子(IRP)给A,A传给B,B传给苹果商,苹果商放了一个苹果在篮子里(用按键信息填充IRP),然后把篮子原路往回传给B,B把篮子里的苹果换成了梨(截获、更改了按键信息),所以传给A的时候,篮子里的内容已经变了。
2009-9-5 08:35
0
aliwy
雪 币:
26
活跃值:
(28)
能力值:
( LV2,RANK:10 )
在线值:
发帖
20
回帖
140
粉丝
0
关注
私信
aliwy
11
楼
谢谢各位,明白了!
2009-9-7 15:23
0
DebugFan
雪 币:
97
活跃值:
(30)
能力值:
( LV2,RANK:140 )
在线值:
发帖
6
回帖
41
粉丝
2
关注
私信
DebugFan
3
12
楼
不错不错,描述得相当生动
2009-9-19 14:12
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
aliwy
20
发帖
140
回帖
10
RANK
关注
私信
他的文章
[求助]关于“谍客”病毒的一点疑问
4917
大家看看MeChat这个主程序是否加壳了?
3823
[已解决]一个键盘过滤驱动的问题
7606
[原创]蠢人节快乐
2341
[求助]用了自旋锁,数据还是丢失,蓝屏!
6226
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部