我可以通過僅分析exe文件來檢測是否在delphi應用程序中使用了makexcept?檢測德爾福應用程序中的makexcept
是否存在被添加的幾行代碼,以我的應用程序,或告知最終的exe文件,用戶如果madshi madexcept已使用未
我可以通過僅分析exe文件來檢測是否在delphi應用程序中使用了makexcept?檢測德爾福應用程序中的makexcept
是否存在被添加的幾行代碼,以我的應用程序,或告知最終的exe文件,用戶如果madshi madexcept已使用未
如果在Delphi應用程序中使用madexcept
,那麼該可執行文件中應該有一個資源條目:MAD->EXCEPT
。
要測試的外部應用程序:
var
h: HMODULE;
h := LoadLibraryEx('c:\foo\bar.exe', 0, LOAD_LIBRARY_AS_DATAFILE);
if h <> 0 then
begin
if FindResource(h, 'EXCEPT', 'MAD') <> 0 then
ShowMessage('madexcept Found!');
FreeLibrary(h);
end;
要測試裏面你自己的應用程序:
if FindResource(HInstance, 'EXCEPT', 'MAD') <> 0 then
ShowMessage('madexcept Found!');
然而要注意WHIS不會告訴你什麼選擇madexcept
用途。例如可能有一個異常過濾器設置爲過濾訪問衝突異常,或者不會檢查凍結線程等的設置...
ResHacker或XNResourceEditor或dumpin是這裏的工具。編寫代碼並不是解決這個問題所需要的。 –
@DavidHeffernan,我以爲OP想要通過編程的方式「通過向我的應用程序添加幾行代碼來實現這一簡單方法......」我的答案。 – kobik
是的,這個問題沒有說,但它在評論中。嘆。 –
一個簡單的方法可以做到文本純文本搜索「madexcept 」。我所知道的最簡單的方法是使用命令行工具。我將結合琴絃和grep工具是這樣的:
C:\mydir>strings MyApp.exe | grep -i madexcept MadException MadExceptionT madExcept madExcept U9v;1 madExcept5 A madExcept madExcept madExcept1 c madExceptL c madExcept c madExcept c madExceptL c madExcept c madExcept madExcept c madExceptH This way madExcept can't install the thread hooks. .........
我個人使用GnuWin32作爲我的源代碼,這些不可缺少的工具。
如果您不是某個人的命令行類型,請使用Process Explorer。運行可執行文件,然後運行Process Explorer。找到過程並雙擊它。打開Process Explorer屬性對話框,其中包含一個名爲Strings的頁面。選擇該頁面並點擊保存按鈕。現在,您有一個文本文件,其中包含可執行文件中可以搜索的所有字符串。
所有這些都會告訴你,你將madExcept代碼編譯到你的程序中。你不知道它是否真的活躍。
你編譯可執行文件?如果確定你知道madExcept是否在那裏。 –
@DavidHeffernan @DavidHeffernan可想象的情況可能是「需要」知道的組件的分佈... – bummi
可執行文件在客戶端,我們用madshi編譯,但是madshi不會在客戶端PC上的訪問衝突或凍結線程中彈出。如果不再交換可執行文件,我們想確認我們的代碼是否符合我們的規範,包括madshi調試工具。 – Franz