<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    什么是 Windows 掛鉤技術


    發現錯別字 2年前 提問
    回答
    3
    瀏覽
    699
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    齊士忠
    安全集成(專業級)SI/PL CISAW安全運維(專業級)
    最佳答案

    Windows 掛鉤技術

    鉤子(Hook)技術是Windows消息處理機制的一個平臺,應用程序可以在上面設置子程序以監視指定窗口的某種消息,而且所監視的窗口可以是其他進程所創建的。當消息到達后,在目標窗口處理函數之前處理它。鉤子機制允許應用程序截獲處理window消息或特定事件。

    鉤子(Hook)也是在等待捕獲系統中的某個消息或者動作。鉤子的應用范圍非常廣泛,比如輸入監控、API攔截、消息捕獲、改變程序執行流程等方面。殺毒軟件會用Hook技術鉤住一些API函數,比如鉤住注冊表讀寫函數,從而防止病毒對注冊表進行寫入;病毒使用Hook技術有針對性的捕獲鍵盤的輸入,從而記錄用戶的密碼等敏感信息;文件加密系統通過Hook技術在不改變用戶操作的情況下對用戶的文件進行透明加密,這些都屬于Hook范疇的知識。

    在windows系統下,Hook技術的方法比較多,使用比較靈活,常見的Hook方法有Inline Hook,IAT Hook,Windows鉤子……Hook技術涉及DLL相關的知識。Hook技術也涉及注入的知識,想要把完成Hook功能的DLL文件加載到目標進程空間中,就要使用注入的知識。

    Hook原理

    Hook技術無論對安全軟件還是惡意軟件都是十分關鍵的一項技術,其本質就是劫持函數調用。但是由于處于Linux用戶態,每個進程都有自己獨立的進程空間,所以必須先注入到所要Hook的進程空間,修改其內存中的進程代碼,替換其過程表的符號地址。在Android中一般是通過ptrace函數附加進程,然后向遠程進程注入so庫,從而達到監控以及遠程進程關鍵函數掛鉤。

    Hook技術的難點,并不在于Hook技術,初學者借助于資料“照葫蘆畫瓢”能夠很容易就掌握Hook的基本使用方法。如何找到函數的入口點、替換函數,這就涉及了理解函數的連接與加載機制。

    從Android的開發來說,Android系統本身就提供給了我們兩種開發模式,基于Android SDK的Java語言開發,基于AndroidNDK的Native C/C++語言開發。所以,我們在討論Hook的時候就必須在兩個層面上來討論。

    對于Native層來說Hook的難點其實是在理解ELF文件與學習ELF文件上,特別是對ELF文件不太了解的讀者來說;對于Java層來說,Hook就需要了解虛擬機的特性與Java上反射的使用。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    2年前 / 評論
    回答數量: 3
    等保中級測評師 CICSA

    MinWinHooks
    涅磐掛鉤
    CFG掛鉤
    AVRF掛鉤
    Shim掛鉤

    回答所涉及的環境:聯想天逸510S、Windows 10。

    2年前 / 評論
    等保高級測評師 NISP

    Windows 10更改
    因此,我們將專門研究Windows 10中的新變化
    新的數據結構和類型
    新的版本號
    新的API參數/導出/技術
    語義/功能更改

    回答所涉及的環境:聯想天逸510S、Windows 10。

    2年前 / 評論
    亚洲 欧美 自拍 唯美 另类