Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ghostlock-app — # Приложение GhostLock с запуском в один клик (CVE-2026-43499) | Kitploit
Инструменты/GitHubGitHub/yukonga/ghostlock-app
Безопасность AndroidПовышение привилегийФреймворки для эксплойтовЭксплуатацияОбратная инженерияМобильная безопасностьАнализ Бинарных Файлов
GitHubyukonga/ghostlock-app

ghostlock-app

# Приложение GhostLock с запуском в один клик (CVE-2026-43499)

Репозиторий
1.4k370555 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

GhostLock-App

中文: README_ZH.md

Документация

  • Руководство по портированию профилей ядра — добавление поддержки нового ядра. GhostLock сопоставляет ядра по точному uname -r и отклоняет неподдерживаемые сборки, отображая статус в верхней части. Встроенные профили находятся в app/src/main/assets/kernel_profiles/: один файл HOCON на релиз, index.conf в качестве индекса времени выполнения и шаблоны семейств версий <major.minor>-template.conf.
  • Поддерживаемые устройства — список встроенных ядер.
  • Общие настройки выполнения по умолчанию — каждое поле настройки выполнения, его значение по умолчанию и обоснование.
  • Схема профиля — полная структура профиля и поток данных.
  • Добавление компонента — руководство разработчика по новому нативному middleware / бэкенду / фронтенду (на китайском).

Полный процесс портирования на устройство, ссылки на шаблоны семейств ядер и обоснование настроек см. в Руководстве по портированию профилей ядра.

Строки, явно помеченные Требуется Shizuku, выполняются через shell UserService. Запустите Shizuku через ADB и нажмите на карточку статуса, чтобы предоставить доступ; все остальные строки используют обычный путь выполнения приложения.

Быстрый старт

Откройте GhostLock и нажмите Run. KernelSU (me.weishu.kernelsu), ReSukiSU (com.resukisu.resukisu) или KowSU (com.kowx712.supermanager) предоставляют ksud для загрузки модулей; без него W1/W2 всё равно предоставляют uid 0, но модуль не загружается.

Цепочка выполнения представляет собой конвейер из трёх компонентов: фронтенд (запуск/передача root_child), бэкенд (примитив futex CVE-2026-43499) и маршрут middleware. Каталогизированные комбинации создаются во время сборки; разрешённый профиль выбирает, какая из них будет запущена. Маршрут гоняет два ядра: на ядрах 6.6/6.12 с tree-waiter главный поток нагружает select, пока поток-потребитель возмущает приоритет waiter'а; на ядрах 6.1 с compact-waiter он прогоняет getsockopt(TCP_ZEROCOPY_RECEIVE) через страницу с пробитым отверстием; ядра 5.15 используют multicast waiter. Пара CPU также берётся из разрешённого профиля.

Отладка из командной строки

В adb/shell нет фильтра seccomp, поэтому W3 пропускается — удобно для быстрой проверки:

make -C src ghostlock
./gradlew exportKernelProfiles
adb push build/native/ghostlock /data/local/tmp/ghostlock
adb push build/kernel-profiles/<release>.bin /data/local/tmp/profile.bin
adb shell chmod 755 /data/local/tmp/ghostlock
adb shell /data/local/tmp/ghostlock --load-prebuilt-profile /data/local/tmp/profile.bin

Извлечение смещений

tools/extract_rs извлекает смещения из boot.img (плюс опциональный xbl_config.img), полного OTA ZIP или URL http(s), указывающего на один из них. kallsyms берутся из --kallsyms или восстанавливаются из встроенной таблицы образа. pselect_waiter_shift и off_slide_loggers_0_1 выводятся встроенным дизассемблером arm64. Образы MediaTek не имеют xbl_config.img и обычно не имеют BTF: физический адрес загрузки выводится из kallsyms _text (переопределяется с помощью --phys).

Push-Location tools/extract_rs
cargo build --release
Pop-Location
build/extract/release/ghostlock-extract.exe boot.img --xbl-config xbl_config.img --format conf --out profile.conf
build/extract/release/ghostlock-extract.exe OTA.zip --format conf --out profile.conf

--format conf — это вывод экстрактора: уплощённый, самодостаточный профиль (без строк include, общие константы credential/KernelSnitch для 6.x встроены, маршрут выбирается на основе данных --analysis, если только --route его не переопределяет). Экстрактор выдаёт каждое поле, которое образ действительно даёт, и опускает остальные; он никогда не заполняет пробелы догадками из соседнего семейства ядер (непроверенное семейство 6.6, значение по умолчанию -2, константы multicast для 5.15 или значение phys по умолчанию). Каждый вывод — это непроверенный кандидат: импортируемый и разбираемый, с отсутствующими или недействительными полями, блокируемыми предварительной проверкой приложения перед выполнением, поэтому успешный запуск никогда не подразумевает поддержку устройства. На 5.x он также выводит исправление ссылки на credential из init_cred и геометрию multicast из BTF (см. docs/analysis/extractor-5x-derivation-plan.md). --format json остаётся для пути импорта v1. Чтобы добавить встроенный профиль, заполните и проверьте соответствующий шаблон семейства версий, сохраните его как отдельный профиль .conf и добавьте его в kernel_profiles/index.conf. Старый реестр C offsets.h устарел и удалён.

MediaTek

Образы MediaTek не имеют xbl_config.img и обычно не имеют встроенного BTF, поэтому экстрактор не может вывести два физических адреса (kernel_phys_load, kernel_phys_offset) из образа и оставляет их null. Во время выполнения происходит откат к формуле SoC, которая даёт сбой на W1 на MediaTek. Заполните оба, запустив отдельный экстрактор tools/mtk-phys/ на рутованном устройстве (он читает /proc/iomem), и вставьте значения в расширенные переопределения приложения. См. MEDIATEK.md.

Предварительная проверка

Экстрактор дизассемблирует remove_waiter() перед извлечением смещений. Ядра с исправлением отклоняются с кодом выхода 6; продолжают только уязвимые ядра.

Анализ на устройстве

Полный OTA можно проанализировать целиком на телефоне: boot плюс xbl_config извлекаются автоматически. Передайте --work-dir — каталог, доступный для записи приложению, — при запуске внутри песочницы приложения. Кросс-компиляция и отправка:

rustup target add aarch64-linux-android
$ndk = "$env:ANDROID_HOME\ndk\<version>\toolchains\llvm\prebuilt\windows-x86_64\bin"
$env:CC_aarch64_linux_android = "$ndk\aarch64-linux-android35-clang.cmd"
$env:AR_aarch64_linux_android = "$ndk\llvm-ar.exe"
$env:CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER = $env:CC_aarch64_linux_android
Push-Location tools/extract_rs
cargo build --release --target aarch64-linux-android
Pop-Location
adb push build/extract/aarch64-linux-android/release/ghostlock-extract /data/local/tmp/
adb shell /data/local/tmp/ghostlock-extract /sdcard/OTA.zip

Импорт смещений без пересборки приложения

Новым ядрам больше не нужна пересборка приложения: нажмите Import offsets.conf (HOCON) и выберите уплощённый .conf экстрактора, или используйте Import offsets.json (v1) для более старого отчёта JSON. v1 JSON конвертируется внутри приложения, поэтому ничего не нужно отправлять на устройство: нативный код всегда стартует с документа GLK1, который приложение отправляет на stdin, и сопоставляет текущий uname -r с разрешённым профилем перед отклонением ядра. Импорты объединяются между файлами; при уже сохранённом релизе запрашивается подтверждение перед перезаписью.

Приложение также может само сгенерировать профиль — Parse OTA link (URL полного OTA ZIP) и Parse image (boot.img + опциональный xbl_config.img) запускают экстрактор внутри процесса и при успехе записывают уплощённый .conf в каталог данных приложения:

Скачать инструмент