【Android 逆向】ELF 文件格式 ( 程序头数据 | 节区头数据 | 动态符号表 )
生活随笔
收集整理的這篇文章主要介紹了
【Android 逆向】ELF 文件格式 ( 程序头数据 | 节区头数据 | 动态符号表 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、程序頭數據
- 二、節區頭數據
- 三、動態符號表
一、程序頭數據
在上一篇博客 【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] 的符號是導入的符號 ;
總結
以上是生活随笔為你收集整理的【Android 逆向】ELF 文件格式 ( 程序头数据 | 节区头数据 | 动态符号表 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】ELF 文件格式
- 下一篇: 【错误记录】Python 安装依赖库报错