我有一些几十年前由一个古老的 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 的分析功能 - 它是逆向工程的黄金标准工具
调试器: dosbox 有自己的内置调试器(可通过命令行上的“debug”命令访问) 但是您需要使用激活的调试器(或者更好的重调试)构建自己的 dosbox 版本,请参阅:http://www.vogons.org/viewtopic.php?t=3944
或者如果你有一个带有 sdk 的 ida 许可证,那么有一个可用的 dosbox<->ida-debugger 插件 目前只有 linux https://github.com/wjp/idados
文件格式: 你知道文件包含什么(你想从文件中得到什么) 非常复杂的信息或“只是”一些值列表?
也许最好从这里开始使用十六进制编辑器 (http://mh-nexus.de/de/hxd/) 和要比较的已知结果值
当前哪个程序使用数据(或仅使用程序本身)?或许可以理解这个程序是如何读取数据的?
程序本身: exe有多大? 控制台程序或大型 super gfx 电源应用程序? 真正的 16 位或 32 位与 dos-extender? 单个 exe 或覆盖(dos-dll)?
您可以授予对可执行文件的访问权限吗?
轮到你了
关于debugging - 反编译 1990 DOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20155945/