全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1284
推到 Plurk!
推到 Facebook!

A.dll調用B.dll中的函數,如何去HOOK B.dll中的函數呢?

尚未結案
crying_foul
一般會員


發表:2
回覆:1
積分:0
註冊:2006-08-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-24 19:51:06 IP:219.157.xxx.xxx 訂閱
A.dll調用B.dll中的函數,如何去HOOK B.dll中的函數呢?
可以通過注入進程來hook到b.dll,但a.dll會提示無效的地址。
RootKit
資深會員


發表:16
回覆:357
積分:419
註冊:2008-01-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-12-27 23:29:14 IP:122.126.xxx.xxx 訂閱
HOOK API (B)
crying_foul
一般會員


發表:2
回覆:1
積分:0
註冊:2006-08-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-12-29 08:25:02 IP:219.157.xxx.xxx 訂閱
具體是這樣的
test.exe
-----a.dll
-----b.dll
test中調用了a.dll中的ccc函數,而這個ccc函數是靜態調用B.dll中的mmm函數。
我現在注入test hook b.dll中的mmm函數。
a.dll 和b.dll是我自己寫的,
第一次沒有用到指針變量。 test運行正常。
第二次,我把a.dll中ccc及b.dll中mmm函數的參數改爲指針型。test出錯,提示 a.dll 非法訪問 xxxxx內存地址。因爲hook時間我修改了返回值。第一次返回值是複制方式傳給a.dll。第二次,參數改爲了指針,所以hook.dll要訪問a.dll傳給b.dll的內存地址,所以出錯了。我想著是這樣,不知道對不對?

在hook回調函數中怎樣修改指針參數地址的值呢? 如果是進程直接調用b.dll的話,我知道可以直接修改參數的所指地址的內存。因爲注入後hook.dll可直接訪問進程空間。但像我列子這樣,直接修改不行。
RootKit
資深會員


發表:16
回覆:357
積分:419
註冊:2008-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-12-30 21:15:53 IP:122.126.xxx.xxx 訂閱
不是很瞭?

如果是自己的程序,為何要 Inject ?
在 VirtualProtect 寫入發生錯誤嗎?

貼上你的代碼吧!
系統時間:2017-10-19 2:38:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!