HOOK API library (含 MASM 源碼) |
|
Skyer
高階會員 發表:43 回覆:111 積分:120 註冊:2002-04-04 發送簡訊給我 |
想法:
因為之前作了監測封包的小工具,用到了 hook api 的技術
但是 hook api 是跟主程式緊密結合的.. 無法簡單抽離..
於是我就開始研究怎麼把 hook api 抽離成獨立的函式庫..
因為是比較低階的層次,所以我先用組合語言來寫比較簡單..
說是簡單,還是經過了好幾個夜晚 + 頭髮大概抓掉了幾千根才寫出來..
這個 lib 出來,算是又圓了我長久來的夢.. 目前圓了:
1. 學會 Win32 ASM
2. 學會使用 debug tool
3. DLL Inject, API Hook
4. API Hook library 離題了 XD 本 lib 特點:
1. 使用簡單, 不用了解內部運作
2. 可重覆hook, 就算是被別的程式 hook, 此 lib 一樣可作 hook
3. 內部有作計數, 會計算此 API 有無被使用..在被使用的狀態下無法 unhook 用法相當簡單
想 hook user32.MessageBoxA 這個 API 的話,簡單下
invoke HookAPI,CTEXT("user32.dll"), CTEXT("MessageBoxA"), offset myMessageBox 即可
回傳值是原本的 API
注:上面等於 Delphi 的
var
oldMessageBox: Pointer;
begin
oldMessageBox = HookAPI('user32.dll', 'MessageBoxA', @myMessageBox); 附圖是
主程式 + 執行結果
(HookAPI 可重覆 hook, 且內部有計數. 如果尚有程式使用 API 的話,則 unhook 會失敗)
--
Regards,
Skyer 發表人 - Skyer 於 2005/08/11 04:22:19 發表人 - Skyer 於 2005/08/11 04:26:18
------
-- Regards, Skyer
附加檔案:76580_HookAPILib.zip
|
yn1016
一般會員 發表:2 回覆:3 積分:1 註冊:2004-02-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |