zoukankan      html  css  js  c++  java
  • 内核编程键盘过滤几种方法思路整理

    第一种:绑定kbdcalss驱动对象

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

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

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

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

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

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

  • 相关阅读:
    leetcode 87. Scramble String
    leetcode 1278 分割回文串
    back propagation in NNs and RNNs
    刷题笔记——单调栈
    unsupervised learning -- K MEANS
    install j3d on macOS
    java extract jar file on MacOS
    back-propagation algorithm
    day 4
    day 3
  • 原文地址:https://www.cnblogs.com/zwt1234/p/4476198.html
Copyright © 2011-2022 走看看