ELF文件研究

来源:互联网 发布:360剑雨江湖进阶数据 编辑:程序博客网 时间:2024/06/05 23:48

//////////////////////////////////////////////////////
Create Time: 201606131327
Update Time: 201707101047
//////////////////////////////////////////////////////
这里写图片描述

//elf文件头typedef struct{  unsigned char e_ident[16]; 0x7f 'E' 'L' 'F'...  Elf32_Half e_type;                //标识文件类型  Elf32_Half e_machine;         //表明运行改程序需要的体系结构  Elf32_Word e_version;         //标识文件的版本  Elf32_Addr e_entry;              //程序的入口地址  Elf32_Off e_phoff;                 //Program Header table在文件中的偏移字节数  Elf32_Off e_shoff;                 //Section Header table在文件中的偏移字节数  Elf32_Word e_flags;             //对IA32而言,此项为0  Elf32_Half e_ehsize;            //Elf Header大小  Elf32_Half e_phentsize;       //表示Program Header table每个条目的大小  Elf32_Half e_phnum;           //表示Program Header table中有多少个条目  Elf32_Half e_shentsize;      //表示Section Header table每个条目的大小  Elf32_Half e_shnum;          //表示Section Header table中有多少个条目  Elf32_Half e_shstrndx;       //包含节名称的字符串是第几个节}Elf32_Ehdr; //segment headertypedef struct {     Elf32_Word p_type;        //当前Program header所描述的段的类型     Elf32_Off     p_offset;      //p_offset 段的第一个字节在文件中的偏移     Elf32_Addr  p_vaddr;      //p_vaddr 段的一个字节在内存中的虚拟地址     Elf32_Addr  p_paddr;     //p_paddr 在物理内存定位相关的系统中,此项是为物理地址保留。     Elf32_Word p_filesz;       //段在文件中的长度     Elf32_Word p_memsz;   //段在内存中的长度     Elf32_Word p_flags;       //与段相关的标志     Elf32_Word p_align;       //根据此项值来确定段在文件及内存中如何对齐}Elf32_Phdr;//section headertypedef struct {      Elf32_Word sh_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;
原创粉丝点击