在 checkm8 漏洞的裝置上設定 nonce 的方法

因為 checkm8 的關係,所有受影響的裝置就再也不需要 tfp0 漏洞,就可以直接靠 checkm8 設定 nonce 了,對於有存 SHSH 想要降級的人來說很有用。這篇文章不會寫降級教學,只會教大家如何使用 nonce setter 設定想要的 nonce。

可能會有人想說:「checkra1n 不就能無視版本越獄了,為何還要降級?」

因為對我(付費開發者)來說用 unc0ver 比用 checkra1n 方便多了,所以考慮到未來 unc0ver 支援 A11 以下的情況,還是從 13.3.1 降級到 13.3 比較好。

 

要降級之前,請先檢查好以下事項:

  1. 要降級的版本是否有相容的 SEP
  2. 是否有存特定 generator 的 SHSH,或者 SHSH 的 apnonce 可以反推 generator

首先,先去反推或查詢 generator,例如我這次使用的 42c88f5a7b75bc944c288a7215391dc9c73b6e9f 的 generator 是 0x4bb8834ba6444b50

 

方法一:適用所有 iOS 12.3 以上裝置,但需越獄

把裝置用 checkra1n 越獄,Cydia 新增 repo:https://halo-michael.github.io/repo

安裝 GeneratorAutoSetter 跟 OpenSSH,安裝完成後,SSH 連線到手機上,輸入:setgenerator 0x4bb8834ba6444b50,當然這邊換成你用的 generator。

成功之後再用 checkra1n 重新越獄一次,越獄成功後,再進到恢復模式。如果你有 irecovery,可以用 irecovery -q 指令看 nonce 是不是正確,例如:

由於 GeneratorAutoSetter 只支援 iOS 12.3 以上跟 13,並且要越獄後才可以安裝,所以下面提供方法二

 

方法二:部分機種支援,不需越獄,無視版本

下載 https://github.com/MatthewPierson/checkm8-nonce-setter

執行 main.sh,選擇手動輸入 Generator,或者直接拖曳 SHSH 檔案進去,讓程式找 Generator,按照指示進入 DFU 模式,收工。

這個方法由於是用 checkm8 本身漏洞,並且繞過簽名檢查,所以沒有 iOS 版本限定問題,也不需要越獄。

然而由於漏洞對應到每種 CPU 都需要重新找注入位址,所以並不是所有的機器都支援。支援列表可以看他頁面。

個人測試這個方法似乎比方法一穩,方法一有時候不知道為何會沒設定到 generator,因此用本方法沒有 irceovery -q 再次檢查也不太會造成問題。

如果出現 Either unsupported device or no device found. 錯誤,有可能是 GateKeeper 或者 10.15 以後變嚴格的權限問題。

 

 

發佈留言