码迷,mamicode.com
首页 > 其他好文 > 详细

内核编程键盘过滤几种方法思路整理

时间:2015-05-04 17:04:40      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

第一种:绑定kbdcalss驱动对象

  kbdclass类驱动对象是键盘的最上层的驱动对象,对它的分发函数进行处理,则不用考虑底层的兼容性问题。

  思路:首先使用ObReferenceObjectByName函数打开kbdclass驱动对象,然后使用DeviceObject指针和NextDevice指针遍历kbdclass驱动对象下所有的设备对象,每遍历一个则创建一个设备对象附加在其上,这样我们编写的驱动对象的分发函数,即可处理kbdclass类驱动对象的IRP。如图所示

技术分享

第二种:直接替换kbdclass的分发函数

第三种:替换i8042prt或Kbdhid驱动对象中kbdclass的回调函数,在i8042prt或Kbdhid驱动对象中首先搜索是否出现了kbdclass类驱动对象,然后搜索是否出现了kbdclass类驱动对象中的函数地址,最后替换掉这个回调函数,如图所示

技术分享

第四种:修改IDT表中关于0x93中断的处理

第五种:对IOAPIC中断控制器中,irq1对应的中断号替换成0x93之外的中断号(自定义的中断号和处理函数)

技术分享

 

内核编程键盘过滤几种方法思路整理

标签:

原文地址:http://www.cnblogs.com/zwt1234/p/4476198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!