教程参考自:https://www.bilibili.com/video/av26193169/?p=8
代码地址:https://github.com/G4rb3n/Windows-Driver/tree/master/MT-FSDHook

1. 概述

FSD钩子是一种较实用的过滤方法,对比于上一章的添加键盘过滤设备,这种方法更显得简单高效。

2. 驱动编写

2.1 驱动入口函数

入口函数简单明了,先获取键盘驱动的对象,然后将键盘驱动的读派遣函数替换我们自己的函数,这样当我们按下一个按键时,系统的键盘驱动就会调用我们的函数来处理按键信息,有种偷梁换柱的感觉。当然,在替换之前别忘了先保存原函数的指针。
1

2.2 Hook函数

我们的派遣函数很简单,仅作演示效果打印一句话,你要加啥过滤监听的操作的话在这里加。实现完自己的功能后要调用回原始的派遣函数,以实现键盘的正常功能。
2

2.3 卸载函数

最后是卸载函数,主要功能是把键盘驱动的派遣函数还原回来。
3

3. 驱动测试

只要我们按下一个键,就会弹出两个提示语句,证明我们的Hook函数的确被调用了,为什么是两个,相比大家也清楚,因为一个是键按下的操作,一个是键弹起的操作。
4

使用PCHunter也能看到我们挂的钩子。
5

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐