
Ein PoC der Schwachstelle CVE-2024-56426.
Einheitliches CVE-2024-56426-Tooling für die Exynos 990 Galaxy S20-, S20 FE- und Note20-Familien. Der Exploit akzeptiert alle zehn Modellnamen und ordnet sie sechs verifizierten Stock-Bootloader-Familien zu.
[!CAUTION] Das mitgelieferte Key-Bundle und die generierten Images sind fusing-fähig. Fusing ist irreversibel. Ein Telefon, das auf einen Key gefused wurde, kann nur Images booten, die mit diesem Key kompatibel sind. Ein falsches Modell, eine falsche Rollback-Revision, ein falsches Patch-Set oder ein falsches Key-Bundle kann das Gerät in einer gefusten Boot-Schleife zurücklassen. Verwende Entwicklungs-Keys und die UFS-Payload, während du iterierst. Füge
--no-fusezu jedem Vorbereitungs-/Signierungsbefehl hinzu, es sei denn, Custom-Key-Fusing ist ausdrücklich beabsichtigt.
Das ausgewählte Modell steuert sowohl die BL1-Modell-ID als auch die exakt-modellspezifische LK-Patch-TSV. Runtime artifact steuert, welche
Stock-Firmware und verschlüsselten Split-Images vom Preflight verwendet werden. Die vier Nicht-5G-Flags, die gepaarte 5G-Runtime-
Artefakte verwenden, patchen außerdem LKs Modell-ID-Prüfung und den Modell-ID-Programmierpfad.
[!IMPORTANT] Bei den unten aufgeführten Stock-Firmware-Builds können G780F, N980F, N981B, N985F und N986B nicht die UH-zu-BOOTLOADER- Methode verwenden, um EUB zu betreten. Ihre LK-Bootloader rufen
Check_signinfo()auf, was den im Image eingebettetenBinaryName(uh.bin) mit dem erwarteten Dateinamen der BOOTLOADER-Partition (sboot.bin) vergleicht. Die Nichtübereinstimmung erzeugtBinaryname has changed (uh.bin) -> (sboot.bin)und lehnt den Flash ab.Verwende stattdessen die passenden modellspezifischen Testpunkte, um EUB auf diesen Geräten zu betreten, anstelle der UH-Methode.
| Modell-Flag | Runtime-Artefakt | Runtime-Firmware | Modell-ID | EVT | Rollback | Getestet | UH-Methode / EUB-Eintritt |
|---|---|---|---|---|---|---|---|
G780F | G780F | G780FXXSOFYJ1 | 0x154 | 11 | 24 | ❌ | Blockiert — Testpunkte verwenden |
G980F | G981B | G981BXXSNHYB1 | 0x143 | 11 | 23 | ✅ | Kein Dateinamen-Block |
G981B | G981B | G981BXXSNHYB1 | 0x13D | 11 | 23 | ❌ | Kein Dateinamen-Block |
G985F | G986B | G986BXXSNHYB1 | 0x142 | 11 | 23 | ✅ | Kein Dateinamen-Block |
G986B | G986B | G986BXXSNHYB1 | 0x13C | 11 | 23 | ✅ | Kein Dateinamen-Block |
G988B | G988B | G988BXXSNHYB1 | 0x13E | 11 | 23 | ❌ | Kein Dateinamen-Block |
N980F | N981B | N981BXXSIHYH3 | 0x153 | 11 | 18 | ❌ | Blockiert — Testpunkte verwenden |
N981B | N981B | N981BXXSIHYH3 | 0x14E | 11 | 18 | ❌ | Blockiert — Testpunkte verwenden |
N985F | N986B | N986BXXSIHYH3 | 0x152 | 11 | 18 | ❌ | Blockiert — Testpunkte verwenden |
N986B | N986B | N986BXXSIHYH3 | 0x14D | 11 | 18 | ❌ | Blockiert — Testpunkte verwenden |
Alle zehn unterstützten Galaxy S20-, S20 FE- und Note20-Modell-Flags haben ein optionales
CLI-only-KVM-Boot-Profil. Baue einen Branch
des Exynos 990 Kernel,
dessen Name kvm enthält, und füge --kvm zum exakt-modellspezifischen Befehl hinzu, zum Beispiel:
python3 exploit/exploit.py --build-sboot --model G985F --no-fuse --kvm
Dieses Profil entfernt den LK H-Arx/UH-Pfad, fordert EL3 auf, den Kernel bei EL2 zu betreten, und wendet die passende entschlüsselte/neu-verschlüsselte EL3-Monitor-Patch-Tabelle an. Es bleibt für Stock-/manipulierte Bootloader- Flash-Modi nicht verfügbar. Das Web-Kontrollzentrum hat absichtlich keine KVM-Steuerung. Mit dem passenden Kernel und WindowsInQemu kann Windows in QEMU auf dem Telefon mit voller Geschwindigkeit über KVM ausgeführt werden.
Behandle nicht jeden Modus als eine nummerierte Installationssequenz. Wähle ein Ziel:
| Ziel | Pfad |
|---|---|
| Eine signierte Custom-ROM installieren | Exaktes Modell/Setup → EUB → temporäre --signed --no-fuse-Kette → die vollständige signierte Ausgabe der ROM flashen → UFS-Erststart |
| Den Exploit testen | Optional --prepare --no-fuse → EUB → --signed --no-fuse → stoppen |
| Die Boot-Kette entwickeln (nur CLI) | Temporärer No-Fuse-Test → bauen → generierte SBoot/TZSW/LDFW flashen → UFS |
| Dump / Wiederherstellung | Den separaten Workflow und die Fuse-State-Prüfungen verwenden |
--prepare führt eine reine Host-Vorbereitung durch: Es ersetzt generierte Arbeits-Images und baut und signiert lokale Dateien,
ohne USB zu öffnen. Es ist kein schreibgeschützter Dry-Run oder ein erforderlicher Vorgänger: --signed wiederholt den Preflight.
Der generierte dreiteilige Heimdall-Befehl ist ein Boot-Ketten-Entwicklungswerkzeug; er ist kein Custom-ROM-Flash.
Lies USER_GUIDE.md und wähle den passenden Workflow, bevor du ein Gerät anfasst. Er enthält die Complete-ROM-Übergabe sowie die Regeln zur Wiederherstellung im unfused, fused und unsicheren Zustand.
Der HTTP-Server der Browser-UI verwendet Pythons Standardbibliothek und ruft die vorhandene exploit/exploit.py-CLI auf.
Die Validierung von Key-Bundles und die Ausführung von Tools erfordern außerdem die Pakete in requirements.txt. Die Boot-Ketten-Entwicklung und
ihr generierter dreiteiliger Heimdall-Befehl bleiben reine Terminal-Tools.
Starte sie aus dem Repository-Stammverzeichnis:
python3 exynos990_control_center.py
Der Launcher bindet an 127.0.0.1, generiert ein neues Zugriffstoken, gibt die vollständige lokale URL aus und öffnet sie im Standardbrowser. Verwenden Sie --no-browser, wenn ein Browser nicht automatisch geöffnet werden soll:
python3 exynos990_control_center.py --no-browser
Die UI bietet:
Außerdem wird ein CLI-only-Hinweis zu Exynos 990 KVM angezeigt, aber bewusst keine KVM-Option bereitgestellt und --kvm an keine
Web-Aktion weitergeleitet.