entries in PT_DYNAMIC section refer to the correct address at runtime?
Yubin Ruan
ablacktshirt@gmail.com
Thu Sep 14 04:09:00 GMT 2017
Hi,
I read the ELF spec and note that, a segment designated by a program
header of type PT_DYNAMIC have several entries, many of which contain
addresses of other things. For example, an entry of type DT_SYMTAB was
described (in the ELF) spec to "holds the address of the symbol
table". I wonder whether this address is true at runtime?
Normally a program header would have the following structure:
typedef struct {
Elf32_Word p_type;
Elf32_Off p_offset;
Elf32_Addr p_vaddr;
Elf32_Addr p_paddr;
Elf32_Word p_filesz;
Elf32_Word p_memsz;
Elf32_Word p_flags;
Elf32_Word p_align;
} Elf32_Phdr;
The `p_vaddr` hold the virtual address (runtime address) for a shared
object file and a executable file. But, as stated in the ELF spec,
`p_vaddr` might not be correct for a shared object (because it is
required to be PIC). So, if that `p_vaddr` is not correct, will those
entries in PT_DYNAMIC be correct?
Yubin
More information about the Elfutils-devel
mailing list