至今的越獄圈生態似乎都很亂,由於iOS 10~iOS 11漏洞原始碼被公開後,造成有不少越獄開發者紛紛推出自己的越獄工具,導致有好幾款越獄工具推出,但這些iOS 10及iOS 11越獄工具之間的差異又在哪裡呢?以及他們都使用什麼手法,而會常看見越獄圈會談到KPP,這個KPP又被分成KPP-less及KPP Bypass,這些專業術語到底是什麼東西呢?本文帶大家一起來瞭解。
談KPP是什麼
蘋果為了提升安全性,從iOS 9後就開始導入系統核心更動的保護(Kernel Patch Protection)簡稱KPP,這也讓64位元設備越獄帶來了更頭痛的問題,當設備開機時,KPP就會被啟動先檢查核心(Kernel)代碼是否可讀取、寫入、唯讀,確認可以後,就會將核心先改為原本唯讀後再繼續開機流程,盤古團隊在iOS 9.0.2越獄上就先讓工具在KPP要啟動前,先強行關閉KPP後再繼續開機,也就能夠實現完美越獄工具,假如這策略失敗就會導致設備進入無限重開機狀態。
當然蘋果也不是省油的燈,防止KPP這麼容易被關閉,從iOS 9.3.3開始又再度增強KPP機制,導致會不斷管理和監視核心,因此盤古團隊在替iOS 9.3.3 越獄工具上採用了第三方APP來越獄,每次開機後就需要先透過這個APP,才能夠修改核心存取權力後再重新載入主畫面(Resrping)實現越獄,這也就變成從iOS 9.3.3開始後每次重開機都需要依賴越獄APP來激活越獄環境的主要因素。
後續蘋果更是將KPP直接寫成硬體元件,導致Luca Todesco越獄開發者一直無法讓iPhone 7與iPhone 7 Plus設備支援iOS 10.2越獄,最主要原因是在iPhone 7與iPhone 7 Plus 以上設備加入硬體層面KPP防護,所以才會導致Yalu102及G0blin越獄都無法支援A9 處理器以上的設備。
談 iOS 11 越獄工具
LiberiOS
LiberiOS 是一款新型的越獄工具,它並不是靠 KPP bypass,而使用 KPP-less,同樣達到可以我們需要的效果,並不斷會執行守護進程(daemon),將它們改變後就可以注入至iOS系統內,不過這也會造成 Cydia 與 Substrate 原本都是依照KPP bypass而執行,所以就需要等待 Saurik 特地針對 LiberiOS 而更新Cydia Substrate,讓LiberiOS工具可以不需要使用KPP bypass,能夠順利讓 Cydia 與Cydia Substrate 運作,相對這款越獄工具不需繞過 KPP bypass 也就更穩定。
相信未來的越獄都可能會採用這種新的 KPP-less 方式,畢竟KPP bypass漏洞是相當難找到。
當前所有iOS 11越獄都採用KPP-less需要Cydia 與 Cydia Substrate更新才能正常運作,而iOS 10 Meridian越獄使用KPP-less,G0blin或更舊的越獄則是使用KPP bypass。
Electra 越獄
Electra 是來自知名開發者 CoolStar 的作品,與LiberiOS所用的是相同漏洞,不過這工具比起LiberiOS最大不同是解決了 Cydia Substrate無法支援問題,是採用另一個 Comex開發者所製作的Substrate替代品substitute取代,這個substitute與Substrate功能大致上都相同,而且是開放代碼,可讓其它開發者自由更新,能用來解決原生Cydia Substrate不支援的問題,但Saurik相當痛恨這個substitute,甚至不同意越獄工具用這種方案來解決,不過目前一直尚未等到Saurik替iOS 11推出Cydia Substrate無更新,也會逼迫開發者透過其它方案來解決。
因此我們可以發現當前Cydia與Cydia Substrate雖然是不支持iOS 11,不過CoolStar已經不想等待Saurik更新,因為等待時間真的太久了!提早一步先解決了插件問題,現在開發者與越獄用戶可透過手動安裝插件,CoolStar 表示後續也準備推出自行修改版的Cydia工具,到時就可讓Cydia能夠順利運作,達成完整的越獄環境。
substitute開放原始碼:https://github.com/comex/substitute
談 iOS 10 越獄工具
Meridian
Meridian 越獄是利用 Siguza 的 vortex exploit 和 Xerub 的 KPP-less 方法來獲得iOS 10.3.3的root權限,也是採用全新的Kpp-less技術,和LiberiOS性質相同(完全繞過AMFI和SSH),重點是可以支援所有64位元設備,當然也包含了 iPhone7、7 Plus 機種,目前僅適合開發者使用。
不過這有個缺點就是Cydia Substrate 無法正常運作,需要等 Saurik 替 Substrate 推出更新,但 Saurik 公開認為這並不是他的工作,Meridian 開發者不應該將問題丟給他,導致現今有這種僵局,但Meridian作者就已經預告會有一個替代Cydia的解決方案,也許有可能會與Electra共同合作,聯合推出Cydia及Cydia Substrate 替代品來解決這些問題。
如果你當前是在iOS 10.2.1或更低的iOS版本上,目前暫時不建議使用這款工具越獄,也許你應該先使用 Yalu、extra_recipe或Saigon先越獄會更快,要是你是iOS 10.3.x越獄用戶,想快點使用到Cydia 那應該先選擇g0blin越獄會更好。
Meridian越獄教學(iOS 10~10.3.3,真正支援iOS 10.3.x)
G0blin
G0blin越獄是一款傳統的越獄工具,它並不是使用KPP-less,而是採用 Yalu 、Saigon這類的 KPP Bypass 舊技術,並且另外拓展沿用而推出的後續版本,因此它不需要越獄守護進程(daemon),甚至也不需要替 Cydia Substrate進行更新,不過只能讓 A7~A9 處理器的設備支援,同樣會導致 iPhone 7、iPhone 7 Plus及iPad Pro 10.5吋新機種無法支援,只有iPhone 6s (Plus)與更舊的機種才能支援。
但G0blin目前還存在一個錯誤,就是Touch ID會導致在第三方APP無法使用問題。
KPP-less及KPP Bypass 是什麼
前面看越獄工具一直提到 KPP-less 及 KPP Bypass,相信大家對於這兩個專業術語會看得很模糊,簡單來替各位說明兩者差異
KPP Bypass :當KPP觸發前會先透過修補程式(Patch)來補掉漏洞需要的部分,所以修補的時機點就相當重要,當越獄失敗時就會顯示失敗了,重試嗎?(Failed,retry?)訊息。不過這也可能會再次觸發KPP,導致突然設備重開機,就是因為發生核心錯誤( kernel panic)所引起。
KPP-less :這是採用繞過KPP機制的手法,讓越獄可運作在沒有KPP保護的區域上,由於 KPP-less 並不用擔心 KPP 會觸發的問題,比起 KPP Bypass 來的更穩定,不會導致突然重開機現象。
越獄不代表不安全
當越獄後能獲取到root最高權限,導致大家對越獄後產生了「安全」上的質疑,雖然越獄的確是存在有風險,但並不代表是不安全。
iOS越獄是透過漏洞,使用越獄APP工具來逃離蘋果在iOS系統上所規劃的沙盒(Sandboxie),我們可以說越獄就是沙盒逃逸(Sandbox-Escaping)的一種過程。
沙盒是指iOS基於安全機制,特別規劃出一塊獨立的區域,讓指定程式只在這個被隔離的區域中執行、讀寫資訊,這並不代表任意APP獲得root權限後,就可讓所有文件目錄能被其它APP可任意訪問,也不表示隱私問題會曝光,所以iOS系統上的APP就無法像安卓系統那樣容易被共用檔案,在越獄後依舊還有沙盒機制存在。
喜歡這篇文章教學,後續想了解更多Apple資訊、iPhone、Mac、3C隱藏技巧,歡迎追蹤 瘋先生FB粉絲團、瘋先生LINE@、訂閱瘋先生Google新聞、Telegram、Instagram以及 訂閱YouTube頻道,將會有更多非常實用的技巧教學分享給大家。