[教學] 不要再備份沒用的 SHSH2 了,教你 A12 以上裝置正確固定 nonce 備份 SHSH2

[教學] 不要再備份沒用的 SHSH2 了,教你 A12 以上裝置該怎麼備份 SHSH2 才正確

過去想降級或越獄的人一定會不時備份 SHSH2 認證等到哪天有工具推出時降級用

但這件事在 A12 之後有所改變,不再只是單純拿個裝置的 ECID 去 1conan 網站讓他自動備份,因為 A12 的 Nonce Entangling 機制,只要你沒指定 nonce 備份的 SHSH2 基本上來說是沒用的,因為在你有生之年不可能運氣那麼好撞擊出對應 nonce 的降級可能(所以不要看智障部落客根本沒研究就亂寫的教學就去亂備份唷 ^__^)

在這篇教學中,A12 是指 iPhone 的 CPU 型號版本,A11 含以下裝置(ex. iPhone X 包含以前)可以繼續歡樂透過 ECID 備份,不需要本篇教學

簡單來說 A11的降級 nonce =「隨機 generator」透過 SHA 算法計算出來
但 A12 的 nonce 則是 「隨機 generator」透過 SHA 算出後再加亂數 SALT,加上因為 SALT 算法只有你的 CPU 才會知道並且有可能每個 CPU 都不同

所以如果 A12 要備份,要直接備份固定的 nonce 的結果,不能像 A11 一樣備份隨便一個含 generator 的 SHSH 再透過程式去算出設定 nonce,
改天研究徹底會再寫篇介紹這部分原理的

——廢話分隔線——

► 目的

在未來某天有支援你未來所在版本的 set nonce 工具推出後(舉個例子,假設目前你 iPhone 11 (A13) 在 13.5,有 Unc0ver 這個 set nonce 工具),這時你想平刷或降版(你想降刷成 13.1,並且你有保存到你機器固定 generator 的 nonce 的 13.1 的 SHSH2)、並且版本與 SEP 相容的情況下(13.1 與 13.5 SEP 相容),你可以透過固定機器的 nonce 對應你的 SHSH2 並使用降級工具(目前沒有,過去 iOS 12 是 future restore),再搭配保存對應版本的 shsh2 降級

另外因為目前 generator 跟 nonce 的公式推算對應結果不會隨版本升級變化,所以這方法備份的 SHSH2 才有效,你取得一次 nonce 之後未來版本用同一組 nonce 去抓 SHSH2 都通用(就不用另外再取得了)
至於怎樣才會變化,我會開另一篇文章說明

▼ 流程大概是這樣

► Requirements 準備

  1. 適用於 A12 以上裝置,此篇文章測試於 iPhone 11 Pro Max iOS 13.3~13.5
    照理來說均通用於 13.5 以下版本
  2. macOS 安裝 ideviceinfo
  3. 簽名越獄.app工具 Altstore Cydia Impactor

步驟1. 安裝工具 libimobiledevice

► 這段為 macOS 用教學,Windows 可能可以看這個說不定有幫助:https://github.com/iFred09/libimobiledevice-windows

安裝 libimobiledevice 的目的是要使用底下 irecovery 這個工具去取得在 recovery mode 之下固定的 nonce
當然你也可以自己編譯(注意,此 repo 的 release 版本已經過時)
開源:https://github.com/libimobiledevice/libirecovery

▼ macOS 可以簡單透過 homebrew 安裝

但這部分在 macOS 10.14 後蠻容易遇到安裝問題的,可以換成這樣安裝

步驟2. 確認 libimobiledevice 安裝正確順便拿取裝置需要的 ECID、UDID 資訊

▼ 拿取 ECID 指令(直接計算成 hex 格式)

▼ 拿取 UDID 指令

當然以上也可以透過 iMazing 等工具查詢

步驟3. 將裝置越獄並在過程中設置 generator

以目前 iOS 13.5 版本來說,在 13.5 以下所有裝置都可越獄並且可透過 Unc0ver 支援 set nonce 的功能:
1. unc0ver 預設 generator:0x1111111111111111
2. chimera 和另一套工具預設是啥我忘了,知道的人歡迎補充

註:如果你不打算越獄(怕被銀行APP偵測之類的原因),但又想知道自己裝置的固定 nonce 透過工具備份 SHSH2,並且又無法或懶得重刷iOS版本
建議你在這步驟以前先用 iTunes / Finder 備份一次「越獄前乾淨的」你手機備份資料,等等可以還原就不會受影響了

▼ 過程大概就是利用 Altstore 等工具簽名 Unc0ver 裝入你的手機(教學:https://hiraku.tw/2019/11/5091/,我是用我自己開發者帳號簡單解決啦..),越獄基本上就會自動幫你 set nonce 成 0x1111111111111111 了

步驟4. 取得固定 generator 後的 nonce

上一步我們透過越獄工具如 Unc0ver 固定了越獄狀態後的手機的 generator,因此此時你手機的 nonce 狀態會是固定的,我們要在 recovery mode(復原模式)取得這個值
在未來某天有支援的工具推出後,這時你想平刷或降版、並且版本與 SEP 相容的情況下,你可以透過工具去固定機器的 generator 變成同樣的 nonce,此時就可以搭配保存對應版本的 shsh2 降級

▼ 將裝置踢進 recovery mode(用 iMazing 等其他工具或用按的也可)

▼ 使用 irecovery 工具取得 nonce

▼ 將裝置離開 recovery 模式

▼ 實際例子

▼ 註:如果因為要使用銀行等會偵測越獄的 app 又想取得 nonce 的人可以放心,我幫你們做了一些測試

越獄前
正常,偵測不到

越獄後
中信:偵測到已越獄
玉山:偵測到已越獄

越獄後再 rootfs 還原
APP 都還在,相片也都還在
Cydia APP icon 也還在,需要重置手機就會消失
中信:正常,偵測不到
玉山:偵測到已越獄(但其實是錯誤判斷 cache),所以解法是 rootfs 還原後重置整台手機或者還原成你越獄前的資料就正常了

步驟5. 下載你取得 nonce 的對應 SHSH2

懶惰的話你可以使用 https://tsssaver.1conan.com/https://shsh.host/ 兩個服務備份下載

▼ 但如果要自己備份的話先去下載工具:tsschecker(https://github.com/tihmstar/tsschecker/releases
安裝完成後,cd 移動到工具所在資料夾並輸入指令為:

▼ 例如我的就是,有 -s 參數就會自動存到你所在的資料夾了

步驟6. 驗證 SHSH2 有效

一樣懶惰的話可以用線上服務測試:https://tsssaver.1conan.com/check/

▼ 首先要準備你下載的 SHSH2 的 iOS 版本該裝置的 ipsw,將副檔名改成 .zip 後用 Betterzip 等開啟取得第一層目錄下的 BuildManifest.plist

▼ 接下來使用 img4tool 去驗證你的 SHSH2 有效性(https://github.com/tihmstar/img4tool),指令為

如果成功就會顯示 is GOOD!generator is bad 那行查過其他人經驗也遇到一樣,是正常

整理並更新資訊自文章(已過時):https://www.reddit.com/r/jailbreak/comments/apjwhy/tutorial_new_tutorial_for_saving_shsh2_blobs_on/

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料