天衣無縫 ~ Fantastic Seamless Textile ~
When executing a ELF binary, Linux kernel will pass the memory address of PHDR(program header) to userspace by
AT_PHDR entry of
ld.so interpreter will parse the PHDR structure at memory address
AT_PHDR and resolve more ELF structures, such as dynamic section.
But Linux kernel wrongly calculate the PHDR address in memory.
NEW_AUX_ENT(AT_PHDR, load_addr + exec->e_phoff);