Re: [問題] 如何透過dll控制其他程式

看板C_and_CPP (C/C++)作者 (有趣生活)時間16年前 (2009/05/14 12:46), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串3/4 (看更多)
※ 引述《freehand1122 (jychen)》之銘言: : 假設我撰寫兩個程式A,B跟一個dll檔 : B程式有一個function是做簡單的運算,最後回傳值印出 : 如果今天我想用A程式透過dll去呼叫B程式的function,請問該如何做 : 這些似乎跟hook 遠端程序控制有關 : 雖然觀念上大概懂,但實作還是遇到很多困難(程式底子不好..) : 懇請板上高手能夠指點,或者可以提供範例參考 : 感謝 我也是覺得 "透過 DLL 呼叫 B 程式 的 function" 中間多一層似乎不必要 既然 A,B 都是由自己撰寫 或許這裡需要的只是透過一些 IPC 機制互傳訊息? 如果 A 要的只是 B 印出的內容,那用 pipe 也就 OK 了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.1.121 ※ 編輯: UNARYvvv 來自: 218.168.1.121 (05/14 12:51)

05/14 14:07, , 1F
當然只是在做練習..那如果B不是自己的程式該怎麼做?
05/14 14:07, 1F

05/14 14:07, , 2F
是否只要知道B的函式的記憶體空間就有辦法呼叫?
05/14 14:07, 2F

05/14 14:27, , 3F
是的 那就要知道 B 程式中實際函式的起始位址了
05/14 14:27, 3F

05/14 14:29, , 4F
不過一般程式內部的 function 不會導出 (exported)
05/14 14:29, 4F

05/14 14:30, , 5F
可能就要用些比較麻煩的手段來找
05/14 14:30, 5F

05/14 14:31, , 6F
建議可以從 "API hooking" 開始找起 資料很多
05/14 14:31, 6F

05/14 14:34, , 7F
先從定位&攔截公開的 API 下手看看
05/14 14:34, 7F
文章代碼(AID): #1A2w8Rcr (C_and_CPP)
文章代碼(AID): #1A2w8Rcr (C_and_CPP)