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

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

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

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

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

Категории

Все категории
Loading categories
ABrake27 — iOS 27 kernelcache: карта диспетчеризации SEP, diff AMFI, рабочий процесс Ghidra | Kitploit
Инструменты/GitHubGitHub/vvirei333/abrake27
Безопасность iOSАнализ уязвимостейЭксплуатацияПентестинг мобильных приложенийОбратная инженерияМобильная безопасностьАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и ОбразованиеРазработка Полезной НагрузкиАнализ Прошивок
341 день назадЕщё не проверено
GitHub
vvirei333/abrake27

ABrake27

iOS 27 kernelcache: карта диспетчеризации SEP, diff AMFI, рабочий процесс Ghidra

Репозиторий

Популярное

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

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

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

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

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

ABrake27

Нативный для Linux кросс-компилятор + PoC для активации режима разработчика iOS AMFI (arm64/arm64e)

Platform Build Arch

Инструментарий исследовательского уровня. Сравните прошивки iOS 27.0.1 и 27.2, проведите обратную разработку таблицы диспетчеризации IOUserClient в AMFI, выполните кросс-компиляцию bare-metal PoC для IOKit из Linux — без необходимости в Xcode — и включите режим разработчика на iOS 27.0.1 через штатный протокол Apple lockdown (подтверждена персистентность на уровне ядра).


Что это такое

  • Диффинг прошивок IPS — kernelcache, kexts, sandbox, entitlements между iOS 27.0.1 и 27.2 (iPhone 14,5).
  • Обратная разработка таблицы диспетчеризации AMFI — сопоставлены все слоты IOExternalMethodDispatch, идентифицирован selector 11 = armSecurityBootMode.
  • Автономный PoC на C — poc/poc.c открывает AppleMobileFileIntegrity/AppleCredentialManager, вызывает armSecurityBootMode и логирует результат. Без раздувания Foundation/UIKit — чистый C + IOKit.
  • Кросс-компилятор для Linux — poc/build_ipa.sh создаёт подписанный .ipa на CachyOS/Arch с использованием clang + ld64.lld + ldid. Ноль зависимостей от Apple/Xcode.

Как включить режим разработчика на iOS 27.0.1 (без джейлбрейка, без неподписанного кода)

Цепочку переключения режима разработчика iOS можно провести полностью через штатный протокол Apple lockdown (com.apple.amfi.lockdown). Без джейлбрейка, без IPA, без подделки entitlements — только pymobiledevice3 на Linux.

Проверено: после приведённой ниже цепочки mounter query-developer-mode-status → true, и DeveloperDiskImage был смонтирован в /System/Developer — и оба результата пережили независимую перезагрузку (те же проверки ранее возвращались к false, так что персистентность — это реальное доказательство; см. FINDINGS_LOCK.md).

Предварительное условие

Удалите код-пароль (Настройки → Face ID и код-пароль → Отключить код-пароль). При установленном код-пароле AMFI отвечает на action=1/action=2 сообщением Device has a passcode set.

Шаги

# 1) enable → action=1 → REBOOT #1
flatpak-spawn --host python3 -m pymobiledevice3 amfi enable-developer-mode

# 2) after the device boots: post-restart accept → action=2 → REBOOT #2
#    (the CLI has no separate accept command — call the service method directly,
#     e.g. via poc/verify_now2.py)

# 3) reveal the Settings toggle → action=0
flatpak-spawn --host python3 -m pymobiledevice3 amfi reveal-developer-mode

Проверка (на уровне ядра, независимо от службы AMFI)

flatpak-spawn --host python3 -m pymobiledevice3 mounter query-developer-mode-status   # → true
flatpak-spawn --host python3 -m pymobiledevice3 mounter list                           # → IsMounted: true, /System/Developer
flatpak-spawn --host python3 -m pymobiledevice3 mounter auto-mount                    # → DeveloperDiskImage mounted successfully

Сводка по протоколу

actionЗначениеЭффект
0revealПоказывает переключатель режима разработчика в Настройках
1enableУстанавливает флаг, перезагружает устройство
2acceptПодтверждение после перезагрузки, перезагружает снова

⚠️ pymobiledevice3 замыкает цепочку: если статус уже true, enable-developer-mode просто логирует "Developer mode is already enabled" и ничего не отправляет. Две перезагрузки — часть протокола Apple, а не случайность.


Быстрый старт (Linux → iPhone за 4 минуты)

Предварительные требования (CachyOS / Arch)

sudo pacman -S clang lld zip          # compiler + Mach-O linker
yay -S ldid                           # entitlement injector (AUR)
# iOS SDK:
mkdir -p poc/SDK
git clone https://github.com/theos/sdks poc/tmp && mv poc/tmp/iPhoneOS*.sdk poc/SDK/iPhoneOS.sdk

Сборка

cd poc
IOS_SDK=/path/to/iPhoneOS.sdk ./build_ipa.sh
# Output: EnableAMFIDevMode.ipa

Установка на iPhone

# Via ideviceinstaller (libimobiledevice):
ideviceinstaller --install EnableAMFIDevMode.ipa

# Via TrollStore (if jailbroken/CT-bypass device):
# → TrollStore app → "+" → pick EnableAMFIDevMode.ipa

# Via SideStore/AltStore:
# → Add to SideStore → sign with your Apple ID

Запуск

# On device (SSH / NewTerm):
./EnableAMFIDevMode 1
cat /tmp/amfi_devmode_poc.log
# Then REBOOT to activate Developer Mode

Альтернатива: запуск CoreDevice / DVT из Linux (run_dvt.sh)

Существует второй путь, без IPA: кросс-компиляция автономного бинарника IOKit на Linux и его доставка на устройство через туннель CoreDevice / RSD iOS 17+, затем запуск через службу управления процессами DVT (вне App Sandbox — без installd, без free-sign IPA).

./run_dvt.sh enable      # build (clang + ld64.lld) → deploy → `dvt launch --stream`

run_dvt.sh автоматизирует всю цепочку:

  1. запускает/проверяет usbmuxd, проверяет устройство через ideviceinfo (libimobiledevice);
  2. выполняет кросс-компиляцию poc/poc.c в bare arm64 Mach-O (без тулчейна Apple): clang -c → ld64.lld -platform_version ios … -syslibroot … -undefined dynamic_lookup; версия SDK читается из бинарного SDKSettings.plist через plistlib;
  3. открывает пользовательский туннель RSD (pymobiledevice3) и вызывает dvt launch --stream.

Статус: кросс-компиляция под Linux работает (создаётся настоящий arm64 Mach-O). Шаг развёртывания на устройстве всё ещё WIP — см. HANDOFF.md «Сессия 12». Также обратите внимание, что путь PoC через IOKit (AppleMobileFileIntegrity selector 11) требует платформенно-ограниченного entitlement com.apple.private.amfi.developer-mode-control, поэтому бинарник, не подписанный Apple, будет отклонён userclient даже при запуске через DVT — поддерживаемый способ включения режима разработчика — это протокол lockdown, описанный выше.


Как это работает

Два чистых шага на каждый срез архитектуры (это предотвращает поглощение драйвером clang флагов -arch/-platform_version при делегировании в ld64.lld):

  1. clang -c — объектный файл Mach-O, без линковки
  2. ld64.lld — исполняемый файл с явными -arch arm64 -platform_version ios <min> <sdk>

Автоопределение clang-20...15, ld64.lld/lld, llvm-lipo, ldid. Плавный откат: arm64e → arm64, если тулчейн не поддерживает ptrauth.


Структура репозитория

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