elf - ELF 中的字符串表

标签 elf string-table

  • 我得到了一些符号,我得到了一个 Sprite 文件的十六进制。我怎么知道这个符号出现在哪个部分?
  • 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/

    相关文章:

    c++ - 修改程序入口点时未调用全局变量的构造函数

    makefile - ELF 符号表中缺少源文件 - 如何包含它们?

    c++ - 如何创建字符串表

    c - 使用 C 程序获取程序标志

    elf - GRUB 可以加载没有多重引导 header 的 ELF 文件吗?

    c - 使用 memfd_create 和 fexecve 从内存运行 ELF

    java - Java 和 .NET 字符串文字驻留在哪里?

    c++ - 静态字符串文字表?

    linux - 区分ELF文件中的.shstrtab和.strtab

    c - c89 中的指示符