ELF文件格式学习
ELF文件基本结构
简介
ELF(Executable and Linkable Format)文件是Linux中的目标文件
, 分三类:
- 可重定位文件(Relocatable File), 包含由编译器生成的
代码
和数据
, 链接器会把它和别的目标文件链接起来, 创建可执行文件
或者共享目标文件
, 后缀一般是.o
- 可执行文件(Executable File), 即用来运行的程序
- 共享目标文件(Shared Object File), 包含代码和数据, 是我们所称的库文件, 一般以
.so
结尾, 有两种使用场景- 链接器(Link eDitor, ld)可能会处理它和其它可重定位文件以及共享目标文件, 生成另一个目标文件
- 动态链接器(Dynamic Linker)将它和可执行文件以及其它共享目标组合在一起生成
进程镜像
文件格式
用一张ctf-wiki的图来看一下
目标文件的格式有两种, 一种是用来链接的文件, 一种是可执行文件