回覆列表
  • 1 # 知其道用其妙

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

    我們知道Windows系統API函式都是被封裝到DLL中,在某個應用程式要呼叫一個API函式的時候,如果這個函式所在的DLL沒有被載入到本程序中則載入它,然後儲存當前環境(各個暫存器和函式呼叫完後的返回地址等)。接著程式會跳轉到這個API函式的入口地址去執行此處的指令。由此看來,我們想在呼叫真正的API之前先呼叫我們的函式,那麼可以修改這個API函式的入口處的程式碼,使他先跳轉到我們的函式地址,然後在我們的函式最後再呼叫原來的API函式。

    簡單來說HOOK API 可以理解成對程式將要執行系統函式的一個攔截, 攔截後執行自己寫的程式碼以達到完成某種特定的目的,再恢復程式繼續執行,很多PJ中的Patch 機器碼,盜號木馬等都是用這個方法。

  • 中秋節和大豐收的關聯?
  • 醃豇豆燉雞的家常做法?