ELF文件格式内部结构详解(二)
编译和链接过程的最终输出是一个可执行和可链接格式 (ELF) 文件,其中包含操作系统和加载器加载和运行程序所需的所有信息。从最抽象的层面来看,ELF 文件可以被认为是一组描述程序及其运行方式的表。在 ELF 格式中,存在三种类型的表:位于文件开头的 ELF 文件头、程序头、描述如何将 ELF 程序加载到内存中的节头,以及 ELF 文件中指示加载器如何准备执行的逻辑节。
6、ELF文件头
ELF 文件的开头是 ELF 文件头。ELF 文件头描述了程序的全局属性,例如程序设计运行的架构、程序入口点以及指向文件中其他表的指针和大小。
给定一个 ELF 文件,例如我们之前在“汇编和链接”部分中汇编和链接的 print32.so 和 print64.so 程序,我们可以使用 readelf 之类的程序查看这些属性和节。可以使用 readelf 的 -h 参数查看 ELF 文件头,如下所示: