ELF文件格式()
1.简介
--目标文件有三种类型:
--可重定位文件(Relocatable File) 包含可与其他目标文件链接来创建可执行文件或者目标共享文件的代码和数据
--可执行文件(Executable File)包含适合于执行的一个程序,此文件规定了exec()如何创建一个程序的进程映像
--共享目标文件(Shared Object File)包含可在两种上下文中链接的代码和数据
目标文件全部是程序的二进制表示,目的是直接在某种处理器上直接运行
1.1 目标文件中的数据表示
--目标文件支持8/32位体系结构,不过这种格式是可以拓展的
--目标文件以某些机器独立的格式表达某些控制数据,使得能够以一种公共的方式来识别和解释其内容
--目标文件中的其他数据使用目标处理器的编码结构,而不管文件在何种机器上创建
1.2 目标文件格式
--目标文件的作用: --参与程序链接
--参与程序的执行
--因此目标文件格式提供两种并行试图(本笔记重点讨论执行视图)
--除了ELF头部表以外,其他节区和段都没有规定的顺序
--ELF头部(ELF Header):描述整个文件的组织
--节区部分:包含链接视图的大量信息:指令、数据、符号表、重定位信息
--程序头部表(Program Header Talbe):告诉系统如何创建进程映像
用来构造进程映像的目标文件必须具有PHT
--节区头部表(Section Header Table):描述文件节区的信息
用于链接的目标文件必须包含SHT
1.3 ELF Header部分
--最开始几个字节 给出 如何解释文件的提示信息 --->独立于处理器,独立于文件中的其余内容
e_ident数组给出ELF的一些标识