readelf 是一个在 Linux 中用于显示二进制文件内容的工具,特别是 ELF (Executable and Linkable Format) 格式的文件。ELF 格式是 Unix 和 Unix-like 系统(如 Linux)中的主要可执行文件、目标代码、共享库和核心转储格式。
readelf 命令提供了大量选项,允许用户查看 ELF 文件的详细信息。下面是一些常用的选项:
1)-a 或 --all: 显示所有信息。这包括文件头、节头、重定位表、符号表等。
2)-h 或 --file-header: 显示 ELF 文件头信息。
3)-l 或 --program-headers: 显示程序头信息。这些描述了程序的段如何存储在文件中。
4)-S 或 --section-headers: 显示节头信息。这些描述了文件中各个段的内容和属性。
5)-s 或 --symbols: 显示符号表。这包括在 ELF 文件中的所有符号(例如函数和变量名)。
6)-r 或 --relocations: 显示重定位表信息。这些表包含用于将程序从其执行文件加载到内存中的信息。
7)-d 或 --dynamic: 显示动态节的内容。这通常包含运行时信息,如需要加载的共享库和动态链接器脚本。
8)-p 或 --program-header-only: 只显示程序头信息。
9)-n 或 --section-name: 显示特定节的名称。
10)-v 或 --version: 显示版本信息。
11)-V 或 --verbose: 提供详细输出。
12)-H 或 --help: 显示帮助信息。
1)查看所有信息:
readelf -a /path/to/binary
2)查看文件头和程序头:
readelf -h -l /path/to/binary
3)查看符号表:
readelf -s /path/to/binary
4)查看动态节内容:
readelf -d /path/to/binary