反编译 1990 DOS 应用程序

逆向工程 调试 反汇编者 dos-exe
2021-06-13 01:34:49

我有一些几十年前由一个古老的 16 位 DOS 应用程序编写的重要数据。没有文档,没有来源,也没有关于作者的信息。只是 16 位 exe。我想是时候学习如何反编译了,因为这似乎是恢复文件格式的唯一方法。我试过 OllyDbg,它看起来很棒,但它不能是 16 位的。是否有能够处理此类可执行文件的反汇编器/调试器?

我知道 DOSbox,该应用程序可以在其中运行。问题是,我不需要运行它,我需要了解它写入数据的文件格式。您认为在 DOSbox 中启动一些旧的 16 位 DOS 调试器/反编译器听起来像一个主意吗?如果是的话,你能说出一个像样的 DOS 调试器吗?

谢谢。

PS:我从 StackOverflow 复制粘贴了这个问题,因为我在问它时不知道 ReverseEngineering 部分。如有违规请删除。

4个回答

2 位伟大的反汇编者......错过了时间。特别适用于 DOS 和 16 位程序。他们是他们那个时代的 IDA PRO...

  1. WCB(非常罕见。永远不要错过例行程序的开始。永远不要)

  2. SOURCERER(如果你能找到它。当专业人士想要反汇编任何文件时去的反汇编器。工业实力,更多你可以投入的选项,非常有用。不要忘记下载中断列表解释和收集中断列表在最后)。

IDA 不错。当谈到这两个时,还不够好。

我个人的选择---SOURCERER。

SYMDEB.EXE,Microsoft FOR DOS 的符号调试器。Turbodebugger --- 没有那么多。

希望有帮助。

匿名的。

  • 16b DOS afaik 没有像样的反编译器

  • Dosbox 有一个集成的调试器,或者尝试 TurboDebugger - 并同时在 IDA 中打开文件以随时随地记录。另请查看最近关于这种情况的博客文章。

如果你不关心动态分析,你应该尝试radare2(一个免费软件),它可以(除其他外)很好地反汇编16位DOS二进制文件。

我想到了两个有用的 DOS 调试器:

  1. 软冰

  2. 德格鲁克。

SoftIce 是商业软件,DeGlucker 是免费软件。

编辑: Gametools (G3X) 也是一个非常有用的 DOS TSR 调试器。Gametools 的最佳功能是它的内存扫描器,它可以扫描内存中的精确值、比前一次更大的值和比前一次更小的值。然后你可以在匹配的内存地址上设置硬件内存断点(当你有足够少的内存地址时,通常在几轮之后),这样你就可以找到访问这些内存地址的基本例程。如果我必须对 DOS 应用程序进行逆向工程,我肯定会从 Gametools 开始。