runrune
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2007-08-11
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:3327回复:9

极度郁闷--键盘过滤驱动

楼主#
更多 发布于:2007-07-10 04:52
想写个键盘过滤驱动,查了许多资料,看了kbfiltr.c,还有一大堆相关代码。
始终没能写出来,kbfiltr.c里面AddDevice好像是条件触发的。
想要实现的是不用什么条件触发,只要有按键按下,就DbgPrint这个按键的扫描码。
可是代码迟迟未能出生,不知这里哪位兄弟存有超简单就能实现这个功能的代码,分享一下,谢谢!

具体流程:DriverEntry ---IoCreateDevice --- IoAttachDeviceToDeviceStack --- ???

最新喜欢:

LeopardLeopar...
tracera
禁止发言
禁止发言
  • 注册日期2006-01-09
  • 最后登录2018-09-25
  • 粉丝8
  • 关注0
  • 积分-5788分
  • 威望135321点
  • 贡献值0点
  • 好评度625点
  • 原创分1分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-07-10 09:28
用户被禁言,该主题自动屏蔽!
zaley
驱动小牛
驱动小牛
  • 注册日期2004-07-09
  • 最后登录2019-03-12
  • 粉丝0
  • 关注0
  • 积分243分
  • 威望267点
  • 贡献值0点
  • 好评度104点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-07-12 10:49
键盘记录器 v0.0.2 by 一块三毛钱 2005.11.02   http://www.zhongts.net

还有一个WINXP下的通过RawInputDevices的代码  黑色海岸线 www.thysea.com
runrune
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2007-08-11
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-13 00:50
问题已解决,先谢谢楼上两位兄弟.
我用的是Ctrl2cap(稍做修改).
具体流程是:
建立一个过滤设备附加到"\\Device\\KeyboardClass0"上.
建立基于 IRP_MJ_READ 事件的处理例程,然后等待键盘按键,一旦有键按下,系统将产生IRP_MJ_READ事件并发送IRP到过滤设备上(此IRP包含键盘按键的扫描码),此时IRP_MJ_READ处理例程就可以处理按键的扫描码,处理完后将IRP包向下层("\\Device\\KeyboardClass0")传递,由下层驱动设备继续操作...

以上是我个人的理解,不知是否正确,请高手们指点一二...

还有个问题就是,为什么DDK中的kbFiltr驱动无法启动,出错信息是1058.
我的系统WINXP SP2 DDK2000 PS/2键盘,不会是kbFiltr驱动要有USB接口的键盘才好用吧??

再有个问题,DriverObject -> DriverExtension ->AddDevice 是在什么情况下才被触发???
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2007-07-13 16:35
理解错误,必须在READCOMPLETE里才能读数据。
kbFiltr属于WDM系列,必须安装启动,后者由PNP管理器加载启动。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
runrune
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2007-08-11
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-07-13 17:26
引用第4楼wowocock于2007-07-13 16:35发表的  :
理解错误,必须在READCOMPLETE里才能读数据。
kbFiltr属于WDM系列,必须安装启动,后者由PNP管理器加载启动。


1:并非理解错误,只是我说漏了要由IoSetCompletionRoutine创建的READCOMPLETE(这个应该算是个回调函数吧?)完成读数据的任务.[当然,如果其它部分理解正解的话...]

2:如何安装启动呢?难道要用到INF文件?我在注册表里把start改成1由系统启动加载也不成.

谢谢wowocock指点,能否给个成功应用kbFiltr的方法?具体点!
laoye360
驱动牛犊
驱动牛犊
  • 注册日期2006-07-04
  • 最后登录2020-12-03
  • 粉丝0
  • 关注0
  • 积分615分
  • 威望127点
  • 贡献值0点
  • 好评度62点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2007-07-16 16:06
哈哈,我这里有份人家的代码。。做过一点点的修改。。还有说明。。
最终版权属于原作者
附件名称/大小 下载次数 最后更新
WssLockKey.rar (57KB)  192 2007-07-16 16:06
wsdgs
驱动牛犊
驱动牛犊
  • 注册日期2006-01-12
  • 最后登录2012-07-15
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2007-07-16 17:30
USB键盘烦死了,我不管怎么钩都容易蓝屏,还有就是经常跟QQ的那个驱动冲突,装了QQ或在QQ登陆那里以敲键盘就容易蓝屏,不知道各位有没有试过?楼上的那个代码我也看过,改了半天还是不行
luohua2007
驱动牛犊
驱动牛犊
  • 注册日期2007-04-30
  • 最后登录2008-10-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望50点
  • 贡献值0点
  • 好评度46点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-11-02 01:49
WssLockKey我加载后,可以过滤到键盘值,可就是启动它后过滤键盘的同时,文本框就显示不出字了,这是什么情况啊,是不是过滤键盘后,数据包没往下传啊,

还有就是,一但重起电脑,用注册表无法自动启动它,注册表里把start改成1由系统启动加载也不成,大家给指点个办法把
 
guaiguaiguan
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2011-01-12
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望556点
  • 贡献值0点
  • 好评度490点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-11-05 15:31
游客

返回顶部