阅读:3327回复:9
极度郁闷--键盘过滤驱动
想写个键盘过滤驱动,查了许多资料,看了kbfiltr.c,还有一大堆相关代码。
始终没能写出来,kbfiltr.c里面AddDevice好像是条件触发的。 想要实现的是不用什么条件触发,只要有按键按下,就DbgPrint这个按键的扫描码。 可是代码迟迟未能出生,不知这里哪位兄弟存有超简单就能实现这个功能的代码,分享一下,谢谢! 具体流程:DriverEntry ---IoCreateDevice --- IoAttachDeviceToDeviceStack --- ??? |
|
最新喜欢:Leopar... |
沙发#
发布于:2007-07-10 09:28
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2007-07-12 10:49
键盘记录器 v0.0.2 by 一块三毛钱 2005.11.02 http://www.zhongts.net
还有一个WINXP下的通过RawInputDevices的代码 黑色海岸线 www.thysea.com |
|
地板#
发布于: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 是在什么情况下才被触发??? |
|
地下室#
发布于:2007-07-13 16:35
理解错误,必须在READCOMPLETE里才能读数据。
kbFiltr属于WDM系列,必须安装启动,后者由PNP管理器加载启动。 |
|
|
5楼#
发布于:2007-07-13 17:26
引用第4楼wowocock于2007-07-13 16:35发表的 : 1:并非理解错误,只是我说漏了要由IoSetCompletionRoutine创建的READCOMPLETE(这个应该算是个回调函数吧?)完成读数据的任务.[当然,如果其它部分理解正解的话...] 2:如何安装启动呢?难道要用到INF文件?我在注册表里把start改成1由系统启动加载也不成. 谢谢wowocock指点,能否给个成功应用kbFiltr的方法?具体点! |
|
6楼#
发布于:2007-07-16 16:06
哈哈,我这里有份人家的代码。。做过一点点的修改。。还有说明。。
最终版权属于原作者 |
|
|
7楼#
发布于:2007-07-16 17:30
USB键盘烦死了,我不管怎么钩都容易蓝屏,还有就是经常跟QQ的那个驱动冲突,装了QQ或在QQ登陆那里以敲键盘就容易蓝屏,不知道各位有没有试过?楼上的那个代码我也看过,改了半天还是不行
|
|
8楼#
发布于:2007-11-02 01:49
WssLockKey我加载后,可以过滤到键盘值,可就是启动它后过滤键盘的同时,文本框就显示不出字了,这是什么情况啊,是不是过滤键盘后,数据包没往下传啊,
还有就是,一但重起电脑,用注册表无法自动启动它,注册表里把start改成1由系统启动加载也不成,大家给指点个办法把 |
|
9楼#
发布于:2007-11-05 15:31
|
|