1. ELF header(ELF64_Ehdr)中 e_type、e_machine、e_entry、e_phoff、e_shoff 等字段的含义
ELF header(ELF64_Ehdr)中 e_type、e_machine、e_entry、e_phoff、e_shoff 这几个字段分别表示什么?它们在文件定位与程序入口解析中各自承担什么作用?
- ELF header 各字段的字节偏移与语义
- e_type 对文件用途的分类作用
- e_entry 与节/段表偏移对加载与解析的关键作用
ELF64_Ehdr 是 ELF 文件最开头的 64 字节结构,其中 e_type 表示文件类型(ET_REL、ET_EXEC、ET_DYN、ET_CORE),e_machine 指定目标机器架构(如 EM_X86_64、EM_AARCH64),e_entry 是程序入口的虚拟地址,e_phoff 指向程序头表(program header table)在文件中的偏移,e_shoff 指向节头表(section header table)的偏移。加载器通过 e_type 与 e_entry 判断是否可执行并确定入口,通过 e_phoff/e_shoff 定位段表与节表以完成映射与符号解析。
本题考查对 ELF 最外层索引结构的理解。e_phoff/e_shoff 是解析 ELF 的"根指针",而 e_entry 是程序执行的起点,三者共同构成系统加载 ELF 的入口路径。作答时需把字段语义与"加载/解析"两个环节关联起来,体现对 ELF 布局全局性的把握。