.so 文件的结构标识主要依据 ELF 格式(Executable and Linkable Format)
一个 .so 文件其实是一个 ELF(可执行与可链接格式) 文件,里面包含多个结构标识符和段(Sections)用于支持动态加载、符号表、依赖解析等功能。
| 标识 / 区段 | 类型说明
| 用途 |
|---|---|---|
.interp
| 动态链接器路径 | 指定用于加载 .so 的动态链接器路径 |
| .dynsym | 动态符号表 | 记录函数、变量名等符号(用于符号解析) |
| .dynstr | 动态符号字符串表 | 存放符号表中符号的名称字符串 |
| .rel.plt` / `.rela.plt | 重定位信息(用于 PLT) | 支持延迟符号绑定和调用外部函数 |
| plt | 程序链接表(Procedure Linkage Table) | 提供外部函数跳转表地址(懒加载机制) |
| got` / `.got.plt` | 全局偏移表 | 保存函数或变量的地址,实现间接跳转 |
| .text | 可执行代码段 | 编译后的机器代码(函数体) |
| .data | 已经初始化的全局变量 | 存储初始化的全局变量 |
| .bss | 未初始化的全局变量 | 分配内存但初始值为0的变量区域 |
| .rodata | 只读数据段 | 存放字符串常量和const修饰的变量 |
| eh_frame | 异常处理栈帧 | 用于支持c++异常处理,栈回朔 |
| debug_ | 调试信息 | 用于gdb调试,例如:debug_info,debug_line等 |
| .note | 标识/说明类段(编译器、平台等) | 比如.note.ABI-tag,.note.gnu.build-id |












![[SSL]1Panel添加阿里云DNS账户](https://i-blog.csdnimg.cn/img_convert/0f22ca09d0cc530494edece3893a6729.png)






