0

我有一个 Fortran 程序的二进制文件。对于这个二进制文件想知道Fortran程序的源代码。通过使用 hexdum -c 我已将二进制文件转换为 ascii 文件。仍然无法理解。如何将二进制文件或 ascii 文件转换为人类可读的格式。

下面我在执行 hexdum -c 之后已经过去了 ascii 文件的某些部分

0003D80 0000 0000 0100 1300 8901 0000 D8B4 0408
0003D90 0000 0000 0100 1000 9701 0000 CCB5 0408
0003DA0 0000 0000 0100 1400 A301 0000 B09D 0408
0003DB0 0000 0000 0200 0C00 B901 0000 0000 0000
0003DC0 0000 0000 0400 F1FF BE00 0000 0000 0000
0003DD0 0000 0000 0400 F1FF EE00 0000 0000 0000
0003DE0 0000 0000 0400 F1FF B901 0000 0000 0000
0003DF0 0000 0000 0400 F1FF 0100 0000 0000 0000
0003E00 0000 0000 0400 F1FF 1000 0000 0000 0000
0003E10 0000 0000 0400 F1FF 0100 0000 0000 0000
0003E20 0000 0000 0400 F1FF 3E00 0000 0000 0000
0003E30 0000 0000 0400 F1FF B901 0000 0000 0000
0003E40 0000 0000 0400 F1FF E901 0000 0000 0000
0003E50 0000 0000 0400 F1FF F201 0000 00B1 040
0003E60 1400 0000 0100 0F00 0302 0000 14B1 0408
0003EE0 1400 0000 0100 0F00 8B02 0000 B4B1 0408
0003EF0 1400 0000 0100 0F00 9C02 0000 C8B1 0408
0003F00 1400 0000 0100 0F00 AF02 0000 DCB1 0408
0003F10 1400 0000 0100 0F00 C202 0000 F0B1 0408
0003F20 1400 0000 0100 0F00 D502 0000 04B2 0408
0003F30 1400 0000 0100 0F00 E802 0000 18B2 0408
0003F40 1400 0000 0100 0F00 FB02 0000 2CB2 0408

4

2 回答 2

1

有些反编译器会尝试从二进制文件生成源代码,但它不会是原始源代码。这意味着它不会有注释或局部变量名称。但是,为了获得二进制文件的反编译器,您必须找出使用哪个编译器生成它,然后确定它是为哪个架构编译的。下一步将是为该编译器搜索反编译器,或为该体系结构搜索与原始编译器上使用的编译技术足够相似的反编译器,以生成合理的源代码。

于 2013-07-03T17:33:52.270 回答
0

您提供的二进制文件(因为它是一个已编译的程序)不仅仅是 ASCII 或任何其他文本代码的二进制表示。原因是它是机器代码,这意味着它不会翻译成任何人类可读的东西。

其他一些人提到,有一些反编译器试图反转编译过程(但那些不会给出变量名和注释)。

如果它是您尝试查找源代码的开源程序,您应该能够在网上的某个地方找到它(例如在 sourceforge.net 上)

于 2013-07-03T18:13:51.633 回答