Trollstoreは、開いているIPAを永久にインストールできる刑務所に入れられたアプリです。
IOSが複数の署名者がいるバイナリのコード署名を正しく検証しないAMFI/Cortrustのバグのために機能します。
サポートバージョン:14.0ベータ2-16.6.1、16.7 RC(20H18)、17.0
Trollstoreのインストールについては、iOS.CFW.GUIDEのガイドを参照してください
16.7.x(16.7 RCを除く)と17.0.1+は決してサポートされません(3番目のCortrustバグが発見されない限り、それはほとんどありません)。
新しいTrollstoreアップデートが利用可能になると、インストールするボタンがTrollstoreの設定の上部に表示されます。ボタンをタップした後、Trollstoreは更新を自動的にダウンロードし、インストールし、再スプリングします。
または(何か問題が発生した場合)、Trollstore.tarファイルをリリースの下にダウンロードして、Trollstoreで開くことができます。TrollstoreはアップデートとRespringをインストールします。
Trollstoreからインストールされているアプリは、Trollstore自体からのみアンインストールでき、アプリをタップするか、「アプリ」タブの左にスワイプして削除できます。
Trollstoreで使用されているCortrustバグは、「システム」アプリをインストールするのに十分なみです。これは、フロントボードにユーザーアプリが起動する前に追加のセキュリティチェック(LIBMIS)があるためです。残念ながら、アイコンキャッシュリロードを介してとどまる新しい「システム」アプリをインストールすることはできません。したがって、iOSがアイコンキャッシュをリロードすると、Trollstore自体を含むすべてのTrollstoreインストールされたアプリは「ユーザー」状態に戻り、起動しなくなります。
これを回避する唯一の方法は、Persistenceヘルパーをシステムアプリにインストールすることです。このヘルパーを使用して、Trollstoreとそのインストールアプリを「システム」として再登録して、再び起動可能になるようにすることができます。設定。
Jailbroken iOS 14では、Trollhelperがインストールに使用される場合、それは /アプリケーションにあり、アイコンキャッシュリロードを介して「システム」アプリとして持続するため、TrollhelperはiOS 14の永続ヘルパーとして使用されます。
バージョン1.3の時点で、TrollstoreはシステムURLスキーム「Apple-Magganifier」に置き換えられます(これは、「脱獄」検出が行われます。Trollstoreには一意のURLスキームがある場合、可能な限りTrollstoreを検出できません)。このURLスキームは、ブラウザからのアプリケーションをインストールするために使用するか、アプリ自体(2.0.12以降のみ)からJITを有効にするために、フォーマットは次のとおりです。
apple-magnifier://install?url=<URL_to_IPA>
apple-magnifier://enable-jit?bundle-id=<Bundle_ID>
Trollstore(1.3+)がインストールされていないデバイスでは、Magnifierアプリを開くだけです。
IPA内のバイナリは、arbitrary意的な資格を持ち、それらをldidと希望する権利( ldid -S<path/to/entitlements.plist> <path/to/binary>
)で偽装することができます。インストール時の偽のルート証明書。これにより、多くの可能性が得られますが、その一部を以下に説明します。
A12+のiOS 15は、署名されていないコードの実行に関連する次の3つの資格を禁止しました。これらはPPLバイパスなしで取得することは不可能です。
com.apple.private.cs.debugger
dynamic-codesigning
com.apple.private.skip-library-validation
アプリは、次の資格のいずれかを使用してUnsandboxedを実行できます。
< key >com.apple.private.security.container-required</ key >
< false />
< key >com.apple.private.security.no-container</ key >
< true />
< key >com.apple.private.security.no-sandbox</ key >
< true />
3つ目は、アプリケーション用のサンドボックスコンテナが必要な場合に推奨されます。
また、これらが適切に動作するためには、プラットフォームアプリケーションの資格が必要になる場合があります。
< key >platform-application</ key >
< true />
プラットフォーム適用資格は、サンドボックスの一部がよりタイトになるなどの副作用を引き起こすため、それを回避するために追加のプライベート資格が必要になる場合があることに注意してください。 (たとえば、その後、アクセスするiokitユーザークライアントクラスごとに例外資格が必要です)。
com.apple.private.security.no-sandbox
とplatform-application
を備えたアプリが独自のデータコンテナにアクセスできるようにするには、追加の資格が必要になる場合があります。
< key >com.apple.private.security.storage.AppDataContainers</ key >
< true />
アプリがサンドボックス化されていない場合は、posix_spawnを使用して他のバイナリを生成することができます。また、次の権利を使用してバイナリをルートとして生成することもできます。
< key >com.apple.private.persona-mgmt</ key >
< true />
また、アプリバンドルに独自のバイナリを追加することもできます。
その後、tsutil.mのSpawnRoot関数を使用して、ルートとしてバイナリをスポーンすることができます。
TF_PLATFORM
/ CS_PLATFORMIZED
)CS_PLATFORMIZED
が必要です)TF_PLATFORM
、ユーザーランドPACバイパス、PMAPトラストレベルバイパスが必要です)Trollstoreをコンパイルするには、TheOSがインストールされていることを確認してください。追加の醸造物がインストールされ、brewからのLibarchiveをインストールします。
@alfiecg_dev -TrollstoreがPatchDiffingを使用できるようにするCoretrustのバグを見つけ、バイパスの自動化に取り組みました。
Google Threat Analysis Group -Wilds the Wild Spywareチェーンの一部としてCortrustのバグを見つけ、Appleに報告しました。
@linushenze -Trollhelperotaを介してiOS 14-15.6.1にTrollstoreをインストールするために使用されるインストールされたバイパスと、Trollstore 1.0で使用されている元のCoretrustバグが見つかりました。
FUGU15プレゼンテーション
より多くの情報を含む最初のCoretrustバグに関する書き込み。