線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2126
推到 Plurk!
推到 Facebook!

有關於hook及監控api的問題

尚未結案
birdychang
一般會員


發表:3
回覆:3
積分:1
註冊:2004-02-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-27 01:54:51 IP:218.161.xxx.xxx 未訂閱
小弟之前看了許多關於hook的資料 發現一個怪問題啊 幾乎所有介紹hook的文章 都說 若要使用global hook 就必須使用dll injection 但是之前使用網路上的範例 它使用WH_JOURNALRECORD的hook 不用dll 且又可以global hook 且又可以攔截很多種訊息 請問這種hook相較於其他種是有什麼缺點在 且又為什麼它不用注射dll到其他行程 卻又可以取得message 讓我百思不解 此外 我最近想研究一個監控registry改變的程式 網路上很多討論使用RegChangeNotifyKeyValue的win api 可是我覺得這個方法跟使用FindFirstChangeNotification 監控檔案目錄改變的方法一樣遜 因為不能得知改變的檔案路徑名 只能知道有發生改變 而且大多需要multi thread 我想一定有其他更好的方式 不知道是否有人可以分享一下 至於監控檔案目錄的改變 我以前有找到一個undocumented的函式SHCHANGENOTIFY之類的 還蠻好用的 如果有人有需要我再把它翻出來 發表人 - birdychang 於 2004/03/27 01:57:24 發表人 - birdychang 於 2004/03/27 02:24:25
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-27 02:39:30 IP:61.64.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?topic_id=19936 http://delphi.ktop.com.tw/topic.php?topic_id=22389 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=45800 可以去此文上述網站看看 發表人 - conundrum 於 2004/03/27 02:50:23
birdychang
一般會員


發表:3
回覆:3
積分:1
註冊:2004-02-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-02 03:10:32 IP:218.161.xxx.xxx 未訂閱
雖然conundrum回的內容並沒有回答我的疑問 但還是多謝妳的回應 分數還是加給你吧 以下我把我找到的資料po一下 也許也有人跟我有一樣的問題 當hook的種類是WH_JOURNALRECORD時 雖然可以直接寫在同一個檔案中不用在寫個dll呼叫 就能達到全局勾子的效果 可是有時我們就是需要靠這個dll來達到某些目的 在陳寬達的"c builder深度歷險中"有提到 利用SetWindowsHookEx的函式設置全局hook時 若將hook procedure放在dll動態連結檔中 當有process發送message時系統就會先檢查包含 我們的hook procedure的dll在不在此process的記憶體中 若沒有就會自動load我們的dll 因此我們的dll就成為了此process的一部份 故利用SetWindowsHookEx函式其實達到另一個重要的目的 ---就是把我們的dll注射到其他程序 抑或是全部的程序中 那要怎麼攔截windows的api呢?? 我在網路上找到不少文章有討論 但我最後使用微軟開發的library "Detours" http://research.microsoft.com/sn/detours/ 此工具可以幫你把指定的win api被呼叫時自動跳到妳定義的函式 如此就可以達到攔截api的效果 但若享用此方法攔截其他程序或程式的呼叫則會發生記憶體的存取錯誤 因為一個程序是不能隨意存取其他程序的空間滴 而windows提供的api放在系統的dll 如user32.dll中 當一個程式呼叫win api時會將此dll load到自己的記憶體再行呼叫 那麼我們是沒有權限去改別人記憶體中的函式讓它跳到我們定義的函式裡 那怎麼辦勒?? 沒錯 就是用SetWindowsHookEx把detours的 程式碼寫在包含hook procedure的dll裡 並再此dll被load時就更改load此dll的程序中 我們欲攔截的win api 使其跳到我們定義的函式 當然 我們定義的函式也是寫在這dll裡 如此就能達到攔截系統所有程序的api call了 以上是小弟所了解的 可能有些地方有誤 請多包含 並不吝指教 我成功利用上述的小技巧寫出一個監視registry的小程式 還頗有成就感說~~~~ 新手真是容易滿足..........哈 發表人 - birdychang 於 2004/04/02 03:12:41
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-02 11:20:39 IP:61.221.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?topic_id=47170 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=47169 registry的小程式    請問 有空可以分享一下嗎 ? 或許可以搭配此篇 如果你有興趣寫 打包軟體 可以參考我由
birdychang
一般會員


發表:3
回覆:3
積分:1
註冊:2004-02-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-03 14:42:33 IP:218.161.xxx.xxx 未訂閱
妳要我的原始碼嗎~~ 當然可以啊 等我整理一下 不過你指的打包軟體是怎樣 就是install shield嗎?? 發表人 - birdychang 於 2004/04/03 14:43:43
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-03 16:03:43 IP:61.64.xxx.xxx 未訂閱
birdychang 兄 你好 install shield 我說的是 自己類似install shield的功能 由於上述文章皆由KTOP網站轉PO 但我在KTOP上不常看到有關 API 監測REG的功能 又在此看到 所以狗膽 尋問一下 創作者是否 有分享意願 或要寫個 簡易 install shield 範例也是可以 此篇文章雖已有範例 【Delphi】【討論】KTOP資源整合 文章 列表 朝向 自製InstallShield軟體 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46809 21 有原始程式的install shield程式範例 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18603 這樣 自己打造的打包軟體 可以有很多變化 以可以讓新人或好手 自行研究 如何有效針對自己的軟體 封裝 美化 註冊 加密等機制 不知道 birdychang 兄是否知道 這一個軟體 RegSpy 1.7 你的程式與他的功能應該類同嗎? 當然 上述 原作者的精神是最重要的 發表人 - conundrum 於 2004/04/03 16:08:14
birdychang
一般會員


發表:3
回覆:3
積分:1
註冊:2004-02-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-04 01:47:17 IP:218.161.xxx.xxx 未訂閱
喔喔 inno setup我知道 以前有用過 還不錯用的一個免費軟體 不過小弟愚鈍壓 不知道大哥為啥說要用這類軟體 因為若需要原始碼 我上傳我的原始檔就好啦 呵 還是您還有其他的意思 regspy我沒用過 但應該都是一樣的 我第一次聽到這類軟體是這家公司做的 http://www.sysinternals.com/index.shtml 他們還蠻庫的 最有名的應該是他們regmon跟filemon 之前聽說他們本來有regmon跟filemon的原始碼 現在收起來了 可能不想分享最新技術吧 嘿嘿 可是我在大陸網站有抓到 等下上傳上來給需要的人 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=47633 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=47632 我覺得雖然做法都是攔截win32 api 但是detours還是比較好用 易懂 不過她的原始碼參考價值還是很高 我偷學了不少東西 真的覺得大陸人都蠻屌的 高手一堆 且他們也樂於分享經驗 我看到有delphi k top降的網站很高興 畢竟台灣很難找到降的一個地方唄 不過依我抓大陸人分享的檔案經驗 大多在裡面藏木馬.............. 最近小地也在研究木馬的技術 雖然都不是什麼很新的技巧 但真的覺得要寫個木馬真的不難 不然現在也不會那麼氾濫 所以除了裝防毒軟體之餘 想多研究監控程式 一方面多了解windows的核心系統 一方面也可以讓自己對病毒木馬的防範更熟悉 發表人 - birdychang 於 2004/04/04 01:54:21
系統時間:2024-05-06 20:08:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!