在 中%SYSTEMROOT%
,大约有 2000 个 DLL 和 EXE 文件。我正在研究逆向工程其中一些是其他应用程序的依赖项。
但是,我最想要的是反汇编所有文件并从所有文件中获取程序集文件,以便更“快速”地搜索代码。即使我一直专注于单个函数和文件,否则我将需要单独反编译每个 DLL,这是大量重复性工作。
找到一个合适的 x64 反汇编器工具已经够难的了,让一些具有命令行选项的东西变得很长。你知道如何解决这个问题吗?
在 中%SYSTEMROOT%
,大约有 2000 个 DLL 和 EXE 文件。我正在研究逆向工程其中一些是其他应用程序的依赖项。
但是,我最想要的是反汇编所有文件并从所有文件中获取程序集文件,以便更“快速”地搜索代码。即使我一直专注于单个函数和文件,否则我将需要单独反编译每个 DLL,这是大量重复性工作。
找到一个合适的 x64 反汇编器工具已经够难的了,让一些具有命令行选项的东西变得很长。你知道如何解决这个问题吗?
如果您安装了任何版本的 Visual Studio 或 Visual Studio Build Tools,您就可以使用一个名为 的强大命令行工具dumpbin
,其中包括一个反汇编器选项,可供您使用。
dumpbin /SECTION:.text /DISASM file.exe > file.txt
有关更多信息,请查看 MSDN 文档 dumpbin
Unix 工具是您的朋友!您可以使用 Unix 命令的组合来反汇编所有文件。这些可以通过Cygwin在 Windows 上轻松获得。
find $SYSTEMROOT -name \*.exe -or -name \*.dll -print0 |
xargs -0 -n 1 dumpbin /disasm
第一个命令查找所有.exe
和.dll
命令。第二个适用dumpbin
于每个找到的文件名,它与 Visual Studio 一起打包。您可以将输出重定向到一个文件中,也可以修改上述顺序,将每个反汇编文件的输出写入不同的输出文件中。您也可以替换dumpbin
为您最喜欢的反汇编程序。
您总是可以编写一个 IDAPython 脚本来:
idc.LoadFile
.ida_auto.auto_wait
idc.save_database
。然后通过idc.LoadFile
再次调用加载下一个文件。
IMO,IDA 的反汇编程序与 dumpbin 实用程序相比通常会产生更好的结果。