elf檔案格式

活在未來的人發表於2018-10-07

佈局和結構

clipboard.png

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

clipboard.png

clipboard.png

String Table

clipboard.png

.rel.data. & .rel.text

相關文章