zoukankan      html  css  js  c++  java
  • ELF文件结构描述

    文件头

    查看文件头 $ readelf -h *.obj

    Elf32_Ehdr

    变量名

    英文名

    备注

    e_ident

    Magic

    ELF魔数

    Class

    文件机器字节长度

    Data

    数据存储方式

    Version

    版本

    OS/ABI

    运行平台

    ABI Version

    ABI版本

    e_type

    Type

    ELF文件类型(ELF重定位类型)

    e_machine

    Machine

    ELF文件的CPU平台属性(硬件平台)

    e_version

    Version

    ELF版本号(硬件平台版本)

    e_entry

    Entry point address

    入口地址

    e_phoff

    Start of program headers

    程序头入口

    e_shoff

    Start of section headers

    段表在文件中的偏移

    e_word

    Flags

    ELF标志位

    e_ehsize

    Size of this header

    ELF文件头本身的大小

    e_phentsize

    Size of program headers

    程序头长度

    e_phnum

    Number of program headers

    程序头数量

    e_shentsize

    Size of section headers

    段表描述符的大小

    e_shnum

    Number of section headers

    段表描述符数量

    e_shstrndx

    Section header string table index

    段表字符串表所载的段在段表中的下标

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    段表

    查看段表结构 $ readelf -S *.obj

    段表的结构比较简单,它是一个以“Elf32_Shdr”结构体为元素的数组。数组元素的个数等于段的个数,每个结构体对应一个段。“Elf32_Shdr”又被称为段描述符。

    Elf32_Shdr

    变量名

    英文名

    备注

    sh_name

    Section name

    段名

    sh_type

    Section type

    段的类型

    sh_flags

    Section flag

    段的标志位

    sh_addr

    Section Address

    段虚拟地址

    sh_offset

    Section Offset

    段偏移

    sh_size

    Section Size

    段的长度

    sh_link和sh_info

    Section Link and Section Information

    段链接信息

    sh_addralign

    Section Address Alignment

    段地址对齐

    sh_entsize

    Section Entry Size

    项的长度

     

     

     

     

     

     

     

     

     

    Name

    sh_type

    sh_flag

    sh_link

    sh_info

    .dynamic

    SHT_DYNAMIC

    SHF_ALLOC + SHF_WRITE

    该段所使用的字符串表在段表中的下标

    0

    .hash

    SHT_HASH

    SHF_ALLOC

    该段所使用的符号表在段表中的下标

    0

    SHT_REL

    该段所使用的相应符号表在段表中的下标

    该重定位表所作用的段在段表中的下标

    SHT_RELA

    .symtab

    SHT_STMTAB

    同字符串表

    操作系统相关的

    操作系统相关的

    SHT_DYNSYM

    .bss

    SHT_NOBITS

    SHF_ALLOC + SHF_WRITE

    SHN_UNDEF

    0

    .comment

    SHT_PROGBITS

    none

    .data

    SHF_ALLOC + SHF_WRITE

    .data1

    SHF_ALLOC + SHF_WRITE

    .debug

    none

    .line

    none

    .rodata

    SHF_ALLOC

    .rodata1

    SHF_ALLOC

    .text

    SHF_ALLOC + SHF_EXECINSTR

    .note

    SHT_NOTE

    none

    .shstrtab

    SHT_STRTAB

    none

    .strtab

    如果该ELF文件中有可装载的段须要用到该字符串表,

    name该字符串表也将被装载到进程空间,则有SHF_ALLOC标志位

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    重定位表

    字符串表

  • 相关阅读:
    SharePoint开发
    SharePoint开发
    win32-如何识别哪个静态控件被点击
    win32
    win32-创建透明的图片按钮
    读取位图文件
    python--获得特定程序的屏幕截图并保存为文件
    win32--GetFileAttributes
    谈一下交换值之后并不能返回预料的结果
    链表--insert
  • 原文地址:https://www.cnblogs.com/fr-ruiyang/p/9871725.html
Copyright © 2011-2022 走看看