日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【Android 逆向】ELF 文件格式总结 ★★★

發(fā)布時間:2025/6/17 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 逆向】ELF 文件格式总结 ★★★ 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、ELF 文件當前版本號
  • 二、操作系統(tǒng) ABI 信息
  • 三、ABI 版本
  • 四、文件頭校驗
  • 五、文件頭長度信息
  • 六、ELF 文件類型 ( 動態(tài)庫文件 )
  • 七、ELF 文件對應(yīng) CPU 架構(gòu)
  • 八、ELF 目標文件版本
  • 九、可執(zhí)行程序起始地址
  • 十、程序頭偏移量
  • 十一、節(jié)區(qū)頭偏移量
  • 十二、處理器特定標志
  • 十三、ELF 文件頭大小
  • 十四、ELF 程序頭入口大小
  • 十五、ELF 程序頭入口個數(shù)
  • 十六、ELF 文件節(jié)區(qū)頭入口大小
  • 十七、ELF 文件節(jié)區(qū)頭入口個數(shù)
  • 十八、字符表序號





一、ELF 文件當前版本號



ELF 文件頭第 6 字節(jié) : 版本信息 ;





二、操作系統(tǒng) ABI 信息



ELF 文件頭 第 7 字節(jié) : 操作系統(tǒng) ABI 信息 ;





三、ABI 版本



ELF 文件頭 第 8 字節(jié) : ABI 版本 ; 00 表示沒有版本 ;





四、文件頭校驗



ELF 文件頭 第 9 ~ 14 字節(jié) : 6 字節(jié)的校驗位 , 此處全部為 00 , 沒有校驗信息 ;





五、文件頭長度信息



ELF 文件頭 第 15 字節(jié) : 長度信息 , 值為 00 , 沒有實際使用 ;





六、ELF 文件類型 ( 動態(tài)庫文件 )



ELF 文件頭 第 16 ~ 17 字節(jié) : ELF 文件類型 , 動態(tài)庫文件 / 可執(zhí)行文件 / 靜態(tài)庫文件 / 鏈接文件 ; 03 00 表示該 ELF 文件是動態(tài)庫文件 ;

03 00 小端格式 , 低位在低地址 , 值為 3 ;





七、ELF 文件對應(yīng) CPU 架構(gòu)



ELF 文件頭 第 18 ~ 19 字節(jié) : ELF 文件對應(yīng)的 CPU 架構(gòu)體系 , x86 / arm / mips ; 03 00 表示該 ELF 文件對應(yīng)的 CPU 架構(gòu)師 x86 架構(gòu) ;

03 00 小端格式 , 低位在低地址 , 值為 3 ;





八、ELF 目標文件版本



ELF 文件頭 第 20 ~ 23 字節(jié) : 目標文件版本 ; 默認值 1 ;

01 00 00 00 小端格式 , 低位在低地址 , 值為 1 ;





九、可執(zhí)行程序起始地址



ELF 文件頭 第 24 ~ 27 字節(jié) : 如果 ELF 是可執(zhí)行文件 , 應(yīng)該從哪個地址開始執(zhí)行代碼 ; 該值在可執(zhí)行 ELF 文件中才有意義 , 動態(tài)庫文件沒有意義 ;

00 00 00 00 小端格式 , 低位在低地址 , 值為 0 ;

當前解析的 ELF 文件是動態(tài)庫文件 , 該值沒有實際意義 , 設(shè)置 0 默認值 ;

動態(tài)庫并不能獨立執(zhí)行 , 需要由外部加載執(zhí)行 ;





十、程序頭偏移量



ELF 文件頭 第 28 ~ 31 字節(jié) : 程序頭偏移量 ; 程序頭的位置 , 從整個 ELF 文件的第 0 字節(jié)開始計數(shù) ;

34 00 00 00 小端格式 , 低位在低地址 , 值為 0x34 , 轉(zhuǎn)為十進制為 52 ;

該值說明程序頭的起始位置是 ELF 文件的第 0x34 字節(jié)位置 ;





十一、節(jié)區(qū)頭偏移量



ELF 文件頭 第 32 ~ 35 字節(jié) : 節(jié)區(qū)頭偏移量 ; 節(jié)區(qū)頭的位置 , 從整個 ELF 文件的第 0 字節(jié)開始計數(shù) ;

0C 41 00 00 小端格式 , 低位在低地址 , 值為 0x410C , 轉(zhuǎn)為十進制為 16652 ;

該值說明節(jié)區(qū)頭的起始位置是 ELF 文件的第 0x410C 字節(jié)位置 ;





十二、處理器特定標志



ELF 文件頭 第 36 ~ 39 字節(jié) : 處理器特定標志 ; 默認為 0 ;

00 00 00 00 小端格式 , 低位在低地址 , 值為 0 ;





十三、ELF 文件頭大小



ELF 文件頭 第 40 ~ 41 字節(jié) : ELF 文件頭大小 ; 一般是 52 字節(jié) ;

34 00 小端格式 , 低位在低地址 , 值為 52 ;





十四、ELF 程序頭入口大小



ELF 文件頭 第 42 ~ 43 字節(jié) : ELF 程序頭入口大小 ; 一般是 32 字節(jié) ;

20 00 小端格式 , 低位在低地址 , 值為 32 ;

如下圖所示 , 程序頭是由 7 個入口組成 , 每個入口大小是 32 字節(jié) ;





十五、ELF 程序頭入口個數(shù)



ELF 文件頭 第 44 ~ 45 字節(jié) : ELF 程序頭入口個數(shù) ; 這里是 7 個 ;

07 00 小端格式 , 低位在低地址 , 值為 7 ;

如下圖所示 , 程序頭是由 7 個入口組成 , 每個入口大小是 32 字節(jié) ;





十六、ELF 文件節(jié)區(qū)頭入口大小



ELF 文件頭 第 46 ~ 47 字節(jié) : ELF 文件節(jié)區(qū)頭入口大小字節(jié)數(shù) ; 一般是 40 個字節(jié) ;

28 00 小端格式 , 低位在低地址 , 值為 40 ;

下圖選中的部分 , 就是一個節(jié)區(qū)頭入口的大小 , 有 21 個節(jié)區(qū)頭入口 , 每個節(jié)區(qū)頭入口大小 40 字節(jié) ;





十七、ELF 文件節(jié)區(qū)頭入口個數(shù)



ELF 文件頭 第 48 ~ 49 字節(jié) : ELF 文件節(jié)區(qū)頭入口個數(shù) ; 這里是 21 個 ;

15 00 小端格式 , 低位在低地址 , 值為 21 ;

下圖選中的部分 , 就是一個節(jié)區(qū)頭入口的大小 , 有 21 個節(jié)區(qū)頭入口 , 每個節(jié)區(qū)頭入口大小 40 字節(jié) ;





十八、字符表序號



ELF 文件頭 第 50 ~ 51 字節(jié) : ELF 文件 字符表序號 ; 這里是 20 ;

14 00 小端格式 , 低位在低地址 , 值為 20 ;

節(jié)區(qū)中 , 專門有一個節(jié)區(qū)用于存放字符表 , 這里的 20 序號的節(jié)區(qū) , 就是字符表節(jié)區(qū) ;

總結(jié)

以上是生活随笔為你收集整理的【Android 逆向】ELF 文件格式总结 ★★★的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。