ELF中的字符串表

use*_*376 10 elf string-table

  1. 我得到一些符号,我得到一个精灵文件的hexedit.我怎么知道这个符号出现在哪个部分?

  2. strtab和之间有什么不同shstrtab?还有一个符号字符串数组?

当我在名表中获得索引时,它是索引strtab还是shstrtab

Sam*_*aid 12

对于第一个问题,我们需要正确理解elf文件的hexedit.

对于第二个问题 - strtab代表String Table shstrtab代表Section Header String表.

当我们读取ELF头时,我们看到每个ElfHeader结构都包含一个名为e_shstrndx的成员.这是shstrtab的索引.如果您使用此索引然后从shstrtab读取,则可以找到该部分的名称.

strtab是所有其他引用的字符串表.当您从ELF对象读取符号时,每个SYmbol结构(Elf32_Sym)都有一个名为st_name的成员.这是strtab的索引,用于获取该符号的字符串名称.

你能详细说明一下符号串的数组吗?另外,名字表是什么意思?

您可以参考以下链接 - 从C上读取Linux上的ELF字符串表

希望这能回答你的问题.