【发布时间】:2023-03-24 19:04:01
【问题描述】:
我已经尝试过了,我用文本编辑器打开了一个 a.out 文件,但我只得到一堆字符,其中包含一些指令,例如:
üÙ
【问题讨论】:
标签: binary executable reverse-engineering machine-code object-files
我已经尝试过了,我用文本编辑器打开了一个 a.out 文件,但我只得到一堆字符,其中包含一些指令,例如:
üÙ
【问题讨论】:
标签: binary executable reverse-engineering machine-code object-files
【讨论】:
查找您当地的朋友Hex Editor。
【讨论】:
仅查看代码的反汇编(带有操作码字节),不包括任何文件头:
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 位,因此所有代码点从 128 到 255 的字符都不会被编辑器识别,因此您会看到未知字符。
如果您想查看二进制文件的所有内容,可以使用 hexdump、objdump 和 readelf 等程序,例如,假设我们想将 /bin/bash 作为 linux(elf) 中的二进制文件剖析到它的十六进制表示的字节,所以我们说:
hexdump /bin/bash
但这类文件的最佳工具是:readelf
如果我们想以比 hexdump 输出更易读的格式查看二进制文件的所有内容,我们可以这样说:
readelf -a /bin/bash
我们会看到二进制文件的所有不同部分(elf 头、程序头、节头和数据)。
也可以使用其他标志,我们一次只能看到一个标题,或者我们可以只反汇编文件中的 .text 部分等等。
【讨论】: