strtab
有什么区别和 shstrtab
?还有一个符号字符串数组? 当我在名称表中获取索引时,它是否在
strtab
中的索引或 shstrtab
?
最佳答案
对于第一个问题,我们需要 elf 文件的 hexedit 才能正确理解。
对于第二个问题——
strtab 代表字符串表
shstrtab 代表节标题字符串表。
当我们读取 ELF 头时,我们看到每个 ElfHeader 结构都包含一个名为 e_shstrndx 的成员。这是 shstrtab 的索引。如果您使用此索引,然后从 shstrtab 中读取,您可以找到该部分的名称。
strtab,是所有其他引用的字符串表。当您从 ELF 对象读取符号时,每个 SYmbol 结构 (Elf32_Sym) 都有一个名为 st_name 的成员。这是 strtab 的索引,用于获取该符号的字符串名称。
您能否详细说明符号字符串数组?另外,你说的名字表是什么意思?
你可以引用以下链接——
Reading ELF String Table on Linux from C
希望这能回答你的问题。
关于elf - ELF 中的字符串表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11289843/