在Linux系统中有大量可用的工具可以帮助你理解和处理目标文件。特别地,GNU binutils包尤其有帮助,而且可以运行在每个Linux平台上。
AR
: 创建静态库,插入、删除、列出和提取成员。
STRINGS
: 列出一个目标文件中所有可打印的字符串。
STRIP
: 从目标文件中删除符号表信息。
NM
: 列出一个目标文件的符号表中定义的符号。
SIZE
: 列出目标文件中节的名字和大小。
READELF
: 显示一个目标文件的完整结构,包括ELF头中编码的所有信息。包含SIZE
和NM
的功能。
OBJDUMP
: 所有二进制工具之母。能够显示一个目标文件中所有的信息。它最大的作用是反汇编.text
节中的二进制指令。
Linux系统为操作共享库还提供了LDD
程序:
LDD
: 列出一个可执行文件在运行所需要的动态库。
Ref:
该节内容出自深入理解计算机系统第七章-Linking