精灵文件格式,顺序是什么?

问题描述

请帮我解决我的困惑:

在 Elf64 文件中,首先是 elf 头,然后是所有程序头,然后是所有节头?

那么为什么例如在 elf 头文件中我们有一个指向第一个程序头开始位置的索引,如果它总是在文件开始之后 64 个字节,这似乎是额外的垃圾信息?

解决方法

如果没有别的,它允许标头的大小在格式的未来版本中更大,而不会失去向后兼容性。


在 Elf64 文件中,首先是 elf 头,然后是所有程序头,然后是所有节头?

不,程序头、节头和节都在头所说的任何地方。没有要求它们紧接着一个或以任何特定的顺序排列。