寒江独钓:键盘的过滤 学习笔记
生活随笔
收集整理的這篇文章主要介紹了
寒江独钓:键盘的过滤 学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先來名詞熱身: 一、符號鏈接:其實就是一個別名。可以用一個不同的名字來代表一個設備對象 二、PDO:是物理設備對象,可以理解為是設備棧最下面的那個設備對象。 函數介紹: 內核中:ZwCreateFile是很重要的函數,不但可以打開文件,還可以打開設備對象。在應用程序中跟它對應的是CreateFile函數.. 接下來是記錄Windows如何獲得按鍵,然后傳遞給各個應用程序。 csrss這個進程里有個線程叫win32k!RawInputThread,這個線程總是調用nt!ZwReadFile來讀入數據,等待鍵盤按下。的那個被按下,這個線程就好處理得到的數據,在繼續要求讀入數據并等待按鍵。 過程: ①?用傳入參數符號鏈接名賦值OBJECT_attributes +0x8處的PUNICODE_STRING ObjectName。win32k!RawInputThread執行到函數win32k!OpenDevice,它的一個參數可找到鍵盤設備棧的PDO的符號鏈接名。win32k!OpenDevice有一個OBJECT_ATTRIBUTES結構的局部變量,它自己初始化這個局部變量,用傳入參數符號鏈接名賦值OBJECT_attributes +0x8處的PUNICODE_STRING ObjectName。 ②調用ZwCreateFile返回句柄。win32k!RawInputThread把得到的句柄保存起來,供后面的ReadFile、DeviceIoControl等使用。 ③win32k!RawInputThread調用ZwReadFile讀取數據。
轉載于:https://www.cnblogs.com/tina0day/p/3702391.html
總結
以上是生活随笔為你收集整理的寒江独钓:键盘的过滤 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go语言优秀的Revel开源框架推荐
- 下一篇: SQLserver提供的统计信息流已损坏