
PoC уязвимости CVE-2024-56426.
Унифицированный инструментарий CVE-2024-56426 для семейств Exynos 990 Galaxy S20, S20 FE и Note20. Эксплойт принимает все десять названий моделей и сопоставляет их с шестью проверенными семействами стоковых загрузчиков.
[!CAUTION] Отслеживаемый набор ключей и сгенерированные образы поддерживают прошивку (fusing). Прошивка необратима. Телефон, прошитый под определённый ключ, может загружать только образы, совместимые с этим ключом. Неверная модель, ревизия отката, набор патчей или набор ключей могут оставить устройство в цикле загрузки с прошитым ключом. Используйте ключи разработки и полезную нагрузку UFS во время итераций. Добавляйте
--no-fuseк каждой команде подготовки/подписи, если только прошивка пользовательским ключом не является явно намеренной.
Выбранная модель управляет как ID модели BL1, так и TSV патча LK для конкретной модели. Runtime artifact управляет тем, какая
стоковая прошивка и зашифрованные разделённые образы используются при предварительной проверке. Четыре флага без 5G, использующие парные 5G runtime
артефакты, также патчат проверку ID модели в LK и путь программирования ID модели.
[!IMPORTANT] На перечисленных ниже сборках стоковой прошивки G780F, N980F, N981B, N985F и N986B не могут использовать метод UH-to-BOOTLOADER для входа в EUB. Их загрузчики LK вызывают
Check_signinfo(), который сравнивает встроенное в образBinaryName(uh.bin) с ожидаемым именем файла раздела BOOTLOADER (sboot.bin). Несовпадение приводит кBinaryname has changed (uh.bin) -> (sboot.bin)и отклонению прошивки.Используйте соответствующие тестовые точки для конкретной модели, чтобы войти в EUB на этих устройствах, вместо метода UH.
| Флаг модели | Runtime-артефакт | Runtime-прошивка | ID модели | EVT | Откат | Проверено | Метод UH / вход в EUB |
|---|---|---|---|---|---|---|---|
G780F | G780F | G780FXXSOFYJ1 | 0x154 | 11 | 24 | ❌ | Заблокировано — используйте тестовые точки |
G980F | G981B | G981BXXSNHYB1 | 0x143 | 11 | 23 | ✅ | Без блокировки по имени файла |
G981B | G981B | G981BXXSNHYB1 | 0x13D | 11 | 23 | ❌ | Без блокировки по имени файла |
G985F | G986B | G986BXXSNHYB1 | 0x142 | 11 | 23 | ✅ | Без блокировки по имени файла |
G986B | G986B | G986BXXSNHYB1 | 0x13C | 11 | 23 | ✅ | Без блокировки по имени файла |
G988B | G988B | G988BXXSNHYB1 | 0x13E | 11 | 23 | ❌ | Без блокировки по имени файла |
N980F | N981B | N981BXXSIHYH3 | 0x153 | 11 | 18 | ❌ | Заблокировано — используйте тестовые точки |
N981B | N981B | N981BXXSIHYH3 | 0x14E | 11 | 18 | ❌ | Заблокировано — используйте тестовые точки |
N985F | N986B | N986BXXSIHYH3 | 0x152 | 11 | 18 | ❌ | Заблокировано — используйте тестовые точки |
N986B | N986B | N986BXXSIHYH3 | 0x14D | 11 | 18 | ❌ | Заблокировано — используйте тестовые точки |
Все десять поддерживаемых флагов моделей Galaxy S20, S20 FE и Note20 имеют опциональный
профиль загрузки KVM только через CLI. Соберите ветку
ядра Exynos 990,
имя которой содержит kvm, и добавьте --kvm к команде для конкретной модели, например:
python3 exploit/exploit.py --build-sboot --model G985F --no-fuse --kvm
Этот профиль удаляет путь LK H-Arx/UH, просит EL3 войти в ядро на уровне EL2 и применяет соответствующую таблицу патчей расшифрованного/повторно зашифрованного монитора EL3. Он остаётся недоступным для режимов прошивки стокового/изменённого загрузчика. Веб-центр управления намеренно не имеет управления KVM. С соответствующим ядром и WindowsInQemu Windows может работать в QEMU на телефоне на полной скорости через KVM.
Не рассматривайте каждый режим как одну нумерованную последовательность установки. Выберите цель:
| Цель | Путь |
|---|---|
| Установить подписанную кастомную ROM | Точная модель/настройка → EUB → временная цепочка --signed --no-fuse → прошивка полного подписанного вывода ROM → первая загрузка UFS |
| Протестировать эксплойт | Опционально --prepare --no-fuse → EUB → --signed --no-fuse → стоп |
| Разработать цепочку загрузки (только CLI) | Временный тест без fuse → сборка → прошивка сгенерированных SBoot/TZSW/LDFW → UFS |
| Дамп / восстановление | Используйте его отдельный рабочий процесс и проверки состояния fuse |
--prepare выполняет подготовку только на хосте: он заменяет сгенерированные рабочие образы и собирает и подписывает локальные файлы,
не открывая USB. Это не read-only пробный запуск и не обязательный предшественник: --signed повторяет предполётную проверку.
Сгенерированная трёхчастная команда Heimdall — это инструмент разработки цепочки загрузки; это не прошивка кастомной ROM.
Прочитайте USER_GUIDE.md и выберите соответствующий рабочий процесс, прежде чем трогать устройство. Он включает передачу полной ROM, а также правила восстановления для состояний без fuse, с fuse и неопределённого состояния.
HTTP-сервер браузерного UI использует стандартную библиотеку Python и вызывает существующий CLI exploit/exploit.py.
Проверка связки ключей и выполнение инструментов также требуют пакетов из requirements.txt. Разработка цепочки загрузки и
её сгенерированная трёхчастная команда Heimdall остаются инструментами только для терминала.
Запустите его из корня репозитория:
python3 exynos990_control_center.py
Лаунчер привязывается к 127.0.0.1, генерирует новый токен доступа, выводит полный локальный URL и открывает его в браузере по умолчанию. Используйте --no-browser, если браузер не должен открываться автоматически:
python3 exynos990_control_center.py --no-browser
Интерфейс предоставляет:
Он также показывает уведомление о KVM для Exynos 990 только в CLI, но намеренно не предоставляет опцию KVM и не передаёт --kvm ни в
одно веб-действие.