此文为静态分析ELF文件结构,遍历其中Elf_Ehdr文件头信息,遍历Elf_Shdr节表头信息,并将所有节放置在左侧树控件上,遍历Elf_Phdr程序头也放置在左侧树控件上,并着重分析字符串表,重定位表,符号表。遍历表头的使用使用map将节表信息对应字符串存入,当点击树控件的时候取出显示在右侧。 遍历程序头 Elf64_Phdr* Phdr...
structElf32_Ehdr{unsignedchare_ident[EI_NIDENT];// ELF Identification bytesElf32_Half e_type;// Type of file (see ET_* below)Elf32_Half e_machine;// Required architecture for this file (see EM_*)Elf32_Word e_versio...
(Elf64_Ehdr), sizeof(Elf64_Phdr), 1, sizeof(Elf64_Shdr), 0, SHN_UNDEF }, /* phdrs */ { { PT_LOAD, PF_R | PF_W | PF_X, offsetof(elf, text), ADDR_TEXT + offsetof(elf, text), ADDR_TEXT + offsetof(elf, text), sizeof foo.text, sizeof foo.text, 4 } }, /* ...
if(!strcmp(argv[1],"-s")){ int shnum, x; Elf64_Shdr *shdr = (Elf64_Shdr*)malloc(sizeof(Elf64_Shdr) * elf_header.e_shnum);//准备空间 fseek(fp, elf_header.e_shoff, SEEK_SET); //找到段表所在位置 fread(shdr, sizeof(Elf64_Shdr) * elf_header.e_shnum, 1, fp); //读...
e:elf缩写,如Ehdr,e_type中的e等; s:section节的缩写,如Shdr、sh_size等; p:Program程序的缩写,如Phdr、p_type等; t :table表的缩写,elf是多级索引结构,通过表来完成; sym:Symbol符号的缩写; INTERP : interpreter解释器缩写; elf头文件命令习惯用单个字母组合完成,如sht表示section header table即节头表...
ELF的英文全称是The Executable and Linking Format,最初是由UNIX系统实验室开发、发布的ABI(Application Binary In...
ELF文件布局 relocatable类型(ET_REL)的ELF文件(如.o目标文件)无Program Header Table ELF文件头 例子 数据结构 e_type...
原因与this answer相同:你有一个ET_EXEC文件(必须在链接地址加载,你有0)。但是内核不会加载任何低于...
它实际上并没有引起SIGSEGV。相反,内核会查看您的二进制文件并说“no can 't do”,然后向其发送“...
(Elf64_Ehdr), sizeof(Elf64_Phdr), 1, sizeof(Elf64_Shdr), 0, SHN_UNDEF }, /* phdrs */ { { PT_LOAD, PF_R | PF_W | PF_X, offsetof(elf, text), ADDR_TEXT + offsetof(elf, text), ADDR_TEXT + offsetof(elf, text), sizeof foo.text, sizeof foo.text, 4 } }, /* ...