在用戶態防止全局鉤子注入

項目需要,研究了一個禮拜,防止全局鉤子注入的功能基本實現。今天偶然在網路上搜索相關主題,發現“看雪論壇”有前輩早就討論過這個問題,且提出瞭解決方案,思路與在下不謀而合。不過據我的分析,該前輩的解決方案還有些缺陷。至少應該從以下角度改進:

1、當全局鉤子的LoadLibraryExW調用是通過其他版本的LoadLibrary轉發時,必須進行一層堆棧回溯,取得更外面一層的函數返回地址;

2、系統的“uxtheme.dll”和“msctf.dll”會設置全局鉤子,因此在LoadLibraryExW中對這兩個DLL要放行;

3、一些非全局鉤子的DLL也會通過USER32調用LoadLibraryExW,因此必須通過判斷第三個參數進行區分。如果第三個參數爲8,代表這是鉤子;否則不是。這是通過觀察而來的,可能不夠精確。

發佈了46 篇原創文章 · 獲贊 6 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章