linux下的elf结构,ELF结构详细分析(1)---elf32_hdr
ELF(Executable and Linkable Format)可執行和可鏈接格式是一種對象文件格式,分為三種類型:
a.可重定位目標文件:包含了適合用來鏈接其他目標文件的代碼和數據,從而創建出可執行或可共享的目標文件
b.可執行目標文件:包含用于執行的程序,該文件規定了exec如何創建一個程序的進程映像
c.共享目標文件:包含用來在兩個上下文之間鏈接的代碼和數據
注:可重定位目標文件和共享目標文件用于程序鏈接,可執行目標文件用于程序執行
因為對于目標文件兩種用途,因此目標文件的組織結構有兩種:一種是用于鏈接的鏈接格式,另一種是用于執行的執行格式.
在詳解這兩種格式之前,先列出ELF文件中常用的數據類型(格式)
這兩種格式中,ELF頭部都位于文件的開始部分,位置固定,描述了該文件的組織情況,下面是它的具體內容
elf32_hdr(一個52個字節):
下面詳細描述其中的內容(不加說明,值全是16進制):
1. e_ident,ident估計是identity的縮寫,身份識別的意思.
這是一個總大小為16字節的數據,每個元素是占一個字節的unsigned char
2. e_type:表示文件屬于下面的哪一種類型
3. e_machine:表示體系結構
4. e_version:目前版本
5. e_entry:程序入口地址
6. e_phoff:程序頭部表的文件偏移,00000000表示沒有程序頭部表
7. e_shoff:節區頭部表的文件偏移
8. e_flags:處理器特定標記
9. e_ehsize:elf頭部長度,值是0034,表示十進制52
10.e_phentsize:程序頭部表(段頭部表)一個表項的大小
11.e_phnum:程序頭部表表項數量
12.e_shentsize:節區頭部表一個表項的大小
13.e_shnum:節區頭部表表項數量
14.e_shstrndx:保存著節名字的節(section)對應的表項在節區頭部表中的索引
總結
以上是生活随笔為你收集整理的linux下的elf结构,ELF结构详细分析(1)---elf32_hdr的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker网络模式与资源控制
- 下一篇: linux 其他常用命令