Q1 ELF中程序头(Program header)和节头(Section Header)之间有什么区别?
Q1.1 段(segment)和节(section)之间的区别是什么?
我认为pheaders只指向sections。
Q2 文件头(File Header)和程序头(Program Header)之间有什么区别?
根据GNU ld链接器脚本,使用ID:GNU 链接器:
PHDRS
{
name type [ FILEHDR ] [ PHDRS ] [ AT ( address ) ]
[ FLAGS ( flags ) ] ;
}
您可以在程序头类型之后使用FILEHDR和PHDRS关键字来进一步描述段的内容。 FILEHDR关键字表示该段应包括ELF文件头。 PHDRS关键字表示该段应包括ELF程序头本身。
这有点令人困惑。