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

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

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

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

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

Категории

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

ABrake27

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

Репозиторий

Популярное

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

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

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

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

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

ABrake27

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

Platform Build Arch

Инструментарий исследовательского уровня. Сравните прошивки iOS 27.0.1 и 27.2, проведите обратную разработку таблицы диспетчеризации IOUserClient в AMFI, скомпилируйте bare-metal PoC для IOKit с Linux — без необходимости в Xcode — и включите режим разработчика на iOS 27.0.1 через штатный протокол lockdown от Apple (подтверждена устойчивость на уровне ядра). Главная находка на данный момент: скрытое усиление защиты от переполнения ASTC/DDS в ImageIO, структурно достижимое из общего пути декодирования — цепочка MediaAnalysis прослежена до ASTCReadPlugin::initialize (сессии 28–31).


Что это такое

  • Диффинг прошивок IPS — kernelcache, kext-модули, 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 можно провести полностью через штатный протокол lockdown от Apple (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

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

действиеЗначениеЭффект
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, без бесплатно подписанного IPA).

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

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

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

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


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

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