因为毕设的缘故,又开始重新学习操作系统,发现之前还是遗漏了很多很重要的知识点。今天就来记录下处理目标文件的工具。
在Unix系统中有大量可用的工具可以帮助你理解和处理目标文件。特别的,GNU binutils包尤其有帮助,而且可以运行在每个Unix平台上。
AR:创建静态库,插入、删除、列出和提取成员。
STRING:列出一个目标文件中所有可打印的字符串。
STRIP:从目标文件中删除符号表信息。
NM:列出一个目标文件的符号表中定义的符号。
SIZE:列出目标文件中节的名字和大小。
READELF:显示一个目标文件的完整结构,包括ELF头中编码的所有信息。包含SIZE和NM的功能。
OBJDUMP:所有二进制工具之母。能够显示一个目标文件中所有的信息。它最大的作用是反汇编。.text节中的二进制指令。
Unix 系统为操作共享库还提供了LDD程序:
LDD:列出一个可执行文件在运行时所需要的共享库。