
CVE-2024-56426 भेद्यता का एक PoC।
Exynos 990 Galaxy S20, S20 FE, और Note20 परिवारों के लिए एकीकृत CVE-2024-56426 टूलिंग। यह एक्सप्लॉइट सभी दस मॉडल नामों को स्वीकार करता है और उन्हें छह सत्यापित स्टॉक बूटलोडर परिवारों पर मैप करता है।
[!CAUTION] ट्रैक किया गया key bundle और जनरेट की गई इमेजें fusing-सक्षम हैं। Fusing अपरिवर्तनीय है। किसी key पर fused फ़ोन केवल उस key के साथ संगत इमेजों को ही बूट कर सकता है। गलत मॉडल, रोलबैक रिवीज़न, पैच सेट, या key bundle डिवाइस को fused बूट लूप में छोड़ सकता है। पुनरावृत्ति के दौरान development keys और UFS payload का उपयोग करें। प्रत्येक तैयारी/हस्ताक्षर कमांड में
--no-fuseजोड़ें जब तक कि custom-key fusing स्पष्ट रूप से इच्छित न हो।
चयनित मॉडल BL1 मॉडल ID और exact-model LK पैच TSV दोनों को नियंत्रित करता है। Runtime artifact नियंत्रित करता है कि
preflight द्वारा कौन सा स्टॉक फर्मवेयर और एन्क्रिप्टेड स्प्लिट इमेजें उपयोग की जाती हैं। चार non-5G फ्लैग जो paired 5G runtime
artifacts का उपयोग करते हैं, वे LK के model-ID चेक और model-ID प्रोग्रामिंग पथ को भी पैच करते हैं।
[!IMPORTANT] नीचे सूचीबद्ध स्टॉक फर्मवेयर बिल्ड्स पर, G780F, N980F, N981B, N985F, और N986B EUB में प्रवेश करने के लिए UH-to-BOOTLOADER विधि का उपयोग नहीं कर सकते। उनके LK बूटलोडर
Check_signinfo()को कॉल करते हैं, जो इमेज के एम्बेडेडBinaryName(uh.bin) की BOOTLOADER पार्टीशन के अपेक्षित फ़ाइलनाम (sboot.bin) से तुलना करता है। यह बेमेलBinaryname has changed (uh.bin) -> (sboot.bin)उत्पन्न करता है और फ्लैश को अस्वीकार कर देता है।इन डिवाइसों पर EUB में प्रवेश करने के लिए UH विधि के बजाय उपयुक्त model-specific test points का उपयोग करें।
| Model flag | Runtime artifact | Runtime firmware | Model ID | EVT | Rollback | Tested | UH method / EUB entry |
|---|---|---|---|---|---|---|---|
G780F | G780F | G780FXXSOFYJ1 | 0x154 | 11 | 24 | ❌ | Blocked — use test points |
G980F | G981B | G981BXXSNHYB1 | 0x143 | 11 | 23 | ✅ | No filename block |
G981B | G981B | G981BXXSNHYB1 | 0x13D | 11 | 23 | ❌ | No filename block |
G985F | G986B | G986BXXSNHYB1 | 0x142 | 11 | 23 | ✅ | No filename block |
G986B | G986B | G986BXXSNHYB1 | 0x13C | 11 | 23 | ✅ | No filename block |
G988B | G988B | G988BXXSNHYB1 | 0x13E | 11 | 23 | ❌ | No filename block |
N980F | N981B | N981BXXSIHYH3 | 0x153 | 11 | 18 | ❌ | Blocked — use test points |
N981B | N981B | N981BXXSIHYH3 | 0x14E | 11 | 18 | ❌ | Blocked — use test points |
N985F | N986B | N986BXXSIHYH3 | 0x152 | 11 | 18 | ❌ | Blocked — use test points |
N986B | N986B | N986BXXSIHYH3 | 0x14D | 11 | 18 | ❌ | Blocked — use test points |
सभी दस समर्थित Galaxy S20, S20 FE, और Note20 मॉडल फ्लैग में एक opt-in
CLI-only KVM बूट प्रोफ़ाइल है। Exynos 990 kernel
की एक ब्रांच बनाएं
जिसके नाम में kvm हो, और exact-model कमांड में --kvm जोड़ें, उदाहरण के लिए:
python3 exploit/exploit.py --build-sboot --model G985F --no-fuse --kvm
यह प्रोफ़ाइल LK H-Arx/UH पथ को हटाता है, EL3 से EL2 पर kernel में प्रवेश करने के लिए कहता है, और मेल खाते decrypted/re-encrypted EL3 monitor patch table को लागू करता है। यह stock/tampered bootloader flash modes के लिए अनुपलब्ध रहता है। web control center में जानबूझकर कोई KVM नियंत्रण नहीं है। मेल खाते kernel और WindowsInQemu के साथ, Windows फ़ोन पर QEMU में KVM के माध्यम से पूरी गति से चल सकता है।
प्रत्येक mode को एक क्रमांकित installation sequence के रूप में न मानें। एक लक्ष्य चुनें:
| लक्ष्य | पथ |
|---|---|
| एक signed custom ROM इंस्टॉल करें | सटीक model/setup → EUB → अस्थायी --signed --no-fuse chain → ROM का पूरा signed output flash करें → UFS पहला boot |
| exploit का परीक्षण करें | वैकल्पिक --prepare --no-fuse → EUB → --signed --no-fuse → रोकें |
| boot chain विकसित करें (केवल CLI) | अस्थायी no-fuse परीक्षण → build → उत्पन्न SBoot/TZSW/LDFW flash करें → UFS |
| Dump / recovery | इसके अलग workflow और fuse-state जाँचों का उपयोग करें |
--prepare केवल host पर तैयारी करता है: यह उत्पन्न working images को बदलता है और स्थानीय फ़ाइलों को build और sign करता है,
बिना USB खोले। यह read-only dry-run या अनिवार्य पूर्ववर्ती नहीं है: --signed preflight को दोहराता है।
उत्पन्न तीन-भाग वाला Heimdall command एक boot-chain विकास उपकरण है; यह custom-ROM flash नहीं है।
किसी डिवाइस को छूने से पहले USER_GUIDE.md पढ़ें और इसका मेल खाता workflow चुनें। इसमें पूर्ण-ROM handoff के साथ-साथ unfused, fused, और uncertain-state recovery नियम शामिल हैं।
ब्राउज़र UI का HTTP server Python की मानक लाइब्रेरी का उपयोग करता है और मौजूदा exploit/exploit.py CLI को कॉल करता है।
Key-bundle validation और tool execution के लिए requirements.txt में दिए गए packages भी आवश्यक हैं। Boot-chain विकास और
इसका उत्पन्न तीन-भाग वाला Heimdall command केवल terminal-only उपकरण बने रहते हैं।
इसे repository root से शुरू करें:
python3 exynos990_control_center.py
The launcher 127.0.0.1 से बाइंड होता है, एक नया access token जनरेट करता है, पूरा local URL प्रिंट करता है, और इसे डिफ़ॉल्ट
ब्राउज़र में खोलता है। --no-browser का उपयोग तब करें जब ब्राउज़र को स्वचालित रूप से नहीं खोला जाना चाहिए:
python3 exynos990_control_center.py --no-browser
UI प्रदान करता है:
यह एक CLI-only Exynos 990 KVM notice भी दिखाता है, लेकिन जानबूझकर KVM विकल्प उजागर नहीं करता या किसी
web action को --kvm forward नहीं करता।
USB access उस process की अनुमतियों का पालन करता है जिसने control center लॉन्च किया। इसे शुरू करने से पहले दिए गए udev/driver permissions कॉन्फ़िगर करें। UI privilege credentials का अनुरोध, प्रतिधारण, या forwarding नहीं करता। मुद्रित token URL को निजी रखें और उपयोग के तुरंत बाद server बंद कर दें।
Terminal उपयोगकर्ता exynos990_control_center.py को अनदेखा कर सकते हैं; नीचे प्रलेखित प्रत्येक CLI command अपरिवर्तित और पूरी तरह
समर्थित रहता है।
Python 3.10 या नया आवश्यक है।
Windows 10/11 (native PowerShell):
.\windows\setup.ps1
. .\windows\activate.ps1
python .\exploit\exploit.py --prepare --model G985F --no-fuse