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 に答える