正在解压缩1990年的DOS应用程序



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

那么,有没有一个反汇编程序/调试器能够处理这样的可执行文件?谢谢

UPD:我知道DOSbox,应用程序在里面运行很好。问题是,我不需要运行它,我需要了解它写入数据的文件格式。或者我对DOSbox不了解,它也可以作为调试器/反编译器运行?或者你的意思是在DOSbox中启动一些旧的16位DOS调试器/反编译器?后者听起来像是一个想法,但你能说出一个像样的DOS调试器吗?

拆卸工具:

使用IDA免费软件https://www.hex-rays.com/products/ida/support/download_freeware.shtml你不会找到任何更好的逆转工具,即使是旧的dos程序:)

大多数其他工具只能对32位进行拆卸,而不能以任何方式分析IDA的特性,IDA是逆向工程的黄金标准工具

调试器:dosbox有自己的内置调试器(可以通过命令行上的"debug"命令访问)但您需要使用激活的调试器构建自己版本的dosbox(或者更好的重度调试),请参阅:http://www.vogons.org/viewtopic.php?t=3944

或者,如果您获得了sdk的ida许可证,则有一个dosbox<->ida调试器插件可用目前仅限linuxhttps://github.com/wjp/idados

文件格式:你知道这个文件包含什么吗(你想从文件中得到什么)非常复杂的信息还是"只是"一些值列表?

也许从这里开始使用十六进制编辑器更好(http://mh-nexus.de/de/hxd/)和已知的结果值来比较

哪个程序当前使用数据(或者仅使用程序本身)?也许可以理解这个程序是如何读取数据的?

程序本身:exe有多大?控制台程序还是一个大型的超级gfx电源应用程序?真正的16位还是32位的dos扩展器?单个exe或覆盖(dos dlls)?

你能允许访问可执行文件吗?

轮到你了

您正在寻找IDA。它实际上是任何东西的反汇编程序。

你可以在上获得更多帮助https://reverseengineering.stackexchange.com/

您不一定需要为了确定程序写入数据的格式而反汇编程序。

也许你可以对它进行差分分析。更改程序的一些输入,让它写入数据,并观察文件的变化。

我这里有一些老式的硬件设备,它们可以通过MIDI以二进制格式转储NVRAM设置(在一种情况下,是一条带有二进制blob的SysEx消息)。如果我想知道格式是什么,我会对设置进行小的、系统的更改,并执行转储,然后查看二进制数据中的哪些位正在更改。

你可能真的最好攻击数据,而不是程序。

Dosbox可能是一种尝试。

你也可以看看http://hte.sourceforge.net/。

最新更新