[問題] DLL中斷相關問題

看板C_and_CPP作者 (阿喜)時間14年前 (2011/08/29 17:30), 編輯推噓2(2016)
留言18則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) visual6.0 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) windows.h 問題(Question): 現在在做一份HOOK API的程式 因此使用遠端執行緒注射DLL的方式 建立新程序的同時載入DLL這樣 而我在DLL中還會呼叫另外一個檔案(自己寫的另一個C檔)的funtion 來做我的一些處理 其中會有判斷式 簡單說YES就會關閉此執行緒跳離DLL 想請問版友 要如何做才能讓他直接跳到DLL離開點 case DLL_PROCESS_DETACH: 或是強制關閉這個執行緒呢? 懇請版上高手提供建議 謝謝 -- 要感謝的東西太多了  那就謝天吧     要改的程式太多了  那就改天吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.17.174 ym410804:轉錄至看板 Programming 08/29 20:02

08/29 22:55, , 2F
個人認為只要PostQuitMessage(0);即可
08/29 22:55, 2F

08/30 00:12, , 3F
s大提供的是在dll內部就強制關閉library
08/30 00:12, 3F

08/30 00:13, , 4F
不過普通是不太建議的樣子
08/30 00:13, 4F

08/30 00:13, , 5F
W大 PostQuitMessage(0) 除了在主程式之外
08/30 00:13, 5F

08/30 00:14, , 6F
dll之中也能呼叫嗎? 那這樣釋放的是主程式還是只有dll呢?
08/30 00:14, 6F

08/30 00:15, , 7F
或者是在dll中呼叫 連帶整個線程跟library都會同時釋放?
08/30 00:15, 7F

08/30 00:21, , 8F
為什麼不設個判斷讓執行緒自我了決就好??
08/30 00:21, 8F
先謝謝兩位版友的回答 我稍微解釋一下我的程式架構好了 我現在是做一個類似API monitor的東西 先有一個主程式 開啟另一個執行檔 同時注入DLL到新開的這個執行檔 原先的主程式不必做事 新開的這個程序也不用做事 再來都是利用DLL中所設立好的函式完成剩餘的動作 而DLL會依序捕捉API 美捕捉一個會進行我在DLL中所寫的一個演算法 這個函式會回傳true or false true就強制關閉這個檔案 false就繼續捕捉下一個API 而這個DLL依附的執行緒是正常開啟 現有的另一個執行檔(不是自己寫的 因此一切動作都必須依賴DLL 這樣說明應該比較清楚了 希望有哪位版友可以幫到忙 也謝謝各位回答的版友! ※ 編輯: ym410804 來自: 220.136.17.174 (08/30 00:29)

08/30 00:23, , 9F
就算執行緒不見DLL還是會在,怎會跳到DLL_PROCESS_DETAC
08/30 00:23, 9F

08/30 00:24, , 10F
"跳離DLL"是執行緒跳離還是啥密東東跳離DLL???????
08/30 00:24, 10F

08/30 00:31, , 11F
是在做類似異常行為偵測的事情
08/30 00:31, 11F

08/30 00:32, , 12F
希望這樣的解釋能比較好看的懂 > <
08/30 00:32, 12F

08/30 00:34, , 13F
要不就是把Api hook的程式碼還原
08/30 00:34, 13F

08/30 00:35, , 14F
或者在dll內做是否捕捉的開關,可參考wpepro的Hook法
08/30 00:35, 14F

08/30 00:39, , 15F
恩...謝謝S大 我研究看看!
08/30 00:39, 15F

08/30 01:00, , 16F
學弟是在做丁老師的專題?
08/30 01:00, 16F

08/30 01:01, , 17F
我是跟吳老師的XD 不過這題目是自訂....
08/30 01:01, 17F

08/30 01:18, , 18F
@"@
08/30 01:18, 18F
文章代碼(AID): #1EMrmVn9 (C_and_CPP)