佈局和結構
1.ELF檔案頭(ELF Header):
標識該檔案為ELF檔案、
有關檔案型別和大小的資訊、
檔案載入進入記憶體後的入口點資訊。
2.程式頭表(Program Header Table) :
向系統提供了可執行檔案的資料在程式虛擬地址空間中組織方式、
檔案包含的段的數目、位置和用途。
3.節(Section)和 段(Segment):
儲存與檔案相關的資料、程式碼、資源等,一般一個節只儲存一種形式的內容。
連結過程中,各個目標檔案中的節會選擇相應的段(Segment)進行儲存,
也就是說,不同目標檔案的同型別的節會儲存在可執行檔案的同一個段當中,
且不同型別的節也可能存在於同一個段中,這需要根據節的性質進行分類儲存。
4.節頭表(section header table):
包含了與各節相關的附加資訊。
ELF header
Program Header Table
Section
Symbol Table(section.symtab)
定義: 該模組所定義的符號資訊以及引用其他模板的符號資訊 : (T or U, address)
0000000000000000 T add
0000000000000022 T main
U printf
U puts
String Table