ELF文件分析与Binary Rewrite

  1. ELF 文件格式
    ELF 文件是Linux系统支持的可执行文件,格式主要有3中:
  • 1)可重定向文件:通常以 .o 或者 .a 结尾,用于和其它文件一起创建可执行文件。
  • 2)可执行文件
  • 3)共享库:.so 文件。

ELF 文件包含三个索引表: ELF header, Program header table, Section Header table.

  • ELF header 描述文件的组织情况
  • Program header table: 告诉系统怎样创建进程映像(可重定向文件不包含该表)
  • Section header table: 描述文件section信息,描述该节名称、大小等信息。用于链接的目标文件必须包含section header table。

ELF结构的描述信息在 /usr/include/elf.h 中可以找到。