## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-THIASAP-OPPO-PGEM10-GHOSTLOCK
# OPPO Find X6 Pro GhostLock Проект адаптации
## Обзор
Данный проект посвящен адаптации уязвимости CVE-2026-43499 (GhostLock) на устройстве OPPO Find X6 Pro (PGEM10).
Основан на архитектуре оригинального эксплойта NebuSec CyberMeowfia с использованием подхода к адаптации из oppo-ghostlock.
## Информация об устройстве
Параметр| Значение
---|---
Устройство| OPPO Find X6 Pro (PGEM10)
Чип| Snapdragon 8 Gen 2 (SM8550)
Ядро| Linux 5.15.149-android13 #1 SMP PREEMPT
Дата сборки| Thu Feb 13 2025
Android| 15 (ColorOS 15.0)
Версия ПЗУ| PGEM10_15.0.0.600(CN01)
PAC| CONFIG_ARM64_PTR_AUTH_KERNEL=y
BTI| CONFIG_ARM64_BTI_KERNEL=y
KASLR| CONFIG_RANDOMIZE_BASE=y
VA_BITS| 39
Смещение VA| P0_PAGE_OFFSET = 0xffffff8000000000
## Сводка результатов проекта
### ✅ Выполнено
### ❌ Заблокировано
## Структура проекта
root@kitploit:~
oppo-pgem10-ghostlock/
├── README.md # Данный файл
├── 问题描述.md # Подробный анализ проблемы
├── docs/
│ ├── architecture.md # Архитектура и цепочки вызовов
│ └── adaptation-guide.md # Руководство по адаптации для PAC-ядра
├── reports/
│ ├── offsets.md # Отчёт о верификации смещений в IDA
│ ├── kaslr.md # Аналитический отчёт по KASLR
│ └── summary.md # Итоговое резюме
├── src/
│ ├── kaslr_perf.h # Переиспользуемый модуль Perf KASLR
│ └── kaslr_perf.c # Реализация Perf KASLR
└── analysis/
└── chains/ # Скрипты анализа цепочек вызовов
## Ключевые различия в конфигурации (PGEM10 vs Pixel 10)
root@kitploit:~
CONFIG_ARM64_PTR_AUTH_KERNEL=y # ← Основное отличие: PAC напрямую вызывает расширение фрейма
CONFIG_ARM64_BTI_KERNEL=y # BTI дополнительно увеличивает накладные расходы
CONFIG_SHADOW_CALL_STACK=y # SCS увеличивает стековый фрейм
CONFIG_VMAP_STACK=y # Стек может быть перераспределён
CONFIG_KASAN_HW_TAGS=y # Включено при компиляции
CONFIG_ARM64_VA_BITS=39 # 39-битное VA (не 48-битное)
## Первопричина блокировки: расширение стекового фрейма из-за PAC
root@kitploit:~
Функция Pixel 10 (без PAC) PGEM10 (с PAC)
__arm64_sys_futex 0x90 0x4C0
do_futex 0x70 0x420
futex_wait_requeue_pi 0x1A0 0x1B0
─────────────────────────────────────────────────
Общая глубина цепи futex 0x300 0xA70 ← ×3.5
Глубина стека pselect 0x620 0x620
Возможность перезаписи? ✅ ДА ❌ НЕТ (0xA70 > 0x620)
Анализ цепочек вызовов подтверждает: в ядре **0** цепочек глубиной ≥ 0x800 (2048Б). Максимальный одиночный фрейм: 0x1F0 (496Б).
## Справочные ресурсы
* Оригинальный проект: https://github.com/NebuSec/CyberMeowfia
* Адаптация для OPPO Find N2: https://github.com/pubglite55/oppo-ghostlock
* Исследование NebuSec: https://nebusec.ai/research/ionstack-part-2/
* Исходный код ядра: https://github.com/oppo-source/android_kernel_oppo_sm8550
* Общий исходный код ядра: https://github.com/oppo-source/android_kernel_common_oppo_sm8550