看板 iOS 關於我們 聯絡資訊
好久沒有降級這件事情了XD 在古老時代,Apple會把裝置晶片碼(ECID)以及你想要刷的iOS版本拿去簽名,生成所謂 的SHSH,有了這個iTunes才會願意幫你刷iOS。簽名是一種單向函數,只要給一樣的input 就會生成同樣的output,故有人存下SHSH等到Apple不簽了把該SHSH餵給iTunes欺騙它是 Apple簽的,達到刷非最新版本的目的。 後來Apple學聰明了,在input那邊加了個隨機產生的資料,也就是nonce。這樣一來備份 下來的SHSH就不能用了,因為你每次產生的nonce不同,生成的SHSH也會不同。你如果 要使用備份好的SHSH,那必須要你的裝置隨機產生的nonce跟你當初備份時的一樣才行。 理論上這樣應該是完全不用想要降級了,那最近是在說什麼呢? 稍微看了一下tihmstar的blog:https://tihmstar.blogspot.de/ 狀況應該是這樣: 1. 如果有JB,tihmstar有辦法讓你的裝置產生特定的nonce。這就是為什麼備份SHSH2的 板友們可能會看到六個資料夾,其中五個有一串像亂碼的東西。那串亂碼就是nonce, 那個資料夾裡的SHSH就是針對該nonce去簽名出來的。至於為什麼需要備份這五個特定 的nonce呢?作者本來說要等Prometheus釋出再說明,但是從他的其他回答可以猜測 他是要去改亂數產生器(所以需要已經JB的裝置),那估計他修改完產生的nonce應該是 只有 或 很可能是 這五個。 2. 如果沒有JB,tihmstar之前有在研究nonce collision,也就是不斷重開機,裝置有 機會產生一樣的nonce。他甚至寫了以下的tool讓使用者統計自己的裝置在不斷重新開機 的狀況下有多少機率會產生一樣的nonce,最常產生的nonce又是哪幾個: https://github.com/tihmstar/noncestatistics 假設裝置有不是太低的機率產生出一樣的某個nonce,那就可以針對該nonce備份SHSH2, 然後想要刷機時就不斷重開機直到隨機產生的nonce又出現一樣的,就可以刷了(倒) 不過從他的統計:https://ghostbin.com/paste/6k62b 有些裝置怎麼樣就是不會collide啊.... 如果以上兩點猜測沒錯的話,其實Prometheus的限制相當大,因為你的裝置需要是下列 兩者之一: 1. 已經JB,且該JB有enable tfp0或類似東西,才可以修改亂數產生器。以iOS9來說, 9.1那個有,9.3用Luca那個JailbreakMe的有,9.0的盤古沒有,而且根據i0n1c: https://twitter.com/i0n1c/status/810780811800801280 (tihmstar有retweet) 9.0盤古的看來要加上tfp0也很難... 2. 你的裝置每次重開機產生的隨機nonce要有重複性,而且你有備份到該nonce相關的 SHSH2。重複的原因目前不明,只是看起來越新的裝置越不容易重複(6S根本不會啊...) 估計是舊裝置的亂數產生器用的seed比較差所以不夠"亂"吧... 那如果到目前為止都沒有錯,那可以進一步得到以下結論: 1. 在iOS 9.1那版盤古JB且有照板上方法備份SHSH2,應該未來可以用Prometheus 2. 在iOS 9.3那版Luca JailbreakMe JB,且有照版上方法備份SHSH2,同上 3. 在iOS 9.3那版但是用的是盤古JB,好像可以重開機回到未JB直接服用Luca JB, 然後同2 4. 在iOS 9.0那版盤古JB,或者其他任意iOS然後根本沒有JB,基本上可以去跑跑 noncestatistics 看看你的裝置會不會產生重複nonce,然後針對該nonce備份SHSH2, 如果幾乎不重複那就只能看別人玩Prometheus了... 5. 承上,有鑑於第四點的裝置無法在Apple關掉10.1.1簽名的時候用Prometheus刷10.1.1 然後又已知之後Luca的JB只能用在10.1.1 (10.2已經patch掉該漏洞了),那想要嘗試 10.1.1 JB勢必要趁Apple來在簽時刷上10.1.1,只是這樣就要入獄等Luca了... 對沒有JB的人來說還好,對9.0 JB的人要考慮清楚XD 以上是個人心得,有錯還請指正。 -- ◢███ ◤ ◢◤ ◢███ ◢██ ◢███ ◢◤ ◢◤ ◢███ ◢█ ◢███ ◤ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 24.199.19.190 ※ 文章網址: https://www.ptt.cc/bbs/iPhone/M.1482193427.A.70E.html
Crazying: 9.0 + 6s+ QQ 不過也只有需要 ios10 的whoscall功能而已 12/20 08:40
slent67: 推 12/20 08:46
giantwinter: 對到重複的nonce也太難 12/20 09:18
ditm: 感謝用心的心得分享 12/20 09:35
niceboy: 簡單說,不管怎樣,先備份 SHSH2, 對吧? 12/20 09:54
ad: 看來要先升到10.1.1比較安全 不然關掉後不一定可刷10.1.1 12/20 10:03
iPluto: 備份是沒有什麼缺點,最多就是備份的東西不能用而已 12/20 10:06
ad: 先升級到10.1.1應該比較穩 對吧?到時候10.1.1越獄後就隨意升降 12/20 10:10
iPluto: 理論上,可是越獄還沒出降級tool還沒出誰知道呢... 12/20 10:13
adorekobe8: 好猶豫 12/20 10:32
wacow999: 不太懂 意思是6s 9.0.2可能是備份心酸的嗎QQ 12/20 10:37
smallopen2k: 感謝分享,剛剛看完就立馬把6s升級到10.1.1了 12/20 10:43
iPluto: 9.0.2 6S的確可能是備身體健康的... 12/20 10:48
arrest: 7先降回10.1.1好了 12/20 12:30
max025: 阿鬼你還是說中文吧 12/20 13:17
tmpss88109: 看起來我的SE 9.3.4也要先升上10.1.1了齁 12/20 13:27
alanhwung: 所以6s 9.0.2要升級賭一波的意思嗎QQ 12/20 14:07
Jmoe: 明白了,感謝分享~~ 12/20 14:26
iPluto: 也可以龜在9.0....反正也沒什麼不好(自我安慰) 12/20 14:45
iPluto: 或者期待有人搞出讓9.0可以用tool的方法... 12/20 14:45
shenyang: 昨天備份好140B150的SHSH2了 啊之後要怎麽使用啊? 12/20 15:09
iPluto: 等12/31 tool釋出應該會有說明 12/20 15:31
TFreeman: 推詳細講解~ 12/21 07:26
sky771125: 推好文!另外想問ios8也可以嗎QQ 12/21 09:58
Gabriel819: Ios 10.1 for device iPhone7,2 being signed 這個 12/21 10:02
Gabriel819: 訊息 請問我是備份到10.1嗎? 12/21 10:02
iPluto: 樓上是的 12/21 10:52
bennylu1212: 6s9.02 路過 12/21 15:35
iPluto: 昨天試著用6S跑了2000個nonce都不會collide... 12/21 16:43
prn258: 請問noncestatistics 怎麼使用阿~? 12/22 00:13