1

有一个 unix 可执行文件,我想读取该文件的内容。它的格式不可读,需要破译。它没有任何扩展名,当我在终端上对其进行处理时,它的格式不可读。

是否有任何命令可以用来破译它或任何可以提供帮助的工具。请帮忙。

4

2 回答 2

2

如果它不可读,cat那么它可能是一种可执行格式,例如,a.out或者,更有可能是ELF(尽管它可能是不同的格式)。

如果您的可执行文件是xyzzy,您应该能够通过使用它来找出它是什么类型file xyzzy,例如:

pax> file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386,
         version 1 (SYSV), dynamically linked
         (uses shared libs), for GNU/Linux 2.6.18,
         stripped

如果您在网络上搜索该文件格式(例如从此处开始),那么该文件格式已得到很好的记录(例如从此处开始),并且有诸如gcbnmreadelf之类的工具objdump可以在不同程度上查看其中的内容,但它可能提供给您的只是原始汇编语言。回到易于理解的源代码将非常困难。

于 2012-10-23T06:34:55.590 回答
2

你不需要破译它(除非它有一些二进制级别的混淆,因为它是一个 IOCCC 条目)。你可以使用otool -tvor来反汇编它,objdump然后阅读里面的程序做了什么。)

于 2012-10-23T06:38:53.580 回答