1. 程式人生 > >Windows驅動學習(六)-- FSD鉤子

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