API也能攔截啊!真是有趣啊!



提到攔截API,就會想到個人電腦在DOS作業系統時代的攔截中斷(Interrupt)。攔截中斷是修改中斷向量表中中斷程式的位址,讓其指向在記憶體中自己所設計的程式,如此中斷若被呼叫就會執行自己所撰寫的程式,如果有需要還可呼叫原來的中斷程式。

攔截API(英文稱為API Hook),對程式設計師而言這技術已延用多年,其觀念和攔截中斷相似。然而攔截API的方法很多種,但以修改IAT(Import Address Table)的技巧最為安全。有關IAT的說明,請參考PE檔案格式。在Wikipedia網站中就有詳細介紹PE檔案格式的網頁。

攔截API範例程式(即vpAPIhook.exe)執行為行程A,會自動啟開記事本(即notepad.exe) 為行程B。行程A會注入少許的機械碼到行程B中,來攔截行程B中的API函數MessageBoxW。現在可以在開啟的記事本(即行程B)中輸入資料並結束行程B的執行,這時會顯示攔截成功的對話盒,點選確定後才會出現正常的記事本對話盒,詢問是否儲存已變更的資料。這就是攔截API函數MessageBoxW的實作說明。

 

下載測試...

 

問題延伸...

 

相關網頁連結...





隨機文章

×
網友回饋 回應:0
  • 歡迎來到隨意窩Xuite

    開啟選單瀏覽服務或以關鍵字搜尋。

     
  • 瀏覽更多精彩內容

    切換至格主其他頻道或直接搜尋。

     
  • 快速便利分享工具

    提供多種分享方式傳遞內容資訊。

     
  • 更多推薦APP

    隨意遊與隨食記app僅支援ios裝置。