
MTKデバイス向けの証明書エクスプロイト。MTKの証明書検証プロセスに論理的な欠陥があります。CVE-2023-20696に類似。
MTKデバイス向けの証明書エクスプロイト。MTKの証明書検証プロセスに論理上の欠陥があります。CVE-2023-20696と類似しています。 パッチ済み。 CVE-2023-20696 CVE-2025-20730
アーキテクチャ検出に関する問題がいくつかあります。暇なときに修正する必要があります。または誰かがプルリクエストを送ることもできます。 これはvibe-codedバージョンであり、後で書き直します。しかし今は使用可能です。
このプロジェクトは研究目的のみに使用されます。 使用前に必ず許可を得てください。 違法な使用は禁止されています。 このエクスプロイトを有料サービス提供に使用することは許可されていません。
MTKデバイスでは、preloaderがbl2_ext/lk/atfを検証してからジャンプします。
これらのイメージはASN.1証明書で署名されています。
しかし、ASN.1パース処理に論理上の欠陥があります。
古いV5/V6デバイスでは、証明書コンテンツはbypass_mode 1で識別されます。
このモードでは、すべてのオブジェクトがステップインされます。
そのため、0x3(ビットストリング)オブジェクトを持つ偽の証明書を作成できます。
偽の証明書は変更されていません。そのため、検証を通過できます。
本物の証明書は偽の証明書の下にあります。そして、画像ハッシュと画像ヘッダーハッシュを本物の証明書の先頭に配置できます。
新しいV6デバイスでは、証明書コンテンツはbypass_mode 0で識別されます。
このモードでは、0x30を除くすべてのオブジェクトがスキップされます。
そのため、画像ハッシュと画像ヘッダーハッシュを証明書の先頭に配置できます。
その後、他の部分は変更しないままにします。
その後、画像コンテンツを変更できます。
これによりEL3制御を得られます。
BL2_EXTにパッチを当てて、lkまたはatfまたはgzの検証を削除できます。
そして、LKにパッチを当ててlk_main_dtbの検証を削除します(そうしないとクラッシュします)。
また、LKにパッチを当てて、set_lock_stateを含むすべてのブートローダーロックを削除して、再ロックやクラッシュを回避する必要があります。
python parse-part-img.py [the original image file] --split -o out
その後、個別のイメージ(lk、bl2_ext、lk_main_dtb、aeeなど)を確認できます。
パッチ適用後 新しいv6デバイスの場合 python sign_mtk_cert.py [single image file] -w 古いv6デバイス/v5デバイスの場合 python sign_mtk_cert.py [single image file] -w --legacy
その後、新しく署名したイメージを戻します。
python build-part-img.py replace [original image file] --name [the single image name you want to insert back] -- file [the new signed single image]
