作者iPluto (鍵盤Apple Genius)
看板iPhone
標題Re: [越獄] iOS 10.1.1 JB現況&SHSH2備份
時間Tue Dec 20 08:23:36 2016
好久沒有降級這件事情了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://webptt.com/m.aspx?n=bbs/iPhone/M.1482193427.A.70E.html
1F:推 Crazying: 9.0 + 6s+ QQ 不過也只有需要 ios10 的whoscall功能而已 12/20 08:40
2F:推 slent67: 推 12/20 08:46
3F:推 giantwinter: 對到重複的nonce也太難 12/20 09:18
4F:推 ditm: 感謝用心的心得分享 12/20 09:35
5F:→ niceboy: 簡單說,不管怎樣,先備份 SHSH2, 對吧? 12/20 09:54
6F:推 ad: 看來要先升到10.1.1比較安全 不然關掉後不一定可刷10.1.1 12/20 10:03
7F:→ iPluto: 備份是沒有什麼缺點,最多就是備份的東西不能用而已 12/20 10:06
8F:推 ad: 先升級到10.1.1應該比較穩 對吧?到時候10.1.1越獄後就隨意升降 12/20 10:10
9F:→ iPluto: 理論上,可是越獄還沒出降級tool還沒出誰知道呢... 12/20 10:13
10F:推 adorekobe8: 好猶豫 12/20 10:32
11F:推 wacow999: 不太懂 意思是6s 9.0.2可能是備份心酸的嗎QQ 12/20 10:37
12F:推 smallopen2k: 感謝分享,剛剛看完就立馬把6s升級到10.1.1了 12/20 10:43
13F:→ iPluto: 9.0.2 6S的確可能是備身體健康的... 12/20 10:48
14F:推 arrest: 7先降回10.1.1好了 12/20 12:30
15F:推 max025: 阿鬼你還是說中文吧 12/20 13:17
16F:推 tmpss88109: 看起來我的SE 9.3.4也要先升上10.1.1了齁 12/20 13:27
17F:推 alanhwung: 所以6s 9.0.2要升級賭一波的意思嗎QQ 12/20 14:07
18F:推 Jmoe: 明白了,感謝分享~~ 12/20 14:26
19F:→ iPluto: 也可以龜在9.0....反正也沒什麼不好(自我安慰) 12/20 14:45
20F:→ iPluto: 或者期待有人搞出讓9.0可以用tool的方法... 12/20 14:45
21F:→ shenyang: 昨天備份好140B150的SHSH2了 啊之後要怎麽使用啊? 12/20 15:09
22F:→ iPluto: 等12/31 tool釋出應該會有說明 12/20 15:31
23F:推 TFreeman: 推詳細講解~ 12/21 07:26
24F:推 sky771125: 推好文!另外想問ios8也可以嗎QQ 12/21 09:58
25F:推 Gabriel819: Ios 10.1 for device iPhone7,2 being signed 這個 12/21 10:02
26F:→ Gabriel819: 訊息 請問我是備份到10.1嗎? 12/21 10:02
27F:→ iPluto: 樓上是的 12/21 10:52
28F:→ bennylu1212: 6s9.02 路過 12/21 15:35
29F:→ iPluto: 昨天試著用6S跑了2000個nonce都不會collide... 12/21 16:43
30F:推 prn258: 請問noncestatistics 怎麼使用阿~? 12/22 00:13