雕刻 ELF 文件

主要观点:创建了Carve Exe工具用于从其他文件中提取可执行文件,重点讨论了如何通过计算文件头来确定 ELF 可执行文件的大小及结尾。
关键信息:

  • ELF 可执行文件由四部分组成:文件头、程序头表、节头表、数据节。
  • 通常 ELF 文件布局为:文件头、程序头表、节、节头表,可通过特定公式计算各部分大小及文件总大小。
  • 示例计算了/bin/ls 的各部分信息,得出节头表结尾处即为文件大小。
    重要细节:
  • ELF 文件头结构在elf.h中定义,包含多种信息及字段。
  • 程序头表告知操作系统如何加载可执行文件到内存,节头表描述可执行文件数据的存储方式。
  • 计算各部分结束位置的公式:ELF 文件头结束为0x0 + e_ehsize;程序头表结束为e_phoff + e_phnum * e_phentsize;各节结束为sh_offset + sh_size;节头表结束为e_shoff + e_shnum * e_shentsize;各段结束为p_offset + p_filesz,取最大结果为文件大小。
  • 注意 ELF 文件头中的值不一定准确,如节头表在加载和执行时会被忽略,若其值有误会影响分析结果。
阅读 9
0 条评论