C6000-ELF文件格式.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C6000-ELF文件格式

2. ELF文件格式 e_shnum :节头部条目个数(2Bytes) 节头部数据中保存结构体数目。本文件中节头部中节结构体数目为0x0021=33。 2. ELF文件格式 e_shstrndx :节头部字符表节索引(2Bytes) 这是一个整数索引值。节头表可以看作是一个结构体数组,此索引值为数组中某个结构体的下标,节头表中的该结构体指定了一个名为“字符串表”的节(Section)的信息,而这个名为字符串表的节保存着节头表中描述的每一个节的名称。字符表索引规则参见下文节头表中sh_name字段介绍内容。 2. ELF文件格式 typedef struct { Elf32_Word p_type; /* 段类型 */ Elf32_Off p_offset; /* 段位置相对于文件开始处的偏移量 */ Elf32_Addr p_vaddr; /* 段在内存中的地址 */ Elf32_Addr p_paddr; /* 段的物理地址 */ Elf32_Word p_filesz; /* 段在文件中的长度 */ Elf32_Word p_memsz; /* 段在内存中的长度 */ Elf32_Word p_flags; /* 段的标记 */ Elf32_Word p_align; /* 段在内存中对齐标记 */ } Elf32_Phdr; 程序头表:它是一个结构数组,包含了ELF头表中字段e_phnum定义个数的条目,结构体长度由e_phentsize给出,结构体描述一个段或其他系统准备执行该程序所需要的信息。 数据结构中变量类型占用位宽分别为 Elf32_Half: 16bits Elf32_Word: 32bits Elf32_Addr: 32bits Elf32_Off: 32bits Unsigned char:8bits 2. ELF文件格式 p_type :段类型 (4Bytes) 段的类型,它能告诉我们这个段里存放着什么用途的数据。例如1(PT_LOAD)表示是可加载的段,这样的段将被读入程序的进程空间成为内存映像的一部分。该字段值对应类型如右图所示。 ? PT_NULL?????????? ??? 0 ? PT_LOAD???????????? ? 1 ? PT_DYNAMIC????????2 ? PT_INTERP??????????? 3 ? PT_NOTE????????????? 4 ? PT_SHLIB???????????? 5 ? PT_PHDR????????????? 6 ? PT_LOPROC?? 0? PT_HIPROC?? 0x7fffffff 2. ELF文件格式 p_offset :段位置相对于文件开始处的偏移量(4Bytes) 该段在文件中的偏移。这个偏移是相对于整个文件的。该文件中偏移地址为064。 2. ELF文件格式 p_vaddr :段在内存中的地址 (4Bytes) 该段加载后在进程空间中占用的内存起始地址。本文件中该地址为0本段是该文件中的第一个段,为.text段。如右图所示。 2. ELF文件格式 p_paddr :段的物理地址(4Bytes) 该段的物理地地址,在C6000中,该地址与上一地址重合。 2. ELF文件格式 p_filesz :段在文件中的长度(4Bytes) 该段在文件中占用的字节大小。有些段可能在文件中不存在但却占用一定的内存空间,此时这个字段为0。 2. ELF文件格式 p_memsz :段在内存中的长度(4Bytes) 该段在内存中占用的字节大小。有些段可能仅存在于文件中而不被加载到内存,此时这个字段为0。 2. ELF文件格式 p_flags :段的标记(4Bytes) 段的属性。用每一个二进制位表示一种属性有无,相应位为1表示含有相应的属性,为0表示不含那种属性。其中第0位为可执行位(-x),第1位为可写位(-w),第2位为可读位(-r)。如果这个字段的最低三位同时为1那就表示这个段中的数据加载以后既可读也可写而且可执行的。本文件中.text段为可读和可执行段,所以该字段为5=101b 2. ELF文件格式 p_align :段在内存中对齐标记(4Bytes) 对齐。现代操作系统都使用虚拟内存为进程序提供更大的空间,分页技术功不可没,页就成了最小的内存分配单位,不足一页的按一页算。所以加载程序数据一般也从一页的起始地址开始,这就属于对齐。该成员给出了该段在内存和文件中排列值。 0 和 1 表示不需要排列。否则, p_

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档