文章目錄
- 一、程式頭資料
- 二、節區頭資料
- 三、動態符號表
一、程式頭資料
在上一篇博客 【Android 逆向】ELF 檔案格式 ( ELF 程式頭入口大小 | ELF 程式頭入口個數 | ELF 檔案節區頭入口大小 | ELF 檔案節區頭入口個數 | 字符表序號 ) 中 , 分析到該 ELF 檔案的程式頭有 7 個入口 , 每個入口大小 32 位元組 ;
這 7 個程式頭入口 , 分別有不同的作用 , 如 :
- 程式頭本身資訊
- 加載
- 動態庫相關資訊
- GNU 編譯器相關資訊


二、節區頭資料
節區頭資料中 , 有 21 個入口 , 每個入口各有 40 位元組 , 分別代表不同的功能 ;
- SHN_UNDEF : 未定義的保留區域 , 所有的 ELF 都有該區域 , 一些加固軟體會抹掉該區域資料 , 導致決議 ELF 檔案時 無法找到 后面的 代碼 , 符號 等節區資料 , 在運行時在將該區域添加上去 ;
- .text : 代碼資料 ;
- .plt : 參考的外部的庫 ;
- .got : 全域符號表 , 包含匯入匯出資料 ; 重要的符號資訊 ( 函式 , 全域變數 ) , 都在該資料區域中 ;
- .data : 資料段 ;
- .bss : BSS 段 ;
- .comment : 注釋 ;
- .shstrtab : 字串表 ;

由下圖可以看出 , 節區頭 資料 在 ELF 檔案的 末尾 位置 ;

三、動態符號表
動態符號表示匯入匯出的符號資料 ;
下圖中 , 不帶 [U] 的專案 是匯出的符號 , 是本函式庫向外提供的 ; 帶 [U] 的符號是匯入的符號 ;


轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/340459.html
標籤:其他
