題:
批量反彙編DLL和EXE文件?
bytecode77
2017-12-02 03:32:40 UTC
view on stackexchange narkive permalink

%SYSTEMROOT%中,大約有2000個DLL和EXE文件。我正在研究其中的一些逆向工程,這些逆向工程是其他應用程序的依賴項。更快速”。即使我一直專注於單個函數和文件,否則我仍然需要分別反編譯每個DLL,這是很多重複的工作。有命令行選項的東西。您有解決該問題的想法嗎?

三 答案:
Diomidis Spinellis
2017-12-03 03:58:21 UTC
view on stackexchange narkive permalink

Unix工具是您的朋友!您可以使用Unix命令的組合來反彙編所有文件。這些可以在Windows上通過 Cygwin輕鬆獲得。

 找到$ SYSTEMROOT -name \ *。exe -or -name \ *。dll -print0 | xargs -0- n 1 dumpbin / disasm  

第一個命令查找所有 .exe .dll 命令。第二個方法是對每個找到的文件名應用 dumpbin (隨Visual Studio一起提供)。您可以將輸出重定向到文件中,也可以修改上述順序以將每個反彙編文件的輸出寫入不同的輸出文件。您還可以用自己喜歡的反彙編程序替換 dumpbin

我沒有看到任何名為“ dumpbin”的軟件包。如果“ disasm”是任何反彙編程序命令行工具的佔位符,那麼我首先需要一個。對我而言,真正的複雜性是找到並使用適當的工具。擁有一個已經足夠了,因為有很多方法可以調用它,cygwin只是其中之一。
`dumpbin`是Visual Studio工具
AilizfymxeCMT these days I'd always recommend all the basic tools included with Git for Windows. My main argument: it's a code-signed distribution.
AiliteicsnCMT I like that Cygwin through its package manager allows you to choose from hundreds of projects, thus allowing you to grow with it. Isn't Git for Windows restricting in this area?
fpmurphy
2017-12-03 08:50:00 UTC
view on stackexchange narkive permalink

如果安裝了任何版本的Visual Studio或Visual Studio Build Tools,則您將擁有一個名為 dumpbin 的強大命令行工具,其中包括反彙編程序選項。

  dumpbin /SECTION:.text / DISASM file.exe > file.txt  

有關更多信息,請參閱 dumpbin

這真太了不起了!從來不知道VS工具鏈中為此內置了工具。由於您已經描述了最完整的核心問題(如何反編譯文件),因此我將接受您的回答並同時支持這兩個問題。然後,我將找到腳本解決方案(cygwin,LINQPad等)
NirIzr
2018-06-18 13:49:57 UTC
view on stackexchange narkive permalink

您始終可以編寫一個IDAPython腳本,該腳本將:

  1. 使用 idc.LoadFile 加載文件。
  2. 等待自動使用 ida_auto.auto_wait
  3. 完成分析,方法是調用 idc.save_database 保存生成的IDB文件。
  4. ol>

    然後再次調用 idc.LoadFile 來加載下一個文件。

    IMO,與dumpbin實用程序相比,IDA的反彙編程序通常會產生更好的結果。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...