Ipad

img4tool で .shsh2 BLOB を検証する方法

img4tool で .shsh2 BLOB を検証する方法

先日、tihmstarのTSSCheckerの以前のバージョンで保存された.shsh2 blobの一部に不具合があることを報告しました。そのうちの1つの問題はiPhone 7とiPhone 7 Plusのすべてのblobに影響し、使用できなくなっていました。この問題は修正されましたが、過去のblobは無効です。

もう1つの問題はより複雑で、特定のデバイスの特定のモデルにのみ影響していました。この問題は今後保存されるBLOBについても修正されていますが、このような問題が発生する可能性があるため、過去に保存したBLOBが実際に有効であり、Prometheusで使用できるかどうかを確認できることが重要です。

この記事では、tihmstarのPrometheusスイートに含まれる別のツール、img4toolを使用して、.shsh2ファイルに問題がないことを確認する方法について説明します。この方法は、前述の2番目の問題の影響を受けているかどうかを明確にするだけでなく、将来BLOBの有効性を確認する際にも一般的に役立ちます。

要件

これには次のものが必要です:

  • TSSChecker/TSSSaver を使用して .shsh2 形式で保存された BLOB。
  • tihmstar の img4tool は、この YouTube ビデオの説明からダウンロードできます。
  • BLOBを検証するデバイス/iOSバージョンの組み合わせごとに、IPSWファイルをダウンロードしてください。検証するBLOBに一致するIPSWファイルをダウンロードしてください。つまり、検証するiOSバージョンとデバイスごとに異なるIPSWをダウンロードする必要があります。
    この作業には時間がかかるため、時間を節約するために、デバイスではiOS 10.1.1 (14B150) とiOS 10.2のBLOBのみを検証することをお勧めします。これらは最も重要なBLOBです。(14B150)をお持ちでない場合は、代わりに(14B100)をダウンロードしてください。

このチュートリアルではMacでの手順を説明し、ターミナルアプリケーションを使用しますが、Windows版とLinux版も利用可能で、手順はほぼ同じです。2台のiPhone 5sでiOS 10.1.1 (14B150) とiOS 10.2のBLOBを検証します。

img4tool を使い始める前に、BLOB を検証する iOS デバイスで実行する必要がある手順があります。

iOSの手順

1)お使いのデバイスでApp Storeを開き、「BMSSM」を検索します。表示されるアプリ「Battery Memory System Status Monitor」をインストールします。

2)ダウンロードしたアプリを開き、上部の「システム」タブに移動します。

3)このページで「デバイス - モデル」という項目を探します。「N53AP」のような表示になっているはずです。この値と、どのデバイスから取得したかをメモしておきましょう。

4)他のすべてのデバイスに対してこのプロセスを繰り返します。

img4toolの説明

1) 検証したいBLOBのIPSWをダウンロードします。例えば、iOS 10.1.1 (14B150) iPhone 5s (GSM)のBLOBが正常かどうかを確認したい場合は、iOS 10.1.1 (14B150) iPhone 5s (GSM)のIPSWをダウンロードしてください。BLOBに正しいIPSWをダウンロードしてください。正しいIPSWでないと、img4toolは正しく検証できません。iOS 10.1.1には2つのバージョンがあり、一部のデバイス(iPhone 5sなど)には異なるモデルがあり、異なるIPSWが使用されていることに注意してください。

2)検証したいBLOBをコピーし、デスクトップ上のフォルダに貼り付けます。フォルダ名は「TSS」とします。

3)  img4tool フォルダ (YouTube 動画の説明の「要件」セクションからダウンロード) から img4tool_macos ファイルを取得し、TSS フォルダに配置します。

4)ダウンロードした IPSW も TSS フォルダーに配置します。

5)フォルダ内の各IPSWファイルについて、名前の変更をクリックし、ファイル拡張子を.ipswから.zipに変更します。表示されるダイアログボックスで「.zipを使用」を選択します。

6)名前を変更したすべての.zipファイルをダブルクリックして解凍します。解凍が完了すると、フォルダとして表示されます。

7) Spotlight または /Applications/Utilities からターミナルを起動します。

8) ターミナルプロンプトで「cd」と入力し、その後にスペースを入れて、TSS フォルダーをターミナルウィンドウにドラッグします。

9)  「Enter」キーを押してコマンドを入力します。ターミナルはTSSフォルダに移動します。

10) ターミナルに次のコマンドを入力し、「Enter」を押します。

sudo chmod +x img4tool_macos

要求された場合は管理者パスワードを入力してください。

11) ターミナルに次のコマンドを入力します。

./img4tool_macos -v BuildManifest.plist -s YOUR_SAVED_BLOB.shsh2

ただし、「BuildManifest.plist」というフレーズを解凍したIPSWフォルダのファイルに、「YOUR_SAVED_BLOB.shsh2」をBLOBファイルに置き換える必要があります。最も簡単な方法は、ターミナルウィンドウのコマンドの適切な部分にファイルをドラッグすることです。

iPhone 5sのiOS 10.1.1 (14B150) の例を以下に示します。まず、ターミナルで「./img4tool_macos -v」と入力し、スペースを入れます。次に、iOS 10.1.1 (14B150) iPhone 5sのIPSWフォルダに移動します。この手順では正しいIPSWフォルダを使用する必要があります。誤って他のIPSWフォルダを使用しないでください。フォルダ内に正しい「BuildManifest.plist」があります。このファイルをターミナルウィンドウの「./img4tool_macos -v」の後にドラッグすると、ファイルパスが自動的に入力されます。

次に「-s」と入力し、スペースを入れて、検証したい.shsh2 blobをターミナルウィンドウにドラッグします。ターミナルがファイルパスを自動的に入力します。選択したBuildManifest.plistに対応する.shsh2 blobが必要です。誤って他のblobを使用しないようにしてください。

12) コマンドが完了したら、「Enter」キーを押して実行します。ターミナルに結果が表示されます。興味深いのは一番下の部分です。以下の例をご覧ください。

画像からわかるように、この BLOB は有効です。つまり、正しいハッシュがすべて含まれており、IPSW バージョン (10.1.1) は BLOB が保存された iOS バージョンと一致しています。

しかし、BLOBが本当に正しいかどうかを確認するために、もう1つ確認すべきことがあります。先ほどBMSSMからメモしたデバイスモデルを覚えていますか?

ターミナル出力で「DeviceClass」という行を探してください(例として上の画像を参照)。「N53AP」のような値になっているはずです。次に、対応するiOSデバイスのBMSSMから取得した値(iOS手順セクションのステップ3)と比較します。値が同じでない場合、img4toolの下部に「ファイルは有効です」と表示されていても、blobは有効ではありません。これは、blobが技術的には有効(必要なコンポーネントがすべて含まれている)ですが、BuildIdentityが間違っているためです。img4toolは実際に使用しているデバイスを認識していないため、ファイルに必要なすべての部分が含まれているかどうかを確認し、含まれている場合は有効であると判断するだけです。そのため、「正しい」blobが「間違った」デバイス用に保存される可能性があり、これは役に立ちません。そのため、常に次の点を確認してください。

  • img4tool によると、BLOB は有効だそうです。
  • img4tool のターミナル出力からの「DeviceClass」値は、BMSSM 内の同じ iOS デバイスの「デバイス モデル」フィールドと同じです。

両方とも真実であれば、すべて問題ありません。

13) 他のデバイスでもコマンドを繰り返し実行します。BuildManifest.plistと.shsh2 blobのセットは毎回変更してください。BMSSMの「デバイスモデル」も必ず確認してください。

この画像では、img4tool は私の iPhone 5s の iOS 10.2 用 BLOB が有効であると表示しています。しかし、この BLOB はモデル N53AP でのみ有効であるとも表示しています。その iPhone 5s で BMSSM をチェックしたところ、朗報です!N53AP も表示されているので、この BLOB は実際に有効です。

次の例を見てください。

ここで、img4tool は別のiPhone 5s用の iOS 10.1.1 (14B150) の BLOBも有効であると報告しています。そして、ここでもモデル N53AP のみ有効であると表示されています。しかし、このiPhone 5s で BMSSM を確認すると、実際にはモデル N53AP ではなく N51AP であることがわかります。この場合、img4tool は BLOB が内部的には正常であると報告しますが、間違った BuildIdentity で保存されているため無効であり、使用できません。これは以前 TSSChecker で発生したエラーであり、古い BLOB では最も注意して確認する必要があるエラーです。

そして最後に:

これは、iOS 10.2 の BLOB を間違った BuildManifest.plist で検証しようとした際に発生する現象です(誤って iOS 10.1.1 の BuildManifest.plist を選択してしまいました)。img4tool は即座に BLOB が無効であると報告します。これは、10.2 の BLOB が 10.1.1 で有効かどうかを尋ねたためですが、明らかに無効です。このエラーを回避するには、BuildManifest.plist と .shsh2 ファイルの iOS バージョンが同一であるペアを選択するように注意してください。

ご覧の通り、このプロセスはかなり詳細ですが、古いBLOBを誤認識することなく確実にチェックできる方法と言えるでしょう。誤認識があると、実際には有効ではないのに有効だと勘違いしてしまう可能性があります。IPSWのダウンロードには時間がかかるため、iOS 10.1.1やiOS 10.2などの重要なBLOBでのみ実行することをお勧めします。

また、TSSChecker/TSSSaverの新しいバージョンではこの問題は発生しなくなりました。そのため、iOS 10.2では、この検証プロセスを回避し、BLOBを再保存するだけで済む可能性があります。このガイドは、署名されていないファームウェアに保存されたBLOB(再保存できない)を検証する場合に特に役立ちます。

余談ですが、この記事の調査中に、TSSSaverの作者である1Conan氏にお話をお伺いしました。彼は私の推測を裏付けてくれました。彼のBlobs Checkerサイトはまだこの問題をチェックしていないため、img4toolと同様に、実際には有効でないBLOBが有効であると報告される可能性があるということです。このガイドを使ってデバイスモデルを確認しない限り、確実な判断はできません。 

しかし、彼はこの問題を認識しており、将来この問題を特定できるように、いつもの速さでBlobs Checkerサイトの更新に取り組んでいるとも述べた。

すぐに気づいてください!

更新:1ConanのBlob Checkerサイトが更新され、選択したデバイスに対してBlobのDeviceClassを確認できるようになりました。このツールを使えばBlobを簡単にチェックでき、IPSWをダウンロードする必要がないという利点もあります。

あなたのブロブは良いブロブですか、それとも芯まで腐っていますか?何かご不明な点がありましたら、下記からお知らせください。

Milawo
Milawo is a contributing author, focusing on sharing the latest news and deep content.