【问题标题】:Free 64-bit disassembler? [closed]免费的 64 位反汇编程序? [关闭]
【发布时间】:2011-09-08 14:49:15
【问题描述】:

注意: A similar question is also on Reverse Engineering Stack Exchange.

有没有免费的 AMD64 反汇编程序?

貌似x86反汇编器很多,但是都打不开64位文件……

更新:

是否有任何工具也可以在反汇编中显示导出的符号?当未识别出口时,很难弄清楚代码。 (我不需要调试符号,只需要导出。)

【问题讨论】:

  • Visual Studio Express 不包含 x64 工具包吗?
  • @Cody:我不确定。我确实有 Visual Studio 2008 Professional,所以这对我来说实际上不是问题 - 这里的问题是 Visual Studio 需要 运行 代码,而我不能这样做。
  • 嗯,为什么不能运行代码?当然,您不必拥有源代码。您可以将调试器附加到已经运行的进程。
  • @Cody:它是内核模式代码...此外,您并不总是想运行代码来弄清楚它在做什么。万一有危险怎么办?!
  • @Mehrdad -- 在虚拟机中运行。

标签: windows 64-bit x86-64 disassembly


【解决方案1】:

我使用objdump -d。 :-) 这不适合你吗?

【讨论】:

  • +1 哇,它确实可以,我从来不知道它可以拆卸。非常感谢!
  • @Chris:一个小问题:有没有办法让它在代码中标记导出的函数?没有它们,很难理解拆卸。
  • @Mehrdad:哦,你的意思是来自剥离的可执行文件的动态符号?我不完全确定。
  • @Mehrdad:如果它是从常规的 ol' C 代码构建的,它们应该已经存在。仅供参考,这是我从一个简单的 .c 文件中得到的输出,其中只有一个 foo() 和 main() 函数(只需搜索“foo”:pastebin.com/49sYkv2q
  • @Mehdrad @Chris: 哦,对了,如果可执行文件被剥离,那你就不走运了(除了嵌入式工作,我从不剥离我的二进制文件,所以我忘记了:()。
【解决方案2】:

如果您正在处理 Windows 文件并拥有 Visual Studio,则可以使用 dumpbin 工具。

dumpbin /disasm ntoskrnl.exe /out:ntoskrnl.asm

它也不会内联显示导出,但您可以使用 /exports 开关单独查看它们。然后您可以编写一个小脚本来解析导出并将程序集列表中的地址替换为名称。

【讨论】:

  • +1 感谢您的建议。这有点乏味,但如果我必须这样做,我想我可能会这样做,谢谢。
  • 顺便说一句,您还可以使用 Windows 调试工具中的 dbh.exe 来获取 ntoskrnl.exe 的 .pdb 文件并从中显示符号。
【解决方案3】:

GNU binutilsobjdumpwhich should work

-d

--反汇编

显示汇编程序助记符 来自 objfile 的机器指令。 此选项仅反汇编那些 预计包含的部分 指示。

-D

--全部反汇编

类似-d,但反汇编内容 在所有部分中,不仅仅是那些 预计包含说明。如果 目标是一个ARM架构 switch也有强制的效果 反汇编程序来解码 在代码段中找到的数据,就好像它们 是指示。

它已经安装在大多数安装了 GCC 或其他开发工具的 Linux 发行版上,并且 Windows 版本可通过例如Cygwin.

【讨论】:

    【解决方案4】:

    ArkDasm 是一个 64 位交互式反汇编程序。支持的文件类型:PE64,原始二进制文件。

    http://www.arkdasm.com/

    您可以检查导入、导出、调试符号(如果您有 .pdb 文件)、翻转代码到数据、数据到代码(查看 readme.pdf 中的键盘快捷键)支持书签,添加 cmets 也可以保存稍后处理它的数据库...

    【讨论】:

    【解决方案5】:

    http://www.duxcore.com/products.html

    http://www.duxcore.com/fs_files/VisualDuxDbgSetup.zip

    Visual DuxDebugger 是适用于 Windows 的 64 位调试器反汇编器。

    主要特点 完全支持 64 位本机进程 完全支持 64 位 .NET 进程 完整的代码分析 全内存分析 代码版 记忆版 模块导出格式(EXE/DLL/CSV) 调试多个进程 调试多个子进程

    最低要求 操作系统:Windows 7 64 位/Windows Server 2008 R2 处理器:奔腾 4 3.0 GHz

    推荐的要求 操作系统:Windows 7 64 位/Windows Server 2008 R2 处理器:双核 2.5 GHz 显示:1920 x 1080

    【讨论】:

    • 不幸的是,Visual DuxDebugger 仅适用于 64 位图像...
    • 域不再存在。
    【解决方案6】:

    WinDbg 将转储导出表并让您四处寻找

    windbg.exe -z \path\to\someinteresting.exe
    x someinteresting!*
    uf someinteresting!AnExportedFunction
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 2019-04-15
      相关资源
      最近更新 更多