下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于鉤子的惡意程序防鉤子技術(shù)研究
病毒、特洛伊木馬和其他惡意軟件通常使用整體鉤子來竊取密碼。當(dāng)用戶在用鍵盤進(jìn)行輸入時,鍵盤消息首先被惡意程序安置的鉤子所截獲并記錄用戶輸入的字符,黑客等便可分析出用戶的隱私信息。文章設(shè)計的反鍵盤記錄器通過鉤子掃描、可疑模塊檢測等建立信任列表,再結(jié)合Debug鉤子和HookAPI技術(shù)實現(xiàn)對所有進(jìn)程或指定進(jìn)程的防鉤子保護(hù)。1概述發(fā)展趨勢Windows操作系統(tǒng)是建立在事件驅(qū)動機(jī)制上的,而鉤子則是能在事件傳遞到應(yīng)用程序之前獲取對消息處理權(quán)的一種特殊機(jī)制。鉤子函數(shù)實際上是一個處理消息的程序段,通過系統(tǒng)調(diào)用掛入系統(tǒng),可以對消息進(jìn)行處理后傳遞或者干脆丟棄,阻止消息的進(jìn)一步傳遞。操作系統(tǒng)中,為了管理鉤子,維護(hù)1張鉤子列表,列表中的指針指向應(yīng)用程序定義的Hook子程調(diào)用的回調(diào)函數(shù)。當(dāng)系統(tǒng)中出現(xiàn)了所掛接的消息,系統(tǒng)就把消息傳遞給Hook子程的回調(diào)函數(shù)進(jìn)行處理。一般來說,最近安裝的鉤子放在鉤子列表的開始處,而最早安裝的鉤子放在最后,所以后安裝的鉤子便獲得更高的優(yōu)先處理權(quán)。一般的鉤子程序的實現(xiàn)有3步:定義鉤子函數(shù)、安裝鉤子函數(shù)和卸載鉤子函數(shù)。定義鉤子函數(shù)的原型,如圖1所示。安裝鉤子的函數(shù)原型,如圖2所示。卸載鉤子的函數(shù)原型,如圖3所示。通常在鉤子函數(shù)處理后還需繼續(xù)傳遞消息,還會用到CallNextHookEx函數(shù),如果不使用它繼續(xù)傳遞消息,有時會導(dǎo)致應(yīng)用程序無法繼續(xù)接收并處理消息。鉤子共有15種,其中,對于惡意程序來說,最常用的是WH_KEYBOARD、WH_KEYBOARD_LL、WH_MOUSE、WH_MOUSE_LL鉤子,這4個鉤子用于勾取鍵盤和鼠標(biāo)消息。在設(shè)置鉤子時,還需注意到鉤子的作用域。按鉤子作用域可將鉤子分為線程鉤子和全局鉤子。線程鉤子只是監(jiān)視特定的線程,而全局鉤子則可以監(jiān)視系統(tǒng)中所有的線程。這兩個鉤子設(shè)置的區(qū)別在于調(diào)用SetWindowsHookEx最后所傳入的參數(shù),若為0,則是全局鉤子。另外,對于1個全局的鉤子,需要將其放入一個獨(dú)立的DLL動態(tài)鏈接庫中,只有這樣才能被系統(tǒng)映射到每個進(jìn)程空間中。2可疑的惡意程序鉤子檢測在分析了以上Windows鉤子的原理后,并吸收了市面上現(xiàn)有的如“掂花”反鼠標(biāo)鍵盤記錄器的優(yōu)點(diǎn),設(shè)計了一個防鍵盤記錄器,它主要由3個模塊組成:鉤子掃描、可疑模塊檢測、進(jìn)程保護(hù)模塊。鉤子掃描:本工具能掃描出安裝在系統(tǒng)內(nèi)的所有鉤子,并顯示出該鉤子是由哪個程序所安裝、路徑位置等信息。如果用戶覺的該鉤子可以,可以結(jié)束該進(jìn)程??梢赡K檢測:由于惡意程序的鍵盤鉤子在裝入系統(tǒng)后,若是全局鉤子,操作系統(tǒng)會將該鉤子的DLL模塊映射到每個進(jìn)程的進(jìn)程空間。因此,我們可以根據(jù)這一點(diǎn)設(shè)置1個“陷阱”,誘騙惡意程序的鉤子來捕獲我們的鍵盤消息,這樣便可發(fā)現(xiàn)可疑的惡意程序及其路徑等信息。如果用戶對該鉤子信任,可以將其加入信任名單,這樣下次便不會再掃描出它了。進(jìn)程保護(hù):該模塊可以根據(jù)信任名單實時動態(tài)的保護(hù)用戶的進(jìn)程,有兩種保護(hù)方式,分別是利用Debug鉤子技術(shù)的全局保護(hù)和利用APIHook技術(shù)的進(jìn)程保護(hù)。2.1)基于debul的回歸系統(tǒng)的程序?qū)崿F(xiàn)為了掃描出系統(tǒng)中所有鉤子,我們使用了鉤子特征碼掃描技術(shù)。該技術(shù)通過找到系統(tǒng)中程序的句柄表來找出鉤子的句柄,再利用ZwSystemDebugControl函數(shù)找出該句柄所對應(yīng)鉤子的具體信息。實現(xiàn)過程如下:(1)提升程序到Debug權(quán)限:通過OpenProcessToken獲得進(jìn)程令牌的句柄,繼而定義TOKEN_PRIVILEGES,調(diào)整令牌的權(quán)限。(2)初始化函數(shù)地址:找到ZwSystemDebugControl和UserRegisterWowHandlers函數(shù)的地址,接下來的掃描過程將要使用到它。(4)遍歷句柄表,看句柄類型phandle_entry[i].bType是否為5,5是鉤子的類型值,再用ZwSystemDebugControl查詢獲得句柄所指向鉤子的具體信息,并顯示出來。如圖4所示。2.2獲取進(jìn)程快照和動態(tài)檢測可疑模塊檢測可分為2個部分:模塊掃描和動態(tài)檢測。模塊掃描主要是找到所有的進(jìn)程及其加載的模塊信息,動態(tài)檢測就是找出當(dāng)前正在捕獲輸入信息的進(jìn)程及路徑信息等。(1)模塊掃描:在這里,首先是枚舉所有進(jìn)程,及指定進(jìn)程的模塊信息,這個可以通過系統(tǒng)快照實現(xiàn)。系統(tǒng)快照句柄的獲取是通過Win32API函數(shù)CreateToolhelp32Snapshot來完成的,通過該函數(shù)不僅可以獲取進(jìn)程快照,而且對于模塊和線程的系統(tǒng)快照同樣可以獲取。根據(jù)掃描的得到的這些模塊,在默認(rèn)安全的情況下,都可加入信任列表。(2)動態(tài)檢測:全局鉤子在裝載后,DLL會映射進(jìn)每個進(jìn)程空間,因此,一旦應(yīng)用程序產(chǎn)生鉤子所感興趣的消息,系統(tǒng)便會調(diào)用LoadLibraryExW。這里,我們便可通過APIHook的方式改變相應(yīng)的加載HookDLL的函數(shù)地址,指向我們自己寫的函數(shù)。本程序使用的微軟的Detours庫,它是一個在x86平臺上截獲任意Win32函數(shù)調(diào)用的開發(fā)庫。為了屏蔽全局鉤子,掛接的是LoadLibraryExW函數(shù)。開始Hook時使用的主要API有:通過APIHook技術(shù)設(shè)計的一個小輸入框,向其中輸入若干隨機(jī)字符,若有可疑的鉤子正在監(jiān)視鍵盤,便會被捕獲,如圖5所示。對于所攔截到的模塊,可以采取信任或不信任的措施,若是惡意程序,也可直接結(jié)束該進(jìn)程,起到很好安全檢測作用。2.3調(diào)試鉤子函數(shù)進(jìn)程保護(hù)分為全局保護(hù)和特定進(jìn)程的保護(hù)。全局保護(hù)使用了調(diào)試(Debug)鉤子來屏蔽惡意程序的鉤子。當(dāng)調(diào)用其他鉤子函數(shù)之前,系統(tǒng)會首先調(diào)用WH_DEBUG鉤子函數(shù),并把鉤子的信息傳遞給調(diào)試鉤子,在調(diào)試鉤子函數(shù)過程中可以決定是否允許對這個鉤子函數(shù)過程的調(diào)用。為了防止某些惡意程序也安裝調(diào)試鉤子,在調(diào)試鉤子之前獲得對消息的處理權(quán),可以使用一個定時器,每隔一段時間便裝卸調(diào)試鉤子一次。如此,調(diào)試鉤子便可始終保持在鉤子列表前面。對于特定進(jìn)程的保護(hù),我們依然使用的是APIHook技術(shù),方法類似,結(jié)合信任列表,可以對指定進(jìn)程進(jìn)行動態(tài)的保護(hù)。3apiwelle-lh-apih-k的防護(hù)技術(shù)鍵盤記錄工具有很多,有的甚至涉及到了R0層。文章所設(shè)計的防鍵盤記錄器主要針對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年度醫(yī)保知識考試題庫含答案
- 2025小動物視覺電生理數(shù)據(jù)采集操作規(guī)范指南(2025)解讀課件
- 危急值制度試題及答案
- 施工現(xiàn)場安全防護(hù)設(shè)施設(shè)置計劃
- 車險年檢知識課件
- 車隊年底安全培訓(xùn)總結(jié)課件
- 車隊安全教育培訓(xùn)
- 江蘇省職業(yè)院校技能大賽高職組建筑信息模型與應(yīng)用試題
- 車間高處作業(yè)安全培訓(xùn)內(nèi)容課件
- 2026年社區(qū)工作者年度工作計劃
- 天一大聯(lián)考海南省2026屆數(shù)學(xué)高二上期末統(tǒng)考試題含解析
- DB50∕T 1803-2025 鄉(xiāng)村振興勞務(wù)品牌人員等級評定 武陵山縫紉工
- 中煤集團(tuán)機(jī)電裝備部副部長管理能力考試題集含答案
- 黨支部2026年度主題黨日活動方案
- 五育融合課件
- 海姆立克急救課件 (完整版)
- 2025年互聯(lián)網(wǎng)營銷游戲化營銷案例解析可行性研究報告
- DB31∕T 1048-2020“上海品牌”認(rèn)證通 用要求
- 意識障礙的判斷及護(hù)理
- 病理性賭博的識別和干預(yù)
- 2025年宿遷市泗陽縣保安員招聘考試題庫附答案解析
評論
0/150
提交評論