【Android 逆向】ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )
文章目錄
- 一、ELF 文件簡介
- 二、ELF 文件結(jié)構(gòu)
一、ELF 文件簡介
ELF 文件是 Executable and Linkable Format ( 可執(zhí)行 和 可鏈接 格式 ) 的文件 ;
鏈接 一般是在編譯階段 , 執(zhí)行 一般是在運行階段 ; 在這兩個階段都會用到 ELF 格式的文件 ;
參考 【C 語言】編譯過程 分析 ( 預(yù)處理 | 編譯 | 匯編 | 鏈接 | 宏定義 | 條件編譯 | 編譯器指示字 ) 博客 ;
ELF 文件 對應(yīng)的 Linux 中的目標文件格式有 : 庫文件 , 可執(zhí)行文件 , 編譯中間文件 ; 編譯中間文件有 .a , .o , .s 文件 ;
庫文件 , 可執(zhí)行文件 , 編譯中間文件 , 都是 ELF 格式的文件 ;
在 Android 應(yīng)用運行時 , ELF 文件的大部分內(nèi)容 , 會被 映射到內(nèi)存中 ; 這就意味著 Android 應(yīng)用內(nèi)存中的很多數(shù)據(jù) , 會遵循 ELF 文件格式的規(guī)范 ;
ELF 文件格式最常見的形式就是 .so 動態(tài)庫 ;
ELF 文件的特點 : ELF 文件是以 7F 45 4C 46 開頭 , 其中 7F 是一個二進制標志 , 45 4C 46 是 ELF 字符對應(yīng)的 ASCII 碼 ;
二、ELF 文件結(jié)構(gòu)
ELF 文件由以下四部分組成 :
- ELF 文件頭
- ELF 程序頭 : ELF 程序頭 會告知 節(jié)區(qū)頭部表的位置 ;
- 節(jié)區(qū)或段
- 節(jié)區(qū)頭部表 : 節(jié)區(qū)頭部表 會告知 ELF 文件中有多少個 節(jié)區(qū) , 一般 節(jié)區(qū)頭部表 一般都在 ELF 文件尾部 ;
總結(jié)
以上是生活随笔為你收集整理的【Android 逆向】ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】使用 DB Br
- 下一篇: 【Android 逆向】ELF 文件格式