gpt4 book ai didi

linux - 节头列表指向哪个字符串表?

转载 作者:太空宇宙 更新时间:2023-11-04 10:08:11 25 4
gpt4 key购买 nike

一个 Elf 文件可以有多个字符串表,但是 Section Headers sh_name 字段的列表是该表的索引。文件如何知道要引用哪个字符串表?

最佳答案

ELF文件中有两个字符串表:

  1. .strtab,其中包含符号的名称。
  2. .shstrtab(H标题字符串文件) ,其中包含各部分的名称。

如果您想使用 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 指出检索 header 大小的更好方法。

关于linux - 节头列表指向哪个字符串表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50820299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com