首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
软件逆向
发新帖
2
0
[求助]kbdclass键盘过滤无法过滤首次按键
发表于: 2015-4-14 17:02
7478
[求助]kbdclass键盘过滤无法过滤首次按键
opq哲哥
2015-4-14 17:02
7478
加载键盘过滤驱动后第一次按键没过滤到,接下来的按键都正常,分析发现按键结束后还会有一个irp经过过滤驱动,返回status pending无限挂起,等下一次输入按键才完成这个irp,那怎么截获这个首次按键呢。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
收藏
・
2
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
12
)
lookzo
雪 币:
6
活跃值:
(1523)
能力值:
( LV2,RANK:10 )
在线值:
发帖
2
回帖
534
粉丝
2
关注
私信
lookzo
2
楼
第一个没过滤到,很奇怪的
2015-4-14 17:29
0
yangaijia
雪 币:
50
活跃值:
(15)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
48
粉丝
0
关注
私信
yangaijia
3
楼
键盘一直处于等待获取按键的状态吧
要么你先给它一个按键
满足之前那一次获取
后面的请求就能过滤到了嘛
菜鸟愚见 不知道能不能行的通
2015-4-14 17:52
0
opq哲哥
雪 币:
63
活跃值:
(177)
能力值:
( LV2,RANK:10 )
在线值:
发帖
23
回帖
60
粉丝
2
关注
私信
opq哲哥
4
楼
分析后流程是这样的:
没有按键的时候系统就会发送一个irp到底层驱动去请求hid设备的键入,如果没有键入这个irp会一直被设置成pending,直到最后有键入按键信息才会被底层驱动完成该irp,类似监听的概念。
也就是说在我们没加载键盘过滤驱动的时候这个irp已经被发出了,只是没有按键键入这个irp一直是pending,等加载过滤驱动后,有按键键入时这个irp被完成了,但我们没机会设置这个irp的完成函数。
2015-4-14 17:52
0
opq哲哥
雪 币:
63
活跃值:
(177)
能力值:
( LV2,RANK:10 )
在线值:
发帖
23
回帖
60
粉丝
2
关注
私信
opq哲哥
5
楼
我想过这个解决办法,但我现在过滤的是条码扫描枪,怎么模拟扫描枪的按键啊。
2015-4-14 17:53
0
fragileeye
雪 币:
11
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
27
粉丝
1
关注
私信
fragileeye
6
楼
读取弹起的键。
2015-4-14 18:37
0
opq哲哥
雪 币:
63
活跃值:
(177)
能力值:
( LV2,RANK:10 )
在线值:
发帖
23
回帖
60
粉丝
2
关注
私信
opq哲哥
7
楼
需求需要屏蔽按键,所以必须把按下给弄出来。
2015-4-14 18:46
0
阿耿
雪 币:
34
活跃值:
(830)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
62
粉丝
1
关注
私信
阿耿
8
楼
楼主解决这个问题了吗,求教
2015-8-13 20:31
0
opq哲哥
雪 币:
63
活跃值:
(177)
能力值:
( LV2,RANK:10 )
在线值:
发帖
23
回帖
60
粉丝
2
关注
私信
opq哲哥
9
楼
解决了,找到那个挂起的irp然后取消这个IRP。
2015-11-25 11:08
0
阿耿
雪 币:
34
活跃值:
(830)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
62
粉丝
1
关注
私信
阿耿
10
楼
楼主,求具体的解决方法,求教了
2015-11-25 11:49
0
opq哲哥
雪 币:
63
活跃值:
(177)
能力值:
( LV2,RANK:10 )
在线值:
发帖
23
回帖
60
粉丝
2
关注
私信
opq哲哥
11
楼
在过滤这个kbdclass设备之前先找到子系统发到这个设备上的read irp,具体查找流程是:枚举进程找到csrss进程-->枚举该进程的线程中的irp列表-->找到发到你要过滤设备的irp(这个irp一定是pending状态,因为当前没有按键触发),找到这个irp后绑定设备取消这个irp,子系统会马上再发一个read irp到你的设备上,这样就可以了。
2015-11-25 13:12
0
IamHuskar
雪 币:
1515
活跃值:
(6002)
能力值:
( LV13,RANK:240 )
在线值:
发帖
76
回帖
1668
粉丝
78
关注
私信
IamHuskar
4
12
楼
IRP应该挂线程未完成的IRP链表里面了,你是用了未导出的THREAD结构定义去得到链表然后取得IRP吗
2015-11-25 13:45
0
longloo
雪 币:
4984
活跃值:
(4177)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
96
粉丝
1
关注
私信
longloo
13
楼
学习了,正好碰到这个问题
2016-4-21 15:35
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
opq哲哥
23
发帖
60
回帖
10
RANK
关注
私信
他的文章
[求助]WFP数据流层tcp数据拦截问题
8814
dpc中如何切换线程
3227
[求助]app方案求助
3942
[求助]tdi filter卸载问题
3003
[求助]wdk编译驱动unresolved external symbol __imp__stricmp
5132
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部