溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

聊聊從iOS固件提取系統(tǒng)庫(kù)符號(hào)

發(fā)布時(shí)間:2020-06-15 07:03:40 來(lái)源:網(wǎng)絡(luò) 閱讀:741 作者:網(wǎng)易云捕 欄目:移動(dòng)開(kāi)發(fā)

“民之失德,乾糇以愆;他山之石,可以攻玉?!? 《詩(shī)經(jīng)》 

聊聊從iOS固件提取系統(tǒng)庫(kù)符號(hào)
 

        當(dāng)程序發(fā)生崩潰并有機(jī)會(huì)獲取到崩潰堆棧時(shí),還原崩潰堆棧從而定位錯(cuò)誤顯得非常重要。用戶符號(hào)的還原非常簡(jiǎn)單,因?yàn)樵诖虬?APP 時(shí),會(huì)生成對(duì)應(yīng)的符號(hào)文件(以 .dSYM 結(jié)尾)。而對(duì)于系統(tǒng)符號(hào),Apple 并沒(méi)有提供對(duì)應(yīng)的符號(hào)文件下載,所以需要自己解析。本文就簡(jiǎn)單聊聊從 iOS 固件獲取系統(tǒng)庫(kù)符號(hào)的方法。
 

一、固件下載和解密

       有很多提供固件下載服務(wù)的站點(diǎn),比較出名的是: theiphonewiki.com 。這個(gè)站點(diǎn)同時(shí)也維護(hù)了用于固件解密的 key,
如圖1所示:
聊聊從iOS固件提取系統(tǒng)庫(kù)符號(hào)

圖1:theiphonewiki.com 維護(hù)的 iOS 9.x 版本的固件解密 key

       在圖1中,藍(lán)色字體部分表示對(duì)應(yīng)的固件 key 存在,紅色字體表示對(duì)應(yīng)的固件 key 暫時(shí)不可得,所以 theiphonewiki 上只有極少數(shù)的 arm64 版本的固件是可以解密的。
       固件(以 .ipsw 結(jié)尾)文件其實(shí)是一個(gè)壓縮包,解壓后得到的 3 個(gè) dmg 文件中,占用空間最大的那個(gè)就包含需要的系統(tǒng)庫(kù)。而這個(gè)文件是 AES 加密的,解密這個(gè)需要 Root Filesystem Key。例如,iPhone5,4(即 iPhone 5c )固件的解密 key

如圖2所示:
聊聊從iOS固件提取系統(tǒng)庫(kù)符號(hào)

圖2:iPhone5,4 固件的 Root Filesystem 解密 Key

       獲取到 key 后,就可以使用 VFDecrypt 工具完成最終的解密,當(dāng)然也有很多更方便的 UI 集成工具或者 python 腳本,比如:iDecrpyptIt。
 

二、系統(tǒng)庫(kù)符號(hào)提取

       從 iPhone OS 3.1 開(kāi)始,所有的系統(tǒng)庫(kù)都打包成一個(gè)文件:dyld_shared_cache_xxx ,其中 xxx 表示具體的架構(gòu),此文件位于:/System/Library/Caches/com.apple.dyld 目錄。
       dyld_shared_cache_xxx 文件的解壓可以使用 dyld 中的代碼,

    步驟如圖3所示:
聊聊從iOS固件提取系統(tǒng)庫(kù)符號(hào)

    圖 3:dyld_shared_cache_xxx 文件解密方法

       最后得到的目錄中就包含了此固件的系統(tǒng)庫(kù)文件,如 UIKit.framework 等。
 

三、需要說(shuō)明的地方

       theiphonewiki 上提供的解密 key 并沒(méi)有 arm64 架構(gòu)的,如果要解密 iPhone 5s 及以后產(chǎn)品對(duì)應(yīng)的固件,需要通過(guò)其它渠道或者自己手動(dòng)獲取解密 key 。關(guān)于如何手動(dòng)獲取解密 key,本文并沒(méi)有涉及,這一話題筆者也還在研究,歡迎大家指正。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI