我已经试过了,我用文本编辑器打开了一个 a.out 文件,但我只得到一堆字符,里面有一些指令,比如:
üÙ
我已经试过了,我用文本编辑器打开了一个 a.out 文件,但我只得到一堆字符,里面有一些指令,比如:
üÙ
查找本地友好的十六进制编辑器。
仅查看代码的反汇编(带有操作码字节),不包括任何文件头:
objdump -d a.aot
可执行文件有多种格式。对于 Unix/Linux,它是 ELF: http ://en.wikipedia.org/wiki/Executable_and_Linkable_Format
对于 Windows,它是 PE: http ://en.wikipedia.org/wiki/Portable_Executable
正如其他人指出的那样,使用 objdump 工具查看操作码
当您打开二进制文件时,您会看到不可读的字符,原因是 ascii 编码使用 7 bits ,因此编辑器无法识别代码点为 128 到 255 的所有字符,因此您会看到未知字符。
如果您想查看二进制文件的所有内容,可以使用 hexdump、objdump 和 readelf 等程序,例如,假设我们想将 /bin/bash 作为 linux(elf) 中的二进制文件分解为十六进制字节表示,所以我们说:
十六进制转储/bin/bash
但这类文件的最佳工具是:readelf
如果我们想以比 hexdump 输出更易读的格式查看二进制文件的所有内容,我们可以说:
readelf -a /bin/bash
我们会看到二进制文件的所有不同部分(elf 头、程序头、节头和数据)。
同样使用其他标志,我们一次只能看到一个标题,或者我们可以只反汇编文件中的 .text 部分等等。