逆向App的思路
界面分析
- Cycript與Reveal
代碼分析
- 對Mach-O文件的靜態分析
- MachOView,class-dump,Hopper Disassembler,ida等工具的使用
動態調試
- 對運行中的App進行代碼調試
- debug server,LLDB工具的使用
代碼編寫
- 注入代碼到App中
- 必要是還要重新簽名,打包ipa
iOS JailBreak越獄
- 利用iOS系統的漏洞,獲取iOS系統的最高權限(Root),解開之前的各種限制,是合法的行為;
現在我們進入iOS逆向學習的第一個模塊iPhone的越獄。
iOS JailBreak越獄的優點
- 打造個性化,與眾不同的iPhone;
- 自由安裝各種實用的插件,主題,App;
- 修改系統App的一些默認行為;
- 自由安裝非AppStore來源的App;
- 付費App秒變免費App;
- 靈活管理文件系統,讓iPhone可以像U盤那樣靈活;
- 給開發者提供了逆向工程的環境。
未越獄iPhone安裝App的途徑:
- AppStore
- 真機調試
- 通過證書打包簽名ipa安裝
iOS JailBreak越獄的缺點
- 不予保修;
- 費電,越獄后的iOS系統會常駐一些進程,耗電速度約提升10%-20%;
- 在新的iOS固件版本出來的時候,不能及時地進行更新;
- 每個新版本的固件,都會修復上一個版本的越獄漏洞,使越獄失敗;
- 如果需要保持越獄狀態,要等待新的越獄程序發布時,才能升級相應的固件版本;
- 不再受iOS系統默認的安全保護,容易被惡意軟件攻擊,個人隱私有被竊取的風險;
- 如果安裝了不穩定的插件,容易讓系統變得不穩定,變慢,甚至出現
白蘋果
問題;
完美越獄
- 越獄后的iPhone可以正常關機和重啟;
不完美越獄
- iPhone一旦關機后再開機,屏幕就會一直停留在啟動畫面,也就是白蘋果狀態;
- 或者能正常開機,但已經安裝的破解軟件都無法正常使用,需要將設備與PC連接后,使用軟件進行引導才能使用;
- 一般來說,在蘋果發布新的固件后,針對該固件的不完美越獄會先發布,隨后完美越獄才能發布;
越獄方法推薦
- PP助手,已經不更新了;
- 愛思助手
如何判斷是否越獄成功
- 桌面是否有Cydia
- 工具判斷(比如PP助手)
Cydia
- 可以看成越獄之后的
App Store
- 可以在Cydia中安裝各種第三方的軟件(插件,補丁,App)
- 其作者為 Jay Freeman(saurik)
Cydia安裝軟件的步驟
- 添加軟件源(不同軟件的軟件源可能不同)
- 進入軟件源找到對應的的軟件,開始安裝;
SpringBoard
- SpringBoard就是iOS的桌面系統;
- 有時候通過Cydia安裝完插件后,可能會出現
重啟 SpringBoard
提示界面
iPhone必備軟件的安裝
Apple File Conduit "2"
:可以在Mac上訪問整個iOS設備的文件系統,類似的補丁還有,afc2,afc2add;
AppSync Unified
:可以繞過系統驗證,隨意安裝,運行破解的ipa安裝包;越獄后在 Cydia 中添加源地址 cydia.akemi.ai,然后搜索 AppSync Unified并安裝;
iFile
:可以在iPhone上自由訪問iOS文件系統,類似的還有Filza File Manager,File Brower;
PP助手
:可以利用PP助手自由安裝海量APP;
Mac必備軟件安裝
iFunBox
:文件管理系統,https://www.i-funbox.com/en_download.html
PP助手
:自由安裝,卸載App,已經停止更新
愛思助手
:自由安裝,卸載App
安裝包
通常情況下:
- 通過Cydia安裝的安裝包時deb格式的(結合軟件包管理工具apt)
- 通過PP助手安裝的安裝包ipa格式的;
如果通過Cydia源安裝deb失敗:
- 可以先從網上下載deb格式的安裝包;
- 然后將deb安裝包放到/var/root/Media/Cydia/AutoInstall
- 重啟手機,Cydia就會自動安裝deb
代碼判斷iPhone是否越獄
- (void)viewDidLoad {
[super viewDidLoad];
if ([[NSFileManager defaultManager] fileExistsAtPath:@"Applications/Cydia.app"]) {
NSLog(@"此設備已越獄");
}else{
NSLog(@"此設備未越獄");
}
}
提高工作效率的工具軟件
Alfred:快捷搜索 https://www.alfredapp.com
go2shell:終端文件路徑
越獄步驟
本人用的iPhone8 13.2的系統版本,采用安裝uncOver
軟件進行越獄,點擊uncOver進入下載頁面;
- 下載
uncOver
軟件的ipa安裝包; - 要對
uncOver
ipa包進行簽名,可以使用愛思助手,打開愛思助手并連接手機,然后用自己的apple Id賬號進行簽名,操作如下所示:
- 簽名成功后,使用愛思助手進行安裝,最后使用
uncOver
app進行越獄。
遇到的問題
問題一:使用uncOver越獄成功之后,由于是不完美越獄,手機重啟之后,cydia打開直接閃退;
解決方案:打開uncOver軟件,重新再越獄一次,重啟之后就可以打開cydia了
問題二:由于uncOver是使用自己的開發者賬號簽名之后安裝的,會存在掉簽的情況導致uncOver打不開,若此時手機重啟了,那么cydia也打不開了,然后將uncOver卸載了,重新簽名再安裝,這時總是會提示該設備未安裝appSync越獄補丁
,uncOver安裝不了;
解決方案:使用另外一個越獄方式checkra1n
,下載地址為:https://checkra.in
Mac安裝完成之后,USB連接手機,然后按照上面的提示步驟,就能實現手機的越獄。