1

据我所知,一个 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字段是否足以识别一个段,因此段没有名称?

4

1 回答 1

2

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

不,他们没有。

还是 p_type 字段足以识别段,因此段没有名称?

正确的。

于 2012-11-18T05:07:05.567 回答