ipsw
Швейцарский нож для исследований iOS/macOS
Что такое ipsw 🤔
ipsw — это комплексная исследовательская платформа командной строки для iOS и macOS. Она предоставляет обширный набор инструментов для специалистов по безопасности, реверс-инженеров, разработчиков джейлбрейков и энтузиастов iOS, позволяющий загружать, разбирать и анализировать прошивки Apple, а также взаимодействовать с устройствами iOS.
Ключевые возможности
- 📱 Анализ IPSW/OTA — загрузка, извлечение и анализ файлов прошивок iOS
- 🔍 Анализ бинарных файлов — расширенный разбор Mach-O с дизассемблированием ARM и поддержкой ИИ
- 🧠 dyld_shared_cache — полный анализ общего кэша с дампом классов ObjC/Swift
- 🔧 Анализ ядра — разбор kernelcache, извлечение системных вызовов и символикация
- 📲 Взаимодействие с устройствами — комплексное управление устройствами iOS и отладка
- 🔐 Исследование прошивок — анализ IMG4, iBoot, SEP и прошивок сопроцессоров
- 🏪 App Store Connect — полная интеграция API для управления приложениями и сертификатами
- 🛠️ Инструменты разработчика — утилиты SSH, Frida, отладки и реверс-инжиниринга
Быстрый старт
Установка
macOS
Через blacktop tap (включая дополнительные компоненты)
brew install blacktop/tap/ipsw
Через официальную формулу Homebrew
Linux
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
Базовое использование
# Download latest iOS IPSW
ipsw download ipsw --device iPhone16,1 --latest
# Extract kernelcache
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
# Analyze dyld_shared_cache
ipsw dyld info /path/to/dyld_shared_cache_arm64
# Get device information
ipsw idev list
Основные функции
📱 Управление IPSW и OTA
- Источники загрузки: Apple, AppleDB, Developer Portal, RSS-каналы, GitHub, iTunes, Wikipedia
- Типы файлов: IPSW, OTA, установщики macOS, Xcode, KDK, файлы PCC
- Операции: извлечение, сравнение (diff), монтирование, анализ метаданных
ipsw download ipsw --device iPhone16,1 --latest
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
ipsw diff iPhone16,1_18.1_22B83_Restore.ipsw iPhone16,1_18.2_22C150_Restore.ipsw
🔍 Анализ бинарных файлов и реверс-инжиниринг
- Разбор Mach-O: полный анализ бинарных файлов с извлечением символов
- Дизассемблирование ARM: дизассемблер ARM v9-a с анализом на основе ИИ
- Подпись кода: проверка подписей, анализ entitlements
- Патчинг бинарных файлов: добавление, изменение и удаление патчей
ipsw macho info /path/to/binary
ipsw macho disass /path/to/binary --symbol _main
ipsw macho search /path/to/binary --string "password"
🧠 Анализ dyld_shared_cache
- Разбор кэша: извлечение и анализ полной структуры общего кэша
- Анализ ObjC: дампы классов, анализ методов, разбор протоколов
- Поддержка Swift: дамп и анализ классов Swift (экспериментально)
- Управление символами: извлечение символов и разрешение адресов
ipsw dyld info /path/to/dyld_shared_cache
ipsw dyld extract /path/to/dyld_shared_cache --dylib Foundation
ipsw dyld objc class /path/to/dyld_shared_cache --class NSString
📲 Взаимодействие с устройствами iOS (idev)
- Файловая система: просмотр и передача файлов через AFC
- Управление приложениями: установка, удаление и анализ приложений
- Резервное копирование и восстановление: полные операции резервного копирования устройств
- Разработка: монтирование образов разработчика, сбор логов, захват пакетов
- Диагностика: информация о батарее, журналы сбоев, системная диагностика
ipsw idev list
ipsw idev afc ls /
ipsw idev apps ls
ipsw idev backup create
ipsw idev syslog
🔐 Анализ прошивок и безопасности
- IMG4: разбор и расшифровка файлов формата Image4
- iBoot: анализ и исследование загрузчика
- SEP: анализ прошивки Secure Enclave Processor
- AEA: расшифровка зашифрованных архивов Apple
- Сопроцессоры: анализ прошивок AOP, DCP, GPU и камеры
ipsw img4 dec iBoot.img4
ipsw fw sep iPhone16,1_18.2_22C150_Restore.ipsw
ipsw fw iboot iPhone16,1_18.2_22C150_Restore.ipsw
🏪 Интеграция с App Store Connect
- Управление сертификатами: сертификаты и профили iOS/macOS
- Регистрация устройств: управление устройствами для разработки
- Управление приложениями: Bundle ID, возможности и рецензии
- Профили подготовки: полный жизненный цикл профилей подготовки
🛠️ Продвинутые исследовательские инструменты
- Символикация: анализ журналов сбоев и разрешение символов
- Дамп классов: извлечение классов ObjC и Swift
- Доступ по SSH: SSH к устройствам с джейлбрейком через debugserver
- Интеграция с Frida: возможности динамической инструментации
- Декомпилятор на основе ИИ: интеграция с Claude, OpenAI, Gemini, Ollama и OpenRouter
ipsw symbolicate crash.ips --dsym /path/to/symbols
ipsw class-dump /path/to/binary
ipsw ssh debugserver
Архитектура
ipsw состоит из двух основных компонентов:
ipsw — основной CLI-инструмент с полными возможностями анализа
ipswd — демон REST API для удалённых операций и автоматизации
Конфигурация
ipsw поддерживает YAML-файлы конфигурации и переменные окружения:
# Create config directory
mkdir -p ~/.config/ipsw
# Copy example config
cp config.example.yml ~/.config/ipsw/config.yaml
Поддержка баз данных
- SQLite (по умолчанию) — локальное хранилище
- PostgreSQL — производственные развёртывания
Декомпилятор на основе ИИ
https://blacktop.github.io/ipsw/docs/guides/decompiler
❱ ipsw macho disass /System/Library/PrivateFrameworks/ApplePushService.framework/apsd --entry \
--dec --dec-model "Claude 3.7 Sonnet"
• Loading symbol cache file...
• Decompiling... 🕒
int main(int argc, char *argv[]) {
@autoreleasepool {
__set_user_dir_suffix(@"com.apple.apsd");
@autoreleasepool {
APSDaemon *daemon = [[APSDaemon alloc] init];
if (daemon) {
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop run];
[runLoop release];
}
[daemon release];
}
return 0;
}
@catch (NSException *exception) {
if ([exception reason] == 1) {
id exceptionObj = [exception retain];
id logger = [APSLog daemon];
if (_os_log_type_enabled(logger, 0x11)) {
[exceptionObj logWithLogger:logger];
}
[logger release];
[exceptionObj release];
}
}
}
Варианты использования
Исследование безопасности
- Анализ уязвимостей и разработка эксплойтов
- Оценка безопасности прошивок
- Реверс-инжиниринг бинарных файлов
Разработка джейлбрейков
- Анализ и эксплуатация цепочки загрузки (bootchain)
- Исследование расширений ядра
- Модификация и патчинг системы
Разработка под iOS
- Отладка и анализ приложений
- Управление сертификатами и профилями подготовки
- Тестирование на устройствах и автоматизация
Цифровая криминалистика
- Извлечение и анализ данных с устройств
- Восстановление хронологии событий
- Анализ артефактов
Требования
- Go: 1.24+ (для сборки из исходников)
- Платформа: macOS, Linux, Windows
- USB: libusb для взаимодействия с устройствами
- Опционально: ключи AI API для расширенного анализа
Документация
- Веб-сайт: https://blacktop.github.io/ipsw
- Документация API: документация REST API доступна по адресу
/docs при запуске ipswd
- Примеры: подробные примеры использования в документации
SKILL.md
Наделите своих ИИ-агентов суперспособностями ipsw
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
🆕 Вики на основе ИИ
Задавайте вопросы о репозитории с помощью ИИ:
[!WARNING]
Ответы ИИ могут содержать галлюцинации — проверяйте важную информацию.
Ресурсы сообщества
📊 IPSW Diffs
Предварительно вычисленные различия прошивок: ipsw-diffs
💬 Сообщество

Участие в разработке
Мы приветствуем ваш вклад! Пожалуйста, ознакомьтесь с рекомендациями в CONTRIBUTING.md.
Разработка
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
Известные проблемы
- Поддержка macOS IPSW: некоторые операции с прошивками macOS могут иметь проблемы совместимости
- Тестирование: всестороннее тестирование затруднено из-за разнообразия версий прошивок и типов устройств
- Требовательность к ресурсам: некоторые операции требуют значительного объёма памяти и вычислительной мощности
Создайте issue, если вы столкнулись с проблемами, — исправления имеют высокий приоритет! В будущих выпусках планируется комплексный набор тестов.
Благодарности
Огромное спасибо:
- Jonathan Levin — за его легендарные инструменты и исчерпывающую документацию по внутреннему устройству iOS
- Сообществу исследователей iOS — за постоянные инновации и обмен знаниями
- Всем участникам, которые помогают делать этот проект лучше
Лицензия
Лицензия MIT — подробности см. в LICENSE.