如何将二进制文件转换为人类可读的

时间:2013-07-03 17:22:32

标签: ascii binaryfiles asciiencoding

我有一个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 0408
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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

如果它是一个开源程序,你试图找到它的源代码,你应该能够在网上找到它(比如在sourceforge.net上)