
baton drop (CVE-2022-21894) の armv7 (MSM8960) 向け実装
policyhax(別名golden key)の修正がQualcommシステムで実際に動作することを踏まえ、baton dropをMSM8960に移植するため、動作はするが部品取りとして販売されていたDell XPS 10を入手しました。
結果は以下の通りです。
image.7zをGPTのfat32形式でフォーマットしたUSBデバイスに展開し、署名なしEFIブートアプリケーションを\boot.efiにコピーして、MSM8960 Windows RTデバイスで起動してください。お楽しみください。
すべてのペイロードソース(stage2が必要とするMS CRTのdivide.objを含む)が含まれています。ビルドには、MSVCクロスコンパイラのコマンドプロンプトを使用してください。自己署名証明書を作成するにはmake_cert.bat、stage1をビルドするにはbuild_mcupdate.bat、stage2をビルドするにはbuild_stage2.bat、ハローワールドのboot.efiをビルドするにはbuild_boot.batを実行してください。
0xA000_0000です。baton dropをUMCI脱獄にだけ使いたい場合は、これを後で設定できるでしょう(baton dropを実行すると、詳細オプションメニューにnointegritychecksオプションが表示されます)。win8.xでは、エクスプロイト時にosdeviceがBitLocker暗号化ボリュームであり、キーフラグのbit 0が設定されている必要があることに注意してください(payload.vhdのように手動で設定できますが、通常は整合性検証のためにセキュアブートを有効にしたTPMでシールされたVMKに対して設定されます)。
0xC000_0000へのカットオフ設定は、baton dropがペイロードを読み込むには機能しますが、デュアルブート環境ではNTが起動できなくなることに注意してください。hal.dllは、mcupdate.dllをインポートに追加するようパッチが当てられ、自己署名されています。mcupdate.dllはefiesp:\stage2.dllとefiesp:\boot.efiを読み込み、stage2が必要とするすべてのポインタを取得して、stage2のエントリポイントを呼び出します。BlpArchSwitchContextを呼び出します