有没有办法反编译用古代编译器构建的二进制资源文件?

时间:2012-01-15 02:06:11

标签: c windows resources porting

我正在尝试恢复使用Borland Turbo C ++构建的1990年应用程序(版本未知,可​​能是3.0,可能是4.5?),并且显然是针对Windows 3.1。

该项目包含一个.c文件和一个.res文件。我没有尝试找到古老的编译器,而是将C源调整为与MinGW gcc ver 4.5.2兼容,认为我可以为win32重建它。不幸的是,这是其中一个窗口程序,其中主窗口是一个对话框,对话框规范嵌入在.res文件中。当然,现代MinGW gcc不了解旧的.res格式。

那么有没有办法从1990年代的老式Borland .res文件中恢复.rc文件?我知道编译旧的16位Windows代码会有其他问题,但是我可以稍后处理它(它只有2K loc),现在绊脚石是这个资源文件。

稍晚......

我找到了'Turbo C 3.1',但这件事是一次旅行。它实际上可以编译为16位窗口,生成的可执行文件需要在XP下运行NTVDM,但这个概念已被证实。在一个简单的Windows hello-world上尝试过,它起作用了。

无论如何,问题仍然是.res文件!有一个带有上述材料的项目(.prj)文件,但它显然调用了.rc源文件。我知道使用gcc,我可以将已编译的资源文件链接到可执行文件中,但是如果我能找出'bcc'的奇怪命令行就可以了。为了了解它有多奇怪,bcc使用-W作为“创建Windows应用程序”的标志。一定是可能的。有谁记得吗?

(fwiw-我认为可能有更好的标签。随意重新标记。)

1 个答案:

答案 0 :(得分:1)

打开Watcom C / C ++的资源编辑器(wre.exe)似乎能够打开16位.res文件。如果最新版本不能完全运行(由于很少有人使用16位资源文件,这并非完全出乎意料),请尝试更早版本。