适用于Linux的反汇编器能够反汇编旧的.COM / .EXE文件

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

我的问题是,我有一个老的DOS程序,已经相当多的黑客文件格式到极致,以节省空间。 (是的,这对那些知道的人来说是一个杀人刺激的刺激。)

Objdump不想帮助我; 快速谷歌search没有得到真正的问题的结果,在这方面的手册也不太慷慨。

还有其他的,像利达。 然而,由于某种原因,我不能让丽达工作, 我相信有其他select。

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

Solutions Collecting From Web of "适用于Linux的反汇编器能够反汇编旧的.COM / .EXE文件"

IDA是最好的反汇编,也有Linux版本。 因为它是互动的,所以它比简单的解散者更好。

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

ndisasm与NASM ,网络汇编。 这是非常灵活的,包括反汇编原始流的能力(因为你提到COM文件),还有一些目标文件格式。 严格地说,我认为也可以用一些objdump选项反汇编原始字节流,但我不记得那是怎么回事。

然而,自我修改的代码可以使这个相当棘手。 纵观字节流,很难预测如果程序会自行修改最后执行的指令,DOS时代的一个常见的节省空间的技巧。 您提到启动到DOS,这给了我一些有趣的想法:也许你可以使用DOS调试器,或者在qemu下运行DOS并使用其调试选项(其中一些包括在执行期间转储汇编输出和寄存器状态)。