如何使用其`Elf64_Phdr`程序头获取段的​​名称?

时间:2012-11-15 20:36:50

标签: linux elf

据我所知,ELF对象由许多段组成,每个段都有一个描述段的相应程序头。在libelf中,程序标头定义为Elf64_Phdr(或Elf32_Phdr)结构,Elf64_Phdr结构定义如下:

typedef struct {
    Elf32_Word  p_type;    /* Segment type */
    Elf32_Off   p_offset;  /* Segment file offset */
    Elf32_Addr  p_vaddr;   /* Segment virtual address */
    Elf32_Addr  p_paddr;   /* Segment physical address */
    Elf32_Word  p_filesz;  /* Segment size in file */
    Elf32_Word  p_memsz;   /* Segment size in memory */
    Elf32_Word  p_flags;   /* Segment flags */
    Elf32_Word  p_align;   /* Segment alignment */
} Elf32_Phdr;

但是,段有名称(不是吗?)和Elf64_Phdr结构没有指向其对应名称的字段。那么,如何从相应的程序头中获取ELF文件段的名称?或者p_type字段是否足以标识某个细分受众群,以便细分受众群没有名称?

1 个答案:

答案 0 :(得分:2)

  

但是,段有名称(不是吗?)

不,他们没有。

  

或者p_type字段是否足以识别一个段,以便段没有名称?

正确。