DLL內函數問題 |
缺席
|
Eruruu
一般會員 發表:9 回覆:13 積分:9 註冊:2006-07-22 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
不懂你的意思?!
LoadLibrary是Windows API,存在於DLL之中提供給所有的應用程式使用,以DLL的特性而言,每個應用程式都將載入的DLL放入到自己獨特的4GB空間裡,何來被鎖定? ===================引 用 文 章=================== 請問有沒有什麼辦法可以把kernel32.dll裡的LoadLibraryA拿出來放到其它地方, 讓程式可以不用載入kernel32.dll而能使用該函數呢? 因為要在kernel32.dll被鎖的情況下使用它裡面的函數 |
Eruruu
一般會員 發表:9 回覆:13 積分:9 註冊:2006-07-22 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
Eruruu
一般會員 發表:9 回覆:13 積分:9 註冊:2006-07-22 發送簡訊給我 |
你懂 DLL 是什麼東西嗎?
雖然你的回答聽起來很妙,不過那只不過是錯覺,為什麼我要提到LoadLibrary 。 LoadLibrary 在kernel32.dll裡面,就算你複製kernel32.dll 成別的名字,請問你要怎麼 用LoadLibrary載入,還不是用kernel32.dll裡的LoadLibrary,我只要在LoadLibrary上加入jmp 到我的程序中,再用GetProcAddress(dll, "LoadLibraryA");或是任何一個kernel32.dll裡有的函數名, 那不管你怎麼複製kernel32.dll我都能把它檔下來,因為變的只有檔名,函數名又沒變 而且我這麼問是因為我的程式exe和dll中dll必須要在攔截程式開啟後才開 如果有其它方法的話,麻煩大家幫個忙,或是能把函數拿給遠程的dll的方法
------
わたしは..わたし |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
那我建議你看一篇文章「提問的智慧」
才不會沒人看得懂妳的問題 回到正題 這就成一個古早的「老問題」,我要如何「攔截攔截中斷,並不被別人欄走」 既然你加得進去,就表示「移除得了」,另外,名稱真的不會變嗎? 不能改嗎?不過是一堆 Binary code 更不用說是依據標準規格產生的,只要是標準規格,沒什麼不能改的 你要範例的話 http://delphi.ktop.com.tw/board.php?cid=35&fid=967&tid=87132 所以,改名?恩只要長度一樣,很簡單,改起來也很快,長度不一樣,需要在加上一道手續,就是 reallocation 除非你將整的功能廢掉,不過這時 Windows 大概也廢了,kernel32.dll 的東西全都不能用,那 windows 還能活嗎? 沒什麼不能破的,看 XBOX 就好了,出沒多久,就有破解方式 只看你有沒有動力去做而已 所以要是所檔名,哪複製即可,若是鎖函數名稱,那改名即可 要是鎖 address,那就 reallocation 或簡單的只有改 Base-Address 更不用說還可以反攔截、反反攔截、反反反反反反...到爽的反攔截 至於粹取程式來跑,也不是什麼難事 這種技術,也不是新的,很早就有了 舉例,很早已前,就有一種技術,叫撥殼,將程式叫進記憶體,然後回寫到硬碟,當然只回寫你要的部分 工具: DEBUG.EXE 即可做到,可以用來破密碼保護,所以後來很多軟體不再用「簡單的」密碼保護 所以你要腦筋靈活一點,就沒問題,工具與答案,就交給 google 大神 所以還是要問,你懂 DLL 嗎? 可不是問你「你懂如何使用與編譯 DLL嗎?」 你要是懂 DLL 格式,那 reallocation 、粹取、改名,都不是問題,問題是「你有時間與動力嗎?」,因為過程有時候很繁瑣又枯燥 最後,難道非用該函數不可? 大不了,自己寫,不會完全自己寫,哪可以用其他函數兜看看,總有辦法做到你要的 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |