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

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

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

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

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

Категории

Все категории
Loading categories
UnPlus — CVE-2026-43499 рут-эксплойт при каждой загрузке — основная логика (arm64 Android GKI 6.6) | Kitploit
Инструменты/GitHubGitHub/no-22-github/unplus
Безопасность AndroidПовышение привилегийЭксплуатацияТестирование на ПроникновениеЭксплуатация Бинарных Файлов
GitHubno-22-github/unplus

UnPlus

CVE-2026-43499 рут-эксплойт при каждой загрузке — основная логика (arm64 Android GKI 6.6)

Репозиторий
2326 дней назадЕщё не проверено

Популярное

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

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

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

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

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

unplus

UnPlus

CVE-2026-43499 (Futex PI UAF) — основной логический код эксплойта произвольной записи в памяти ядра, используемый для обхода SELinux и получения root.

Этот репозиторий содержит только исходный код основной логики эксплойта (src/) и упаковщик в один бинарник (wrapper/). src/target.h — это шаблон, который нужно заполнить параметрами вашего устройства для запуска (см. «Адаптация под устройство» ниже).

Сборка

Основная логика (src/)

root@kitploit:~
# 环境要求: Android NDK r29+ (API 35, aarch64)
export ANDROID_NDK_ROOT=/path/to/android-ndk

# 构建纯逻辑产物
make
# → build/unplus            (exploit 二进制)
# → build/unplus_preload.so (preload 库)

Результат — два ELF-файла, без встраивания каких-либо внешних бинарников.

Полная упаковка в один бинарник (wrapper/)

Чтобы упаковать эксплойт и внешнюю нагрузку (magiskpolicy / ksud / kernelsu.ko) в один запускаемый бинарник, вам нужно иметь эти внешние нагрузки и использовать wrapper/:

root@kitploit:~
# 1. 先构建 src/ 产物(见上)
# 2. 生成 payload 数据(payload_data.h 不在仓库,由用户自生成,含外部二进制字节流)
cd wrapper
python3 embed_payloads.py \
  --unplus ../build/unplus \
  --preload ../build/unplus_preload.so \
  --magiskpolicy <path> \
  --ksud <path> \
  --kernelsu <path> \
  --out payload/
# 3. 编译单二进制
make    # → wrapper/build/unplus

Структура исходного кода

root@kitploit:~
src/
├── target.h          设备参数模板(◆ FILL IN 标记处需填你的设备值)
├── offset.h          target.h 的路由胶水(经 -DTARGET_CONFIG_H 注入)
├── unplus.h          编排头 + 共享声明(含 P0 alias / data_addr 等派生宏)
├── main.c            入口编排
├── stage1.c          Write 1/2:SELinux 关闭 + cred 覆写
├── root.c            Android root 落地(SELinux golden 修复 + sepolicy + KSU allowlist)
├── slide.c           KASLR leak
├── fops.c            configfs/fops 路由 + 内核基址推导
├── route.c           PI futex 路由线程
├── direct_write.c    direct read 原语
├── pipe_direct.c     direct pselect write
├── pipe_physrw.c     pipe physrw 原语
├── util.c            工具函数
├── utils.h           通用工具(日志、procfs 路径)
├── kernelsnitch.h    架构层(ARM64/x86 identity-map)
├── futex_hash.h      内核 jhash 移植(通用)
└── timeutils.h       架构层计时(ARM/x86/AMD)

Адаптация под устройство

src/target.h разделяет константы на два типа:

  • Помеченные ◆ FILL IN: зависят от устройства/ядра; вы должны указать свои значения. В шаблоне используются заглушки 0xDEADBEEF... — они компилируются, но при запуске всё упадёт.
  • Без пометок: инварианты GKI 6.6 (смещения полей структур), обычно менять не нужно.

Смена устройства = заполнение раздела ◆ FILL IN. Что означает каждое поле и как его получить — см. Приложение: описание полей.

Приложение: описание полей

Поля, помеченные ◆ FILL IN в target.h, сгруппированы по назначению:

Общий опыт: все смещения вида *_OFF можно получить на root-устройстве через kallsyms_lookup_name, вычтя KIMAGE_TEXT_BASE из адреса символа. TARGET_PCPU_* и TARGET_SELINUX_GOLDEN — это значения, получаемые в рантайме/дампе, их нельзя взять из статического образа.

Лицензия

WTFPL — Do What The Fuck You Want To Public License.

Благодарности

  • Команда CyberMeowfia — фреймворк повышения привилегий pipe physrw
  • Справочные материалы сообщества по адаптации под устройства
Скачать инструмент
ГруппаПоля (пример)Значение / способ получения
Build identityBUILD_VARIANT_LABEL、BUILD_FINGERPRINTПроизвольная идентификационная строка для логов. Укажите build fingerprint вашего устройства
Memory layoutKIMAGE_TEXT_BASE、P0_PHYS_OFFSET、VMEMMAP_START и т.д.Раскладка виртуальных/физических адресов ядра. Для arm64 VA39 обычно уже указаны значения по умолчанию; проверьте через IKCONFIG / kallsyms / /proc/iomem
ASHMEMASHMEM_IOCTL_OFF ... ASHMEM_MISC_FOPS_OFFСмещения членов fops драйвера ashmem и символа misc. Например, kallsyms_lookup_name("ashmem_fops")
CONFIGFS / PIPE / VFSCONFIGFS_READ_ITER_OFF、ANON_PIPE_BUF_OPS_OFF、KMALLOC_CACHES_OFF и т.д.Смещения для чтения/записи configfs, splice, pipe_buf_ops, kmalloc_caches. Ищите через kallsyms
SELinuxSELINUX_ENFORCING_OFF、SELINUX_BLOB_SIZES_OFF、SECURITY_HOOK_HEADS_OFFСмещения selinux_state / selinux_blob_sizes / security_hook_heads. SELINUX_ENFORCING_OFF — якорь соответствия сборке ядра, должен быть точным
Core kernel symbolsINIT_TASK_OFF、INIT_CRED_OFF、ENTRY_TASK_PERCPU_OFF и т.д.Смещения init_task / init_cred / entry_task / __per_cpu_offset / root_task_group. Ищите через kallsyms; ENTRY_TASK_PERCPU_OFF — это смещение __entry_task внутри percpu-секции
Per-CPU runtimeTARGET_PCPU_BASE_ADDR、TARGET_PCPU_UNIT_SIZERuntime-адрес per-CPU chunk (после KASLR), меняется при каждой загрузке. Нужен дамп в рантайме; UNIT_SIZE зависит от количества CPU
SLIDE (KASLR leak)SLIDE_NFULNL_LOGGER_OFF、SLIDE_RANDOM_BOOT_ID_DATA_OFF и т.д.Смещения символов данных ядра для утечки KASLR (nfulnl_logger / boot_id data и т.д.). Ищите через kallsyms
SELinux goldenTARGET_SELINUX_GOLDENШаблон первых 16 байт boolean-флагов selinux_state, стабильный между перезагрузками, но уникальный для каждого устройства. Требуется дамп selinux_state с вашего устройства. byte0 — бит enforcing; запись 0x00 означает permissive
pipe inode infoPIPE_INODE_INFO_*、PIPE_HEAD_OFF и т.д.Структура pipe_inode_info; обычно стабильна в пределах одного семейства GKI, при смене сборки ядра нужно проверять