elf檔案格式

2021-09-16 22:16:32 字數 721 閱讀 9109

1.elf檔案頭(elf header): 

標識該檔案為elf檔案、

有關檔案型別和大小的資訊、

檔案載入進入記憶體後的入口點資訊。

2.程式頭表(program header table) :

向系統提供了可執行檔案的資料在程序虛擬位址空間中組織方式、

檔案包含的段的數目、位置和用途。

3.節(section)和 段(segment):

儲存與檔案相關的資料、**、資源等,一般乙個節只儲存一種形式的內容。

鏈結過程中,各個目標檔案中的節會選擇相應的段(segment)進行儲存,

也就是說,不同目標檔案的同型別的節會儲存在可執行檔案的同乙個段當中,

且不同型別的節也可能存在於同乙個段中,這需要根據節的性質進行分類儲存。

4.節頭表(section header table):

定義: 該模組所定義的符號資訊以及引用其他模板的符號資訊 : (t or u, address)

0000000000000000 t add

0000000000000022 t main

u printf

u puts

ELF檔案格式

在介紹elf格式之前,先簡單說明一下可執行檔案的生成流程 1 編寫c原始檔,或彙編原始檔 2 準備共享庫格式的目標檔案 shared object file 如數學庫 標準庫 2 用編譯器 compiler 將c編譯成可重定位格式的目標檔案 relocatable object file 用彙編器 ...

ELF檔案格式

1.目標檔案 編譯器和彙編器生成可重定位目標檔案 包括共享目標檔案 鏈結器生成可執行目標檔案。2.可重定位目標檔案和可執行目標檔案的格式 可重定位目標檔案格式 可執行目標檔案格式 3.下面我們開始分析上面 而對於未被初始化的全域性變數和靜態區域性變數,編譯的時候並未被分配空間,而是僅僅在.bss段中...

ELF檔案格式

elf指executable and linking format,不僅包含可執行檔案,也包含庫檔案,包括靜態庫和動態庫。準備的說,也就是三種 這不廢話嗎 可執行檔案 靜態鏈結庫 動態鏈結庫 要觀察elf的具體資訊,可以用以下幾個工具 nm lists symbols from object fil...