Windows驱动学习(六)-- FSD钩子

教程参考自: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值