Linux的反汇编程序能够反汇编旧的DOS .COM / .EXE文件

时间:2010-12-10 00:55:13

标签: linux reverse-engineering disassembly

我的第一个问题,希望我做错了。

我的问题是我有一个特定的旧DOS程序,它极大地破解了文件格式,以节省空间。 (是的,对于那些知道的人来说,这是一种杀戮的方法。)

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

还有其他人,比如丽达。但是,出于某种原因,我无法让利达工作;我相信还有其他选择。

任何人都有在Linux上反汇编DOS可执行文件的经验吗?或者我应该尝试一些基于DOS的反汇编程序并在Dosemu上运行它?

2 个答案:

答案 0 :(得分:6)

IDA是最好的反汇编程序,还有linux版本。它比简单的反汇编更好,因为它是互动的。

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

答案 1 :(得分:4)

ndisasm附带NASM,全网汇编程序。它非常通用,包括能够反汇编原始字节流(因为你提到了COM文件)以及一些目标文件格式。严格来说,我认为也可以用一些objdump选项反汇编原始字节流,但我不记得是怎么回事。

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