
Zertifikat-Exploit für MTK-Geräte. Es gibt einen Logikfehler im MTK-Zertifikatsprüfungsprozess. Ähnlich zu CVE-2023-20696.
Cert-Exploit für MTK-Geräte. Es gibt einen logischen Fehler im MTK-Zertifikatsprüfungsprozess. Ähnlich wie CVE-2023-20696. Möglicherweise im Juni gepatcht.
Dieses Projekt dient nur zu Forschungszwecken. Stelle sicher, dass du autorisiert bist, bevor du es verwendest. Nicht für illegale Zwecke erlaubt. Es ist nicht erlaubt, diesen Exploit für kostenpflichtige Dienste zu verwenden.
Bei MTK-Geräten überprüft der Preloader bl2_ext/lk/atf und springt dann dorthin.
Diese Images sind mit ASN.1-Zertifikaten signiert.
Aber es gibt einen logischen Fehler im ASN.1-Parsing-Prozess.
Bei alten V5/V6-Geräten wird der Zertifikatsinhalt über bypass_mode 1 identifiziert.
In diesem Modus wird jedes Objekt betreten.
Daher können wir ein gefälschtes Zertifikat mit einem Objekt vom Typ 0x3 (BIT STRING) erstellen.
Das gefälschte Zertifikat ist unverändert. Dadurch kann es die Validierung bestehen.
Das echte Zertifikat befindet sich unter dem gefälschten Zertifikat. Und wir können den Image-Hash und den Image-Hdr-Hash am Anfang des echten Zertifikats platzieren.
Bei neuen V6-Geräten wird der Zertifikatsinhalt über bypass_mode 0 identifiziert.
In diesem Modus wird jedes Objekt außer 0x30 übersprungen.
Daher können wir den Image-Hash und den Image-Hdr-Hash am Anfang des Zertifikats platzieren.
Dann bleiben die anderen Dinge unverändert.
Dann können wir den Image-Inhalt ändern.
Damit erlangen wir die Kontrolle über EL3.
Du musst BL2_EXT patchen, um die Überprüfung von lk oder atf zu entfernen.
Und dann LK patchen, um die Überprüfung von lk_main_dtb zu entfernen (andernfalls stürzt es ab).
Außerdem musst du LK patchen, um alle Bootloader-Sperren zu entfernen, einschließlich set_lock_state, um ein erneutes Sperren oder Abstürze zu vermeiden.
python parse-part-img.py [the original image file] --split -o out
Dann kannst du die einzelnen Images sehen (z. B. lk, bl2_ext, lk_main_dtb, aee)
python parse_preloader.py [preloader image]
Über dieses Skript erhältst du die Load-Adresse von lk/bl2_ext
Nach dem Patchen Für neue v6-Geräte python sign_mtk_cert.py [single image file] -w Für alte v6-Geräte/v5-Geräte python sign_mtk_cert.py [single image file] -w --legacy
Füge dann das neue signierte Image wieder ein.
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]