没有合适的资源?快使用搜索试试~ 我知道了~
首页ELF文件格式详解(中文)
资源详情
资源评论
资源推荐
ELF 格式解析
ELF 格式解析
—— 基于 ELF 规范 v1.2 版本
赵 凤 阳
1
ELF 格式解析
目 录
修订历史............................................................................................................................. 4
前言..................................................................................................................................... 5
名词对照表......................................................................................................................... 7
第 1 章 ELF文件的静态结构 ..................................................................................... 8
1.1 介绍..................................................................................................................... 8
1.2 文件格式概述..................................................................................................... 9
1.3 ELF文件头 ....................................................................................................... 12
1.4 节....................................................................................................................... 20
1.5 特殊节............................................................................................................... 28
1.6 字符串表........................................................................................................... 33
1.7 符号表............................................................................................................... 35
1.8 重定位............................................................................................................... 41
第 2 章 ELF文件的装载与动态连接 ....................................................................... 46
2.1 介绍................................................................................................................... 46
2.2 程序头............................................................................................................... 47
2.2.1 程序头结构............................................................................................... 47
2.2.2 基地址....................................................................................................... 50
2.2.3 段权限....................................................................................................... 50
2.3 段内容............................................................................................................... 52
2.4 注释段............................................................................................................... 54
2.5 程序装载........................................................................................................... 56
2.6 动态连接........................................................................................................... 60
2.6.1 程序解析器............................................................................................... 60
2.6.2 动态连接器............................................................................................... 60
2.6.3 动态段....................................................................................................... 62
2.6.4 共享目标的依赖关系............................................................................... 67
2.6.5 全局偏移量表........................................................................................... 68
2.6.6 函数地址................................................................................................... 69
2.6.7 函数连接表............................................................................................... 70
2.6.8 解析符号................................................................................................... 71
2.7 哈希表............................................................................................................... 73
2.8 初始化和终止函数........................................................................................... 75
2.9 程序解析器....................................................................................................... 77
第 3 章 示例程序........................................................................................................... 78
3.1 ELF文件头 ....................................................................................................... 78
3.2 节头表............................................................................................................... 80
2
ELF 格式解析
3.3 节头字符串表................................................................................................... 82
3.4 字符串表........................................................................................................... 82
3.5 代码节............................................................................................................... 83
3.6 符号表............................................................................................................... 85
3.7 段....................................................................................................................... 86
3.8 动态节............................................................................................................... 87
附录A 源文件清单........................................................................................................... 90
附录B 输出文件清单....................................................................................................... 92
3
ELF 格式解析
修订历史
版本 时间 概述
0.0 Aug 23, 2010
开始翻译。
0.1 Sep 19, 2010
完成原文翻译。
0.2 Sep 25, 2010
调整文档结构,重分章节。
0.3 Sep 30, 2010
加入一个 C 程序示例,并讲解。
0.4 Oct 9, 2010
补充一些动态段的内容;调整格式;加入名词对照表;
修改前言。
0.5 Oct 10, 2010
校对、勘误。
1.0 Oct 10, 2010
发布第一个正式版本。
4
ELF 格式解析
前言
关于 ELF 格式
ELF(Executable and Linking Format),即“可执行可连接格式”,最初由 UNIX
系统实验室(UNIX System Laboratories – USL)做为应用程序二进制接口(Application
Binary Interface - ABI)的一部分而制定和发布。ELF 作为一种可移植的格式,被
TIS 应用于基于 Intel 架构 32 位计算机的各种操作系统上。
ELF 的最大特点在于它有比较广泛的适用性,通用的二进制接口定义使之可以
平滑地移植到多种不同的操作环境上。这样,不需要为每一种操作系统都定义一套
不同的接口,因此减少了软件的重复编码与编译,加强了软件的可移植性。
ELF 文件格式规范由 TIS(Tool Interface Standards – 工具接口标准)委员会制定,
TIS 委员会是一个微型计算机工业的联合组织,它致力于为 32 位操作系统下的开
发工具提供标准化的软件接口。这种接口包括目标标志格式、可执行文件格式,以
及调试信息的格式。
微型计算机工业中存在着各个不同的设备提供商,硬件环境有很大区别。TIS
委员会的目标是在不同的硬件环境上建立起统一的软件规范,使软件在各种不同的
硬件平台上有尽可能大的移植性。这样,软件开发就不会被硬件的区别所羁绊,具
有一定的“流线形”,在不同的硬件平台间平滑地移植。TIS 为此而制定了许多规
范,有些用于主流的商用操作系统,还有些用于 32 位的 Windows 个人电脑操作系
统。这些规范最初在 TIS Portable Formats Specification 规范的 1.1 版本中一起发
布。后来,到了 1.2 版本,这些规范被分开,并被各自独立地发布。
TIS 委员会的成员来自 Absoft, Autodesk, Borland, IBM, Intel, Lahey, Lotus,
MetaWare, Microtec Research, Microsoft, Novell, The Santa Cruz Operation, WATCOM,
PharLap 以及 Symantec。
与 TIS 的其它各种规范一样,ELF 规范是基于已存在的、并已被事实证明可行
的格式而制定的,而且这种格式已经被 TIS 成员们广泛地使用在他们的软件系统
中。所以当格式不能满足要求而需要改进的时候,应首先考虑扩展已有的规范而不
是制定新的。
关于本文档
由于考虑到对各种不同硬件和操作系统的适用性和扩展性,ELF(v1.2)规范在制
定时,把 ELF 格式分为了三个层次。第一层是基本的部分,即格式中通用的部
分,这部分在各种处理器架构和操作系统上都是相同的;第二层是处理器的扩展部
分,这部分会因处理器架构的不同而不同,规范中只定义了针对 Intel i386 架构的
5
剩余107页未读,继续阅读
zqqf16
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论9