阅读 73

DPF格式,mdf是什么文件格式

在ELF文件研究计算机中,ELF文件主要是二进制、可执行文件和目标代码格式的文件

ELF文件主要由4部分构成,ELF header、Program header、Section、4个Section header table。

ELF文件头# define ei _ ni dent 16 typedef struct { unsigned chare _ ident [ ei _ ni dent ]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; }Elf32_Ehdr; e_ident作为开头主要输入某种标记信息、固定值来判断ELF文件的合法性,其开头4个字节固定为0x7f、ELF这3个字符。

e_type用于表示文件类型,例如有1 .可再配置文件、2 .可执行文件、3 .共享目标文件。

e_machine用标志运行文件的计算机类型是、

e_version表示文件的版本

e_entry程序条目的虚拟地址可以是执行矢量地址作为执行文件

e_phoff显示程序标头相对于文件标头的偏移

e_shoff表示相对于文件头的部分头表的编辑量

e_flags 与文件相关的,特定处理器的标志

e_ehsize表示ELF头部的大小(以字节为单位)

e_phentsize表示每个程序的表头表项的大小(以字节为单位)

e_phnum显示有几个程序标题条目

e_shentsize表示每个节表头表的条目大小

e_shnum表示节标题中有几个条目

包含部分名称作为e_shstrndx符号表的字符串

e_phoff角色通过将文件的起始地址添加到e_phoff中,可以将其放置在程序起始表的位置

通过将文件标头地址添加到e_shoff角色e_shoff中,可以将其放置在节标头表中

“程序头”(Program header )程序标题表描述文件中段的位置、大小以及放置在内存中后的位置和大小

typedef struct {Elf32_Wordp _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; p_type表示在程序头中描述的段类型

p_offset表示段的第一个字节相对于文件头的偏移

p_vaddr物理地址

文件中p_filesz段的长度

内存中p_memsz段的长度

p_flags段相关标志

p_align根据此值确定段在文件和内存中的对齐方式

p_offset角色p_offset和文件头地址可以位于该段的头地址中

节标题节标题包含文件中每个节的条目,每个节的条目定义该节的类型、节的大小以及在二进制文件中的编译

typedef struct { El f32 _ wordsh _ name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Word sh_size; Elf32_Word sh_link; Elf32_Word sh_info; Elf32_Word sh_addralign; Elf32_Word sh_entsize; }Elf32_Shdr; sh_name表示节名称

sh_type表示节类型

sh_flags指示节类型是否为可执行节,以及内容是否可以更改

sh_addr表示节中第一个字节的位置

sh_offset表示节中第一个字节相对于文件头的偏移

sh_size表示节的大小(单位字节)

sh_link表示节区头部表索引链接

sh_info表示节的其他信息

sh_addralign用于地址定位

sh_entsize表示符号表关联

sh_offset角色sh_offset和文件头地址可以位于该节的头地址中

资源表结构资源表用于存储将物理地址转换为虚拟地址的一组地址表

没有后续。 如果朋友对这篇文章有疑问,欢迎留言交流


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐