当前位置: 首页 > article >正文

【001】.so文件分析之 ELF格式符号

.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

http://www.lryc.cn/news/2378281.html

相关文章:

  • QT之LayOut布局
  • 无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用
  • C++类与对象--1 特性一:封装
  • Linux:计算机的层状结构
  • 【SpringBoot】关于MP使用中配置了数据库表前缀的问题
  • AI 赋能防艾宣传:从创意到实践,我的 IP 形象设计之旅
  • Redis 事务与管道:原理、区别与应用实践
  • 每日算法刷题Day9 5.17:leetcode定长滑动窗口3道题,用时1h
  • 手机打电话时如何将通话对方的声音在手机上识别成文字
  • 重排序模型解读:gte-multilingual-reranker-base 首个GTE系列重排模型诞生
  • C++学习:六个月从基础到就业——C++11/14:列表初始化
  • SQL语句执行问题
  • 2025系统架构师---选择题知识点(押题)
  • flutter flutter run 运行项目卡在Running Gradle task ‘assembleDebug‘...
  • P5682 [CSP-J2019 江西] 次大值
  • Elasticsearch 性能优化面试宝典
  • 【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理2
  • 无监督学习在医疗AI领域的前沿:多模态整合、疾病亚型发现与异常检测
  • 计算机操作系统概要
  • C语言进阶-数组和函数
  • 图片通过滑块小图切换大图放大镜效果显示(Vue3)
  • [SSL]1Panel添加阿里云DNS账户
  • C语言编程中的时间处理
  • 计算机网络 : 网络基础
  • C++跨平台开发:突破不同平台的技术密码
  • 实现 STM32 PWM 输出:原理、配置与应用详解
  • Web 架构之负载均衡会话保持
  • 第一次做逆向
  • 【Linux网络】传输层协议TCP
  • AAAI-2025 | 中科院无人机导航新突破!FELA:基于细粒度对齐的无人机视觉对话导航