diosra2’s blog

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

iPhone 3GSを簡単にiPhoneOS 3.0にダウングレードする!

以前、以下の記事で3GSをSHSHなしで3.0にダウングレードする方法を紹介しました。

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

 

しかし、こちらですと手順も複雑で分かりにくいので、Firmware bundleを作成して簡単にダウングレードできるようにしました。

SHSHは不要です。

 

使用する脆弱性

0x24000 Segment Overflow (以下24kpwn) --Old Bootrom (旧ブートロム) のデバイスをSHSHなしで起動させるため。

alloc8 exploit --New Bootrom (新ブートロム) のデバイスをSHSHなしで起動させるため。

limera1n exploit --CFWで復元するため。

 

*必要なもの

iPhone2,1_3.0_7A341_Restore.ipsw  (ファイルサイズ: 300MB程度)

iPhone2,1_3.0_7A341.bundle.tar.lzma

Odysseus

ipwndfu

 上記の必要なものを全てダウンロードしてください。

 

また、以下の記事から自分のデバイスがiPhoneOS 3.xに復元できるかどうか、あらかじめ確認してください。

iPhone 3GSのあれこれ。 - diosra2’s blog

 

1, 3.0のFirmware bundleをOdysseusに導入する

3.0のバンドルをダウンロード、解凍してください。

そして、出てきたbundleをOdysseusの"FirmwareBundles"ディレクトリに導入してください。

 

2, CFWを作成する

OdysseusでCFWを作成します。

Terminalで以下のコマンドを実行、CFWを作成してください。

User$ ./ipsw iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Custom.ipsw

 

3, デバイスをPwned DFU Modeにする

ipwndfuを使用します。

デバイスをDFU Modeに入れ、Terminalで以下のコマンドを実行します。

User$ ./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]

Device is now in pwned DFU Mode.

 

4, 復元する

Odysseus内にあるidevicerestoreで復元します。

今回の手法はSHSH不要ですが、空のSHSHファイル(plistファイル)を用意する必要があります。続いて、そのshshファイルを以下のようにリネームしてOdysseus内の"shsh"ディレクトリに入れてください。

[ECID]-iPhone2,1-3.0.shsh

(中身)

*[ECID]は、デバイスのECIDを10進数で入れてください。

 

いよいよ復元です。Terminalで以下のコマンドを実行してください。

User$ ./idevicerestore -e -w iPhone2,1_3.0_7A341_Custom.ipsw

※iOS>3.0.1から3.0に復元した場合、1度目の復元後は起動時に必ずエラーを吐きます。(ほとんどの場合はこれに当てはまると思います。)

そのため、この場合は3~4の手順をもう一度繰り返してください。

 

このバンドルではLLBに24kpwnを適用させているので、Old Bootrom (旧ブートロム) の場合は復元が終わると正常に起動します。作業はこれでおしまいです。お疲れさまでした!

New Bootrom (新ブートロム) の場合、復元が終わるとデバイスはDFU Modeで停止します。New Bootromでは24kpwnは修正されているので、起動しなくても正常です。次のステップに進みます。

 

5, ipwndfuでalloc8 exploitを適用してiPhoneOSを起動する (New Bootrom only)

New Bootromでは24kpwnは修正されているため、このままでは起動しません。

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

5-1, limra1n exploitでPwned DFU Modeにする (New Bootrom only)

デバイスをDFU Modeに入れ、Terminalで以下のコマンドを実行します。

User$ ./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]

Device is now in pwned DFU Mode.

 

5-2, alloc8 exploitの適用 (New Bootrom only)

Terminalで以下のコマンドを実行し、alloc8 exploitを適用します。

User$ ./ipwndfu -x

 

以下のように表示されたあと、デバイスが起動すれば成功です。

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-XXXXXXXX-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.

 

作業はこれでおしまいです。お疲れさまでした!

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