`
buluzhai
  • 浏览: 110493 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ELF Section Header的结构

    博客分类:
  • MTK
阅读更多
ELF Section Header的结构还是要从/usr/include/elf.h中看。

typedef struct
{
  Elf32_Word sh_name; /* Section name (string tbl index) */
  Elf32_Word sh_type; /* Section type */
  Elf32_Word sh_flags; /* Section flags */
  Elf32_Addr sh_addr; /* Section virtual addr at execution */
  Elf32_Off sh_offset; /* Section file offset */
  Elf32_Word sh_size; /* Section size in bytes */
  Elf32_Word sh_link; /* Link to another section */
  Elf32_Word sh_info; /* Additional section information */
  Elf32_Word sh_addralign; /* Section alignment */
  Elf32_Word sh_entsize; /* Entry size if section holds table */
} Elf32_Shdr;


同样,可以算出来Elf32_Shdr的大小是40B。其结构中的各个元素数据类型在elf.h中同样可以找到,含义见注释。整个section header table就是一个数组,数组的每一个元素就是Elf32_Shdr。Elf32_Shdr仅仅是section的一个索引,包括一些属性信息,并不是section本省。简单的介绍一下各个元素的含义。

sh_name: section name。不过其实sh_name中存放的是index,不是字符串,这一点从sh_name是定长应该能看出来,那么index又是什么意思呢?index的含义是在string tabl总的第几个字节数。其实是这样的,所有的section name都存放在一个叫做string table的表中,index就是该section名字的第一个字符在表中的位置,名字一直到遇到一个'\0'为止结束。至于string table怎么找,还记得上一篇中提到的elf header中的e_shstrndx成员吗,它就指明了string table是在section header table中的第几个入口。
sh_offset:这个元素就指明了这个Elf32_Shdr描述的section在文件中的偏移量。

其他各个变量可以查询《Executable and Linkable Format(ELF)》这个文档。

分享到:
评论

相关推荐

    PE文件结构与ELF文件结构

    ELF 文件的结构可以分为三个部分:ELF Header、Program Header 和 Section Header。 1. ELF Header ELF Header 是 ELF 文件的头部,大小固定为 52 字节。它是一个 Elf32_Ehdr 结构,定义如下: typedef struct ...

    ELF 文件解析工具1.7

    ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样...

    计算机那些事(4)——ELF文件结构 _ 楚权的世界1

    3. **ELF Section Header Table**:又称Section Headers,它提供了文件中各个节(Section)的描述,如节的名称、类型、大小、位置等。节是ELF文件的逻辑单元,包含了代码、数据、符号表等信息。 4. **ELF Sections*...

    elf文件格式.pdf

    - **ELF Header**:位于文件的开头,提供文件的基本信息,包括文件类型、目标体系结构、入口地址等。 - **Program Header Table**:仅存在于可执行文件中,描述了程序在内存中的布局,包括哪些段需要加载到内存以及...

    读取elf文件代码

    1. 定义一个与ELF头结构相匹配的变量,如`Elf32_Ehdr* elf_header = (Elf32_Ehdr*) mmap(NULL, sizeof(Elf32_Ehdr), PROT_READ, MAP_PRIVATE, fd, 0);` 2. 检查`elf_header->e_ident`是否为`ELFMAG`(ELF魔数),...

    Linux下的ELF文件格式简介.doc

    Section Headers表包含一系列的Elf32_Shdr结构,每个结构对应一个section。Section可以存储代码、数据、符号表、重定位信息等。Section Header的索引号用于在Section Header Table中快速定位特定的section。 ### ...

    ELF文件格式详解,包括详细的分析

    ELF文件格式由多个不同的部分组成,主要包括ELF Header、程序头表(Program Headers)、节头表(Section Headers)以及一系列的节(section)。这些组成部分共同定义了一个ELF文件的基本属性和内容布局。 #### 三、ELF ...

    ELF文件格式分析

    报告通过图形目录提供了对ELF文件结构的直观理解,包括目标文件格式、ELF Header数据结构、节区头部数据结构、符号表项格式定义等图形说明。此外,报告还给出了对可执行文件布局、动态节区符号结构、绝对和位置独立...

    Java解析SO(ELF)文件

    为了实现上述功能,Java程序员通常会创建自定义的类来表示ELF文件的各种结构,如`ElfHeader`、`ProgramHeader`和`SectionHeader`。同时,可能需要使用位操作和数据类型转换来处理二进制数据,因为Java默认处理的是...

    ELF中文手册——ELF中文手册

    ELF文件的开头是ELF Header,它提供了文件的基本信息,如文件类型、机器架构、版本等。其中,ELF Identification包含了识别文件是否为ELF格式的魔数和版本信息。 **2.2.1 ELF Identification** 魔数是识别文件格式...

    ELF文件结构1

    下面将详细探讨ELF文件的结构。 1. 文件头(Header): ELF文件的开始部分是一个称为“文件头”的结构,它提供了关于整个文件的基本信息。在示例中,e_phoff(程序头表的偏移量)位于0x40064,e_shoff(节头表的...

    ELF(Executable and Linkable Format)

    ELF头部是ELF文件的开始部分,它包含了文件的魔数字、类别、数据编码方式、版本号、入口点地址、程序头部偏移量、section header偏移量等信息。ELF头部的结构如图1-3所示。 Sections: ELF文件由多个section组成,...

    linux中elf手册翻译

    ELF文件结构的主要组成部分包括ELF头部、程序头表(Program Header Table)、节头表(Section Header Table)以及数据本身。ELF头部位于文件的最开始,包含了文件的元数据,如文件类型、架构、入口点地址等。程序头...

    Linux系统典型文件格式ELF1

    例如,ELF Header 中包含了操作系统类型(如 UNIX)、体系结构(如 AMD64 或 i386)、数据字节顺序(小尾端或大尾端)以及文件类型(可重定位目标文件、可执行文件或共享库)。此外,它还包含 Section Header Table ...

    ELF中文手册

    2.2 ELF Header 5 2.2.1 ELF Identification 6 2.2.2 机器信息 8 2.3 Sections 8 2.3.1 Section Header 9 2.3.1.1 Section类型—sh_type字段 10 2.3.1.2 sh_flags 字段 12 2.3.1.3 sh_link和sh_info字段 12 2.3.2 ...

    ELF文件格式详解

    1. ELF文件头(ELF Header):位于ELF文件的最前面,用于标识文件类型、目标机器架构、程序的入口点以及文件的节(section)信息等重要属性。 2. 程序头表(Program Header Table):描述了系统应该怎样创建一个...

    arm elf文件格式简单分析

    ELF Header结构 ELF Header是ELF文件的核心部分,包含了文件的基本信息和指向其他数据结构的指针。在ARM ELF文件中,`Elf32_Ehdr`结构体包含了如下的关键信息: - `e_ident`:ELF标识符,用于识别文件格式和基本...

    ELF文件格式分析.pdf

    - ELF目标文件格式具体由ELF头(ELF header)、节区(sections)、节区头部表(section header table)等组成。ELF头包含文件的元数据信息,如文件类型、机器类型、入口点地址等。节区则包含程序的代码和数据。 3....

    《ELF文件格式分析.pdf》与elf解析代码

    1. **ELF文件结构**:ELF文件由多个头和段组成,包括 Elf Header(文件头)、Program Headers(程序头表)和Section Headers(节头表)。文件头包含了整个文件的基本信息,如文件类型、机器架构、版本等。程序头表...

    ELF文件的解析工具源码

    1. **文件结构理解**:ELF文件由一系列的节(Section)和段(Segment)组成,每个节或段包含特定类型的数据,如代码、数据、符号表等。`ELFParser`首先需要读取文件头(Elf Header),理解ELF文件的基本属性,如体系...

Global site tag (gtag.js) - Google Analytics