diosra2’s blog

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

A7をDFU ModeからiOS 11.3.1にfuturerestoreする。

この手法を使用し、SHSHが切れたことを想定して、保存したshsh2とiOS 11.4SEPを使って実際にiOS 11.3.1へ復元してみました。 

 

スクリプト

動画では、以下のshを動かしています。

#!/bin/bash



getnonce=$(./igetnonce 2>/dev/null | grep ApNonce)



	nonce=$(echo $getnonce | cut -d '=' -f 2)

	echo $nonce >/dev/null



getecid=$(./igetnonce 2>/dev/null | grep ecid)



	ecidhex=$(echo $getecid | cut -d '=' -f 2 )

	echo $ecidhex >/dev/null



        ecidhex2=$(echo $ecidhex | tr '[:lower:]' '[:upper:]')

        echo $ecidhex2 >/dev/null



	ecid=$(echo "obase=10; ibase=16; $ecidhex2" | bc)

	echo $ecid >/dev/null



	echo "getting ticket for nonce=$nonce"

	

mv `unzip -j iPhone_4.0_64bit_11.3.1_15E302_Restore.ipsw 'Firmware/dfu/iBSS.iphone6.RELEASE.im4p' | awk '/inflating/{print $2}'` iBSS.n51ap.15E302.RELEASE.im4p

mv `unzip -j iPhone_4.0_64bit_11.3.1_15E302_Restore.ipsw 'Firmware/dfu/iBEC.iphone6.RELEASE.im4p' | awk '/inflating/{print $2}'` iBEC.n51ap.15E302.RELEASE.im4p



./img4tool -s shsh/$ecid_iPhone6,1_n51ap_11.3.1-15E302_$nonce.shsh2 -c ibss.signed -p iBSS.n51ap.15E302.RELEASE.im4p >/dev/null

./img4tool -s shsh/$ecid_iPhone6,1_n51ap_11.3.1-15E302_$nonce.shsh2 -c ibec.signed -p iBEC.n51ap.15E302.RELEASE.im4p >/dev/null



echo "Upload 1st stage...(iBSS)"

./irecovery -f ibss.signed

sleep 1

echo "Upload 2nd stage...(iBEC)"

./irecovery -f ibec.signed

echo "Waiting..."

sleep 1



rec="recovery"

getrecovery=$(./igetnonce 2>/dev/null | grep Identified | cut -d ' ' -f 7 )

    if [ $getrecovery = $rec ]; then

        echo "Enter Recovery Mode!!"

        rm ibss.signed ibec.signed

        echo "Futurerestore..."

        ./futurerestore -t shsh/$ecid_iPhone6,1_n51ap_11.3.1-15E302_$nonce.shsh2 -b Mav7Mav8-8.55.00.Release.bbfw -p iPhone6,1_11.4_15F79.plist -s sep-firmware.n51.RELEASE.im4p -m iPhone6,1_11.4_15F79.plist iPhone_4.0_64bit_11.3.1_15E302_Restore.ipsw

        echo "Done!!"

    else

        exit

    fi

 

どういうことなのか、実際に見てみましょう。

用意するもの

igetnonce

futurerestore

img4tool

irecovery

iOS 11.3.1と11.4のIPSW

 

復元方法

1, ApNonceを取得。

igetnonceでDFU ModeのApNonceを取得します。

デバイスをDFU Modeに入れ、USB接続をした後、パソコン(Nac)側でigetnonceを動かします。

出てきたApNonceを記録しておいてください。

 

2, 保存済みのshsh2から、取得したApNonceを含むshsh2で署名、署名したiBSS/iBECをデバイスに転送。

ここが重要です。

先程取得したApNonceを含むshsh2があるかどうかを確認してみてください。事前に10個ほどApNonceを取得していた場合、25%程度の確率で一致します。一致しなかった場合はもう一度DFU Modeからやり直します。

 

ApNonceが一致した場合、iOS 11.3.1のIPSWからiBSS/iBECを取得、img4toolで署名します。

コマンド: ./img4tool -s [shsh2] -p [IPSWから取り出したiBSS/iBEC] -c [署名済みのiBSS/iBEC]

 

 4, futurerestoreで復元。

futurerestoreでiOS 11.4のSEPを利用して復元します。

しかし、futurerestoreはDFU Modeをサポートしてないので、irecoveryで先程署名したiBSS/iBECを手動で転送する必要があります。

コマンド1: ./irecovery -f [署名したiBSS]

コマンド2: ./irecovery -f [署名したiBEC]

これでリカバリーモードに入れます。

 

そうしたらいつも通りにfuturerestoreします。

コマンド: ./futurerestore -t [shsh2] -b [iOS 11.4のbaseband] -p [iOS 11.4のBuildManifest] -s [iOS 11.4のSEP] -m [iOS 11.4のBuildManifest] [iOS 11.3.1のIPSW]

 

 

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