diosra2’s blog

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

iPhone 3GSをSHSHなしでダウングレードする [完全]

iPhone 3GS

iPhone 3GSにはOld BootRom(旧ブートロム)とNew BootRom(新ブートロム)の2種類のブートロムが存在します。

Old BootRom(旧ブートロム)では0x24000 Segment Overflow(24kpwn)と呼ばれるBootRom Exploitが存在し、これによりBootRomベースでのUntethered Jailbreak(完全脱獄)やSHSHなしでの全バージョンへの復元が可能でした。

ですが、2009年9月ごろ(?)から24kpwnを対策したNew BootRom(新ブートロム)が搭載されるようになり、New BootRom(新ブートロム)ではBootRomベースでのUntethered Jailbreak(完全脱獄)やSHSHなしでの全バージョンへの復元が不可能となりました。

しかし、axi0mX氏によって公開されたalloc8 exploitにより新ブートロムでも24kpwnのようなBootRomベースのUntethered Jailbreak(完全脱獄)やSHSHなしでの全バージョンへの復元ができるようになりました。

 

 

1,対応デバイス

iPhone 3GS [Bootrom 359.3] (Old BootRom)

iPhone 3GS [Bootrom 359.3.2] (New Bootrom)

 

2,使用されるBootRom Exploit

0x24000 Segment Overflow (24kpwn): Bootrom 359.3を搭載するデバイス上で、未署名のLLBを実行できるUntethered BootRom Exploitです。by iPhone Dev Team

alloc8 exploit: iPhone 3GSで使用できるUntethered BootRom Exploitです。by axi0mX

limera1n exploit: USB上で未署名のコードを実行することができるBootRom Exploitです。by geohot

 

3,利用方法

 Old BootRomでは24kpwnの適用されたCFWを作成し、Limera1n Exploitを使用して復元します。

New BootRomでは、一度24kpwnの適用されたCFWを作成し、Limera1n Exploitを使用して復元します。24kpwnはfixされているので、復元後にLimera1n Exploitを使用してalloc8 exploitを適用します。

 

3-1,CFWを作成

復元したいバージョンの、24kpwnの適用されたCFWを作成します。

sn0wbreezePwnageTool、Redsn0wなどを使って作成してください。

注意点: CFWを作る際、New BootRom(新ブートロム)だとしても、Old BootRom(旧ブートロム, 未対策BootRom)を選択してください。

使用するツールは

iPhoneOS 3.0 - 3.0.1【Tutorial】 iPhone 3GSをiPhoneOS 3.0にSHSHなしでダウングレードする。 - diosra2’s blog

iPhoneOS 3.1 - 3.1.2: PwnageTool

iPhoneOS 3.1.3 - iOS 4.3.2: sn0wbreeze, PwnageTool

iOS 4.3.3: sn0wbreeze, PwnageTool, redsn0w

iOS 5.0 - 6.0: sn0wbreeze, redsn0w

iOS 6.0.1 - 6.1.3: sn0wbreeze

iOS 6.1.6: ツールなし

となっています。

 

*Redsn0wの場合

Redsn0wの場合はCustom IPSWでCFWを作成します。

1, Extrasを選択

 

2, Custom IPSWを選択、復元するバージョンのipswファイルを選択します。

その際、"Will this custom IPSW be used on a newer (fixed) version of yhe iPhone3GS?"と聞かれます。今回は24kpwnの適用されたCFWを作成したいので、New BootRom(新ブートロム)でもNoを選択します。

作成が終わると下のようなメッセージが表示されます。

"NO_BB_OLDROM"で始まるIPSWが作成されたCFWとなるので、このIPSWを使って復元します。

 

 

3-2,iTunesで復元

Redsn0wやiREB等でPwned DFU Modeに入ります。

入れたらiTunesを開いて(Macならoptionキーを押しながら)iPhoneを復元を押し、CFWで復元します。

*Old BootRom(旧ブートロム)なら当然24kpwnの脆弱性は有効です。復元が完了すればそのまま起動するのでこれで完了です。

 

New BootRom(新ブートロム)なら24kpwnは対策されているので、復元後は起動せずに画面は黒いままです。

 

3-3,alloc8 exploit (New BootRom)

New BootRom(新ブートロム)では先ほどの通り、24kpwnは対策されているので使えません。

そのため、ここでalloc8 exploitを適用します。

ipwndfuというものを使いますのでダウンロードして下さい。

 

 

ipwndfu

User$ ./ipwndfu

USAGE: ipwndfu [options]

Interact with an iOS device in DFU Mode.

 

Basic options:

  -p USB exploit for pwned DFU Mode

  -x install alloc8 exploit to NOR

  -f file send file to device in DFU Mode

Advanced options:

  --dump=address,length dump memory to stdout

  --hexdump=address,length hexdump memory to stdout

  --dump-rom dump SecureROM

  --dump-nor=file dump NOR to file

  --flash-nor=file flash NOR (header and firmware only) from file

  --24kpwn install 24Kpwn exploit to NOR

  --remove-24kpwn remove 24Kpwn exploit from NOR

  --remove-alloc8 remove alloc8 exploit from NOR

  --decrypt-gid=hexdata AES decrypt with GID key

  --encrypt-gid=hexdata AES encrypt with GID key

  --decrypt-uid=hexdata AES decrypt with UID key

  --encrypt-uid=hexdata AES encrypt with UID key

 

ステップ0

iOS 4.3.5のiBSSが必要なのでダウンロードしておいて下さい。

http://appldnld.apple.com/iPhone4/041-1965.20110721.gxUB5/iPhone2,1_4.3.5_8L1_Restore.ipsw

 

User$ unzip -p iPhone2,1_4.3.5_8L1_Restore.ipsw Firmware/dfu/iBSS.n88ap.RELEASE.dfu > n88ap-iBSS-4.3.5.img3

iBSSはipwndfuのフォルダのなかに入れておいて下さい。

 

ステップ1

デバイスをUSB接続し、DFU Modeに入れます。

 

ステップ2

ipwndfuでLimera1n Exploitを使用してPwned DFU Modeに入れます。

ターミナルでipwndfuのフォルダの中に移動し、コマンド"./ipwndfu -p"と実行します。

User$ ./ipwndfu -p

*** based on limera1n exploit (heap overflow) by geohot ***

Found: CPID:8920 CPRV:14 CPFM:03 SCEP:01 BDID:00 ECID:XXXXXXXXXXXXXXXX SRTG:[iBoot-359.3.2]

Device is now in pwned DFU Mode.

 

ステップ3

ipwndfuでalloc8 exploitを適用します。

ターミナルからコマンドで"./ipwndfu -x"です。

*Old BootRom(旧ブートロム)でこの操作を行うと、赤文字の注意が表示されていますが、alloc8 exploitよりも24kpwnの方が起動が速いので、Old BootRom(旧ブートロム)の場合は通常通りに24kpwnを使用しましょう。

User$ ./ipwndfu -x

WARNING: iPhone 3GS (old bootrom) was detected. Use 24Kpwn exploit for faster boots, alloc8 exploit is for testing purposes only.

Press ENTER to continue.

Installing alloc8 exploit to NOR.

Dumping NOR, part 1/8.

Dumping NOR, part 2/8.

Dumping NOR, part 3/8.

Dumping NOR, part 4/8.

Dumping NOR, part 5/8.

Dumping NOR, part 6/8.

Dumping NOR, part 7/8.

Dumping NOR, part 8/8.

NOR backed up to file: nor-backups/nor-XXXXXXXXXXXXXXXX-20XXXXXX-XXXXXX.dump

Preparing modified NOR with alloc8 exploit.

Sending iBSS.

Waiting for iBSS to enter Recovery Mode.

Sending iBSS payload to flash NOR.

Sending run command.

If screen is not red, NOR was flashed successfully and device will reboot.

 

Dumping NORが終わった後、3GSの画面が緑に点灯します。正常に終了すれば3GSが再起動します。

これで完了です!

 

注意点: alloc8の場合、電源が切れた状態から起動するときに3秒ほどスリープボタンを長押ししなければ起動しません。また、(深い)スリープ状態に入った場合はデバイスがスリープ状態から復旧するのに3秒ほと遅れます。(これがOld BootRom(旧ブートロム)では24kpwnの方が速いという理由です。)

 

*番外編

Redsn0wのCFWではCydia等のパッケージはインストールされていません。

Jailbreakしたい場合はiTunesで復元した後、この手順を踏みます。

 

1, Extras -> Select IPSWで現在インストールされているiOSの通常のIPSWを選択します。

※iOS 6.xの場合、iOS 6.0のIPSW以外はRedsn0wが対応していないので、どのバージョンでもiOS 6.0のIPSWを選択します。

 

BootRomの新旧を聞いてきますが、今回もNoで良いです。

Noを選択した場合、新たに24kpwnが適用されるので、新ブートロムの場合は再度alloc8の再適用が必要です。

 

2, 最初のページに戻り、Jailbreakを選択。

オプション選択画面になるので選択します。

・Install Cydia

Cydiaやその他パッケージをインストールします。選択しないとCydiaがインストールされないので選択しておきましょう。

・Verbose boot

Verbose bootで起動します。特に必要はありません。

・Custom boot/recovery logo

起動時のブートロゴ、リカバリーモード時に表示されるリカバリーロゴをカスタマイズできます。お好みでどうぞ。

・Deactivate

Deactivate (アクティベート解除)します。

 

オプション選択が終わったらNextを選択。デバイスをDFU Modeに入れるとJailbreakが始まります。

終了すると、Old BootRom(旧ブートロム)なら通常通りに起動しますが、New BootRom(新ブートロム)なら画面は黒いままです。このままでは起動しないので、続けてipwndfuでalloc8 exploitを適用します。

 

Copyright (C) 2017-2018 Diosra2. All Rights Reserved.