-
我得到一些符号,并得到一个 ELF 文件(的十六进制转储)。我怎样才能知道这个符号出现在哪个部分?
-
有什么区别.strtab
and .shstrtab
?是否还有另一个符号字符串数组?
当我获得符号名称表的索引时,它是.strtab
or in .shstrtab
?
对于第一个问题,我们需要 elf 文件的十六进制编辑才能正确理解。
对于第二个问题——
strtab 代表字符串表
shstrtab 代表节标题字符串表。
当我们读取ELF header时,我们看到每个ElfHeader结构都包含一个名为e_shstrndx的成员。这是 shstrtab 的索引。如果您使用此索引,然后从 shstrtab 中读取,您可以找到该部分的名称。
strtab 是所有其他引用的字符串表。当您从 ELF 对象读取符号时,每个 SYmbol 结构 (Elf32_Sym) 都有一个名为 st_name 的成员。这是 strtab 的索引,用于获取该符号的字符串名称。
您能详细说明一下符号字符串数组吗?另外,名称表是什么意思?
您可以参考以下链接——从 C 读取 Linux 上的 ELF 字符串表 https://stackoverflow.com/questions/10626203/reading-elf-string-table-on-linux-from-c
希望这能回答您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)