Mac

PrometheusとTSSChecker:知っておくべき最近の開発

PrometheusとTSSChecker:知っておくべき最近の開発

Prometheus ダウングレードツール iOS 9.3.5 から iOS 9.3.2 へ

33c3コンベンション中にPrometheusがリリースされて以来、tihmstarのツールスイートは多忙な時期を迎えています。TSSCheckerとPrometheusは、その間にいくつかの問題が発生し、アップデートも行われました。この記事では、これらのツールの現状についてお知らせします。

リリース後すぐに、実際のアップグレード/ダウングレードプロセスを処理する Prometheus ツールの「futurerestore」セクションでさまざまな問題が報告され始めました。

サーバーエラー

最も多かったのは、ツールの使用時にサーバーエラーが発生したという報告でした。そのため、AppleがTSSサーバーを完全にオフラインにしたという(誤った)主張もありました。サーバーメンテナンスが同時進行していたのか、それともtihmstarツールのコーディングに何らかの原因があったのかは完全には明らかではありませんが、最新のビルドでは修正されているようです。

セグメントフォールトエラー

2番目に多く発生していたのは、「セグメント違反」エラーです。これはmacOSに必要なOpenSSLサポートがないため発生していました。これもPrometheusの最新ビルドで修正されており、ユーザーが経験していたツール使用時のエラーの大部分は解消されています。現在、「futurerestore」ツールの使用が成功したという報告も見られるようになりましたが、この広範なテストにより、さらに深刻な問題が発見されました…

iOS 10.1.1のTouch ID

「futurerestore」は復元時にSEPとベースバンドをダウングレードしません(SEPエクスプロイトがなければダウングレードは不可能です)。代わりに、現在署名されているバージョンに置き換えます。つまり、iOS 10.1.1への復元では、iOS 10.2のSEPとベースバンドが使用されます。2つのバージョンは十分に近いため、問題は発生しないと考えられていましたが、より多くのユーザーが試してみるにつれて、iOS 10.1.1へのダウングレード/アップグレードは「futurerestore」で完了しますが、Touch IDサービスが機能しなくなることが明らかになりました。

Touch ID(およびおそらくApple Payなどの他の関連サービスも、まだ確認されていない)はほとんどの人にとって必須の機能であるため、これはこのツールのほとんどの潜在的なユーザーにとって決定的な要因となることは間違いないだろう。

興味深いことに、Luca Todesco氏はこの問題の回避策は可能だとコメントしていますが、それ以上の情報は得られていません。本当に可能かどうか、彼がすでに作業を開始したかどうか、あるいはそもそも作業を開始するつもりがあるかどうかは、現時点では不明です。tihmstar氏は、この問題には取り組まないと述べています。

Prometheusは全体的には困難なスタートを切りましたが、致命的なエラーが修正されたことで、原理的には確実に機能するツールと言えるようになりました。しかし、Touch IDの状況(バグではなく、ダウングレード方法に固有の制限)を考えると、どれだけのユーザーがPrometheusを使いたがるかは不透明です。

TSSチェッカー

Tihmstar のもう 1 つのツール TSSChecker は、APTickets を Prometheus で使用するために独自の .shsh2 形式で保存するのに使用されますが、最近 2 つの重大な障害も発生しました。

問題1:iPhone 7 / Plusとの非互換性

今週、iPhone 7とiPhone 7 Plusが、ナンスジェネレータの作成方法に他の64ビットデバイスとは異なる手法を用いていることが発見されました。この問題は他のデバイスには影響しませんが、これらの2つのデバイスでジェネレータを用いて保存されたBLOBはすべて無効になります。tihmstarがAppleがナンスとジェネレータの間に採用している異なる関係を解明するまで、TSSCheckerはiPhone 7(+)でジェネレータを用いてBLOBを保存することはできません。

特定のノンス(つまりジェネレーターなし)で保存されたBLOBは影響を受けない可能性がありますが、iP7(+)はPrometheusのノンス衝突検出方式の影響を受けないため、ダウングレードの観点からこの種のBLOBがどの程度役立つかは疑問です。現時点では、TSSCheckerの最新バージョンを使用している限り、32バイトのランダムなノンスを使用することでiP7(+) BLOBを保存できます。これらのBLOBがPrometheusで使用できる可能性は低いですが、tihmstarは、後日別の方法で役立つ可能性があると述べています。

問題2: BuildIdentitiesと無効なBLOB

この問題は説明が少し複雑で、すべての人に同じように影響するわけではありません。iOS 10 の IPSW ファイルの変更により、多くのデバイスで同じ IPSW が使用されるようになりました。つまり、すべてのデバイスに関する情報 (BuildIdentity) が、単一の IPSW 内のビルドマニフェストに保存されることになります。以前はそうではありませんでしたが、TSSChecker は最初に見つかった BuildIdentity を取得し、それに対して APTicket を要求していました。しかし、現在では IPSW に多くの BuildIdentity が存在するため、最初のエントリが実際にはデバイスにとって正しいものではない可能性があります。つまり、残念ながら、間違った BuildIdentity が選択された場合、TSSChecker によって生成された APTicket は無効になります。

TSSCheckerの最新バージョンではこのエラーが修正されており、これらの変更は1Conanのオンライン版ツールであるTSSSaverにも組み込まれています。しかし、既に保存されている.shsh2ファイルについてはどうすればよいでしょうか?それらは有効なのでしょうか?

iOS 10.2のBLOBファイルをお持ちの場合は、それらを削除し、最新バージョンのTSSCheckerまたはTSSSaverで新しいBLOBファイルをリクエストするのが最善です。10.2はまだ署名済みなので、簡単に入手できます。この方法は、特定のファームウェア用に既に保存されているBLOBファイルを検証するよりも、より迅速かつ簡単です。

10.1.1以前のBLOBの場合、ファームウェアが未署名のため、現在新しい.shsh2ファイルをリクエストすることはできません。この場合、BLOBが幸運にも初回で正しいBuildIdentityを取得し、結果として有効なAPTicketを取得できたものであることを祈るしかありません。これはtihmstarの「img4tool」を使ってテストできます。手順は彼のブログに記載されていますが、手順がかなり複雑なので、近いうちに解説を掲載します。

今のところ、iOS 10.2用に.shsh2 blobを保存していた方は、最新のTSSChecker/TSSSaverで再保存することをお勧めします。古いblobについては、確実に問題がないと判断されるまで削除しないでください。念のため、私自身も確認してみたところ、iPhone 6とiPhone SEのblobはどちらも正常でしたが、iPhone 5sのblobは無効でした。

再保存と検証、頑張ってください!既存のBLOBを「img4tool」で検証する場合は、どのデバイスのBLOBが正常か、あるいは異常かを教えてください。特定のデバイスでのみ問題が発生するのか、それとももっと複雑なのかを確認することが重要です。同じ問題が再発しないように、必ずtihmstarのツールの最新バージョンをダウンロードしてください。

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