使用objdump命令查看elf文件

objdump -x 查看elf文件所有头部的信息

ELF文件格式解析二_linux


所有的elf文件。 程序头部(Program Header)中,都以 PT_PHDR和PT_INTERP先开始。这两个段必须在所有可加载段项目的前面。

从上图中的INTERP段中,可以看到改段从 0x318位置处开始加载,长度为0x1C。我们使用 hexdump 命令查看elf文件的二进制内容。

ELF文件格式解析二_2d_02


找到0x318位置

ELF文件格式解析二_2d_03

6c2f 6269 3436 6c2f 2d64 696c 756e 2d78 3878 2d36 3436 732e 2e6f 0032
|/    bi  46    |/  - d   i |  un   -x   8 x  -6   4 6  s .  . o   2

通过比对ascii码,可以知道从0x318开始的28个二进制表示的

字符串是: /lib64/ld-linux-x86-64.so.2

ELF文件格式解析二_2d_04

/usr/lib/x86_64-linux-gnu/libc-2.31.so 应该是/usr/lib/x86_64-linux-gnu/ld-2.31.so加载的。

ELF文件格式解析二_2d_05

ELF文件格式解析二_2d_06

ELF文件格式解析二_加载_07