Elf文件可以有多个String表,但Section Headers sh_name字段列表是此表的索引。文件如何知道要引用哪个字符串表?
答案 0 :(得分:1)
ELF文件中有两个字符串表:
.strtab
,其中包含符号'。.shstrtab
( S H eader Str ing 标签文件),其中包含部分的名称。如果您想使用sectionHeader.sh_name
,那么您可能正在查找.shstrtab
表中的部分名称。它可以使用以下代码获得(显然是64位):
Elf64_Ehdr* header = (Elf64_Ehdr*) map;
Elf64_Shdr* stringTable = (Elf64_Shdr*) (map + header->e_shoff +
header->e_shstrndx * header->e_shentsize);
char* sectionName = map + stringTable->sh_offset + sectionHeader->sh_name;
// 'map' is a pointer to the beginning of your mapped ELF file
感谢 @Employed Russian 指出更好的方法来检索标题的大小。