
ipsw v3.1.716
Швейцарский нож для исследований iOS/macOS
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
brew install ipsw
Linux
sudo snap install ipsw
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
Базовое использование
# Загрузка последней версии iOS IPSW
ipsw download ipsw --device iPhone16,1 --latest
# Извлечение kernelcache
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
# Анализ dyld_shared_cache
ipsw dyld info /path/to/dyld_shared_cache_arm64
# Получение информации об устройстве
ipsw idev list
Основные функции
📱 Управление IPSW и OTA
- Источники загрузки: Apple, AppleDB, Developer Portal, RSS-каналы, GitHub, iTunes, Wikipedia
- Типы файлов: IPSW, OTA, установщики macOS, Xcode, KDK, файлы PCC
- Операции: извлечение, сравнение, монтирование, анализ метаданных
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 Encrypted Archives
- Сопроцессоры: анализ прошивок 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, возможности и рецензии
- Провижининг: полный жизненный цикл профилей провижининга
ipsw appstore cert ls
ipsw appstore device reg --name "My Device" --udid 1234567890
ipsw appstore profile create --name "Development Profile"
🛠️ Продвинутые исследовательские инструменты
- Символизация: анализ журналов сбоев и разрешение символов
- Дамп классов: извлечение классов 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-файлы конфигурации и переменные окружения:
# Создание каталога конфигурации
mkdir -p ~/.config/ipsw
# Копирование примера конфигурации
cp config.example.yml ~/.config/ipsw/config.yaml
Поддержка баз данных
- SQLite (по умолчанию) — локальное хранилище
- PostgreSQL — для производственных развёртываний
ИИ-декомпилятор
❱ ipsw macho disass /System/Library/PrivateFrameworks/ApplePushService.framework/apsd --entry \
--dec --dec-model "Claude 3.7 Sonnet"
• Загрузка файла кэша символов...
• Декомпиляция... 🕒
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.26+ (для сборки из исходного кода)
- Платформа: macOS, Linux, Windows
- USB: libusb для взаимодействия с устройствами
- Опционально: ключи 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, если столкнулись с проблемами — исправления имеют высокий приоритет! Комплексный набор тестов запланирован для будущих релизов.
Благодарности
Огромное спасибо:
- Джонатану Левину за его легендарные инструменты и исчерпывающую документацию по внутренностям iOS
- Сообществу исследователей iOS за постоянные инновации и обмен знаниями
- Всем контрибьюторам, которые помогают делать этот проект лучше
Лицензия
Лицензия MIT — подробности см. в LICENSE.