【问题标题】:Disassembler for Linux capable of disassembling old DOS .COM/.EXE filesLinux 反汇编程序,能够反汇编旧的 DOS .COM/.EXE 文件
【发布时间】:2011-05-23 05:24:41
【问题描述】:

我在这里的第一个问题,希望我没有做错。

我的问题是我有一个旧的 DOS 程序,它对文件格式进行了相当多的修改以节省空间。 (是的,对于那些知道的人来说,这是一个演示场景。)

Objdump 不想帮助我;快速谷歌搜索没有为该问题产生任何实际结果,并且联机帮助页在这方面似乎也不太慷慨。

还有其他是的,比如丽达。但是,由于某种原因,我无法让lida 工作。我相信还有其他选择。

谁有在 Linux 上反汇编 DOS 可执行文件的经验?还是我应该尝试一些基于 DOS 的反汇编程序并在 Dosmu 上运行它?

【问题讨论】:

    标签: linux reverse-engineering disassembly


    【解决方案1】:

    IDA是最好的反汇编器,还有linux版本。它比简单的反汇编器更好,因为它是交互式的。

    另外,如果你想看到漂亮的“手工”组装,最好的地方是旧病毒。而不是二进制文件,而是来源,因为它们被评论了。你可以试试Netlux

    【讨论】:

      【解决方案2】:

      ndisasm 带有NASM,网络范围的汇编器。它非常通用,包括反汇编原始字节流的能力(因为您提到了 COM 文件)以及一些目标文件格式。严格来说,我认为也可以使用 objdump 选项来反汇编原始字节流,但我不记得是怎么回事了。

      但是,自修改代码会使这变得相当棘手。查看字节流,如果程序会修改自己,很难预测最终执行的指令可能是什么,这是 DOS 时代常见的节省空间的技巧。您提到引导到 DOS,这给了我一些有趣的想法:也许您可以使用 DOS 调试器逐步完成它,或者在qemu 下运行 DOS 并使用它的调试选项(其中一些包括在执行期间转储程序集输出和寄存器状态) .

      【讨论】:

      • 啊,ndisasm 能够毫无问题地拆卸它。具有讽刺意味的是,我想拆解它的部分原因是想看看人们“过去”是如何进行组装的,而我自己正在学习组装和使用 NASM。
      猜你喜欢
      • 2010-11-09
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      相关资源
      最近更新 更多