diosra2’s blog

iOS 脱獄、ダウングレード等

Jailbreak information

Jailbreak

32bit

64bit (A7~A9)

iPhone 7/7+

Untethered

9.3.4

9.1

No

Semi-Untethered

9.3.5

10.2

10.1.1

A5、A6デバイスから現在のバージョンのSHSHを抜き出す

注意:この方法はJailbreak(脱獄)を必要とします。

以前からLimera1n Exploit (BootRom Exploit)の存在するA4デバイスではiFaith等でSHSHを抜き出すことは可能でしたが、A5(iPad 2, iPhone 4S)以降ではBootRom Exploitが修正されたためこの手法は使えませんでした。

しかし、@winocn氏作成の"kloader"を使用することでiPhone 4SやiPhone 5などのA5/A6デバイスから現在インストールしているiOSのSHSHをデバイスから抜き出すことができます。

 

 

事前に

これを行う前に、Jailbreak(脱獄)やSHSHとは何かを理解してから行ってください。特にJailbreak(脱獄)は自己責任で行ってください。(当ブログ記事はJailbreak(脱獄)行為について一切責任を負いません。)

 

条件

・Jailbreak (脱獄) 済みである。

・task_for_pid 0 (tfp0) が有効である。

 

*以下のものでJB(脱獄)したならtfp0は有効です。(iOS 6.0未満は省略)

evasi0n

p0sixspwn

Pangu (iOS 7.1-7.1.x)

TaiG

Pangu9 (32bit)

Home Depot

 

対応デバイス

対応デバイスは以下の通りです。

iPhone 4S, iPhone 5, iPhone 5c

iPad 2, iPad (3rd generation), iPad (4th generation), iPad mini

iPod Touch (5th generation)

*Limera1n Exploitが存在するiPhone 4などでは、この手法を使う必要はありません。

 

1, 準備

Odysseusを使います。linux, Macの場合は下記からダウンロードしてください。

http://dayt0n.github.io/odysseus/odysseus-0.999.zip

 

2, SHSHを抜き出す下準備

OdysseusがダウンロードできたらPwnediBSS/PwnediBECを作成します。

 

Odysseusはkloaderを使ってCFWでiOSをダウングレードするツールです。このツールで使うCFWを作成する際に、PwnediBSS/PwnediBECも作成されるのでこれが一番楽にPwnediBSS/iBECを作成できると思います。

と、いうことでまずはCFWを作りましょう。

 

ipswは下記リンク先で必要なものをダウンロードしてください。

https://ipsw.me

 

MacOSを想定しています。それ以外の環境の場合は違う部分を読み替えてください。

1, ダウンロードできたらOdysseusの中のmacosへ移動し、そこにipswを配置します。

 

2, ターミナルでOdysseusの中のmacosへ移動し下記コマンドを入力します。(downloaded.ipswはダウンロードしたipswのことです。)

User$ ./ipsw downloaded.ipsw custom.ipsw

 

3, CFWの作成が終わったらPwnediBSS/PwnediBECを抽出します。

User$ ./xpwntool `unzip -j custom.ipsw 'Firmware/dfu/iBSS*' | awk '/inflating/{print $2}'` pwnediBSS

User$ mv `unzip -j custom.ipsw 'Firmware/dfu/iBEC*' | awk '/inflating/{print $2}'` pwnediBEC

 

これでPwnediBSS/PwnediBECの作成は完了です。

 

3, SHSHを抜き出す

先ほど作成したPwnediBSSを使ってデバイスをkDFU(soft DFU) Modeにいれます。

ここではSSHを使った方法を紹介します。先にiOS側にOpenSSHをインストールしておきましょう。

 

1, kDFU Modeに入れます。

iOSデバイスをUSB接続し、Macのターミナルから

User$ ./sshtool -k ../kloader -b pwnediBSS -p 22 deviceIP

(deviceIPはiDeviceのIPアドレスです。設定のWi-Fiから確認してください。)

と実行するとkloaderが実行され、デバイスがkDFU(soft DFU) Modeにはいります。

※iOS 4や5の場合は、こちらのkloaderを使ってください。

 

 

2, PwnediBECを送信します。

ターミナルから

User$ ./irecovery -f pwnediBEC

と実行するとPwnediBECが送信され、iOSデバイスがRecovery Modeに入ります。

 

3,  SHSHをDumpします。

ターミナルから

User$ ./irecovery -s

 

 

iRecovery> /send ../payload

 

iRecovery> go blobs

 

iRecovery> /exit

 

User$ ./irecovery -g myblob.dump

 

User$ ./irecovery -s

 

 

iRecovery> reboot

myblob.dumpというファイルが生成されていれば成功ですが、このままでは利用することができません。

4, SHSHを有効化する 

1, 今度はiOSデバイスの現バージョンのipswが必要なのでダウンロードしてください。

ipswは下記リンク先で必要なものをダウンロードしてください。

https://ipsw.me

 

2, 以下のコマンドを実行します。(matching.ipswとはダウンロードした現バージョンのipswのことです。)

User$ ./ticket myblob.dump myblob.plist matching.ipsw -z

User$ ./validate myblob.plist matching.ipsw -z

validateでエラーが出なければ成功です。myblob.plistが抜き出したSHSHとなるので、大切に保管しておきましょう。