Назад к обновлениям
New releaseSep 12, 2026

ipsw v3.1.716

Швейцарский нож для исследований iOS/macOS

Поделиться

IPSW Logo

ipsw

Швейцарский армейский нож для исследований iOS/macOS


ipsw — это набор инструментов командной строки для исследования и обратной разработки прошивок Apple. Скачивайте и распаковывайте IPSW и OTA, изучайте бинарные файлы Mach-O и общие кэши dyld, анализируйте kernelcache и работайте с подключёнными устройствами iOS.

Навык для агента · Установка · Примеры CLI · Документация

Использование ipsw с ИИ-агентом

Начните с ipsw-skill, если вы работаете в Claude Code, Codex, Gemini CLI или другом агенте, поддерживающем навыки. Он предоставляет агенту справочник команд и рабочие процессы для извлечения прошивок, анализа бинарных файлов и исследований платформы Apple.

Установите CLI ipsw, затем добавьте навык:

npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw

После этого вы можете ставить задачу на естественном языке. Например:

Скачай последний IPSW для iPhone 15 Pro и извлеки из него kernelcache.

Выгрузи заголовки Objective-C для SpringBoardServices из этого общего кэша dyld.

Сравни KEXT в этих двух kernelcache.

В README навыка приведены инструкции по настройке для отдельных агентов, включая плагин для Claude Code и расширение для Gemini CLI.

Установка

macOS

Homebrew-репозиторий мейнтейнера включает сборку с дополнительными возможностями:

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

Вы также можете скачать бинарные файлы со страницы GitHub Releases. См. руководство по установке для других пакетов и дополнительных зависимостей. Некоторые команды зависят от хост-ОС или варианта сборки; например, поддержка Frida имеет отдельную сборку.

Что можно делать

ОбластьИнструменты
ПрошивкиСкачивание IPSW, OTA, установщиков macOS, Xcode и KDK; извлечение компонентов и сравнение сборок
Mach-OПросмотр load-команд, символов, подписей и entitlements; дизассемблирование кода ARM64
Общие кэши dyldПоиск символов и перекрёстных ссылок, извлечение dylib, выгрузка заголовков Objective-C и просмотр метаданных Swift
ЯдроИзвлечение KEXT, просмотр системных вызовов и символов, сравнение kernelcache
Компоненты прошивкиРазбор IMG4, расшифровка архивов AEA, просмотр прошивок iBoot и сопроцессоров
УстройстваСписок устройств и приложений, передача файлов через AFC, захват логов и монтирование образов разработчика
App Store ConnectУправление сертификатами, bundle ID, устройствами и профилями подготовки
ИсследованияСимволизация crash-логов, отладка по SSH, трассировка с Frida и декомпиляция с помощью LLM

Примеры CLI

Замените примеры путей к файлам на свои. Запустите ipsw --help или добавьте --help к любой подкоманде, чтобы увидеть её параметры.

Скачивание и извлечение прошивки

# Скачать последний IPSW для iPhone 15 Pro
ipsw download ipsw --device iPhone16,1 --latest

# Просмотреть локальный IPSW и извлечь из него kernelcache
ipsw info /path/to/firmware.ipsw
ipsw extract --kernel /path/to/firmware.ipsw

# Сравнить две сборки прошивки
ipsw diff /path/to/old.ipsw /path/to/new.ipsw

Изучение общего кэша dyld

ipsw dyld info /path/to/dyld_shared_cache_arm64e

# Извлечь Foundation для использования в других инструментах
ipsw dyld extract /path/to/dyld_shared_cache_arm64e Foundation

# Выгрузить заголовки напрямую из кэша
ipsw class-dump /path/to/dyld_shared_cache_arm64e SpringBoardServices --headers -o headers

Используйте кэш напрямую для анализа Objective-C: извлечённые dylib всё ещё могут ссылаться на метаданные, хранящиеся в других частях кэша.

Просмотр бинарных файлов и kernelcache

# Явно выберите архитектуру для универсальных бинарных файлов
ipsw macho info /path/to/binary --arch arm64e
ipsw macho disass /path/to/binary --arch arm64e --symbol _main

# Найдите импортируемый символ в каталоге бинарных файлов
ipsw macho search /path/to/binaries --import 'CCCrypt'

# Выведите список KEXT, затем извлеките один по его полному bundle ID
ipsw kernel kexts /path/to/kernelcache
ipsw kernel extract /path/to/kernelcache com.apple.driver.ASIOKit -o kexts

Работа с подключённым устройством

ipsw idev list
ipsw idev apps ls
ipsw idev afc ls /
ipsw idev syslog

Декомпиляция с помощью LLM

Команды macho disass и dyld disass могут отправлять дизассемблированный код настроенному провайдеру LLM с помощью --dec. См. руководство по декомпилятору для настройки провайдера, выбора модели и примеров.

Конфигурация и автоматизация

CLI читает конфигурацию YAML из ~/.config/ipsw/config.yaml; используйте --config, чтобы выбрать другой файл. См. config.example.yml и руководство по конфигурации для настроек и переменных окружения.

Для скриптов выбирайте архитектуру с помощью --arch при открытии универсальных бинарных файлов и используйте полный путь к dylib, когда короткое имя неоднозначно. Команды, поддерживающие --json, указывают это в своей справке.

Отдельный демон ipswd предоставляет REST API для автоматизации. См. справочник по API.

Документация и сообщество

При сообщении об ошибке указывайте ipsw version, выполненную команду и соответствующую сборку прошивки или тип файла. Удаляйте личную информацию из логов и crash-отчётов.

Сборка и участие

Для сборки из исходного кода требуются Go 1.26 или новее и инструментальная цепочка C для CGO:

git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build

См. CONTRIBUTING.md для правил разработки и участия.

Благодарности

Спасибо Jonathan Levin за его инструменты и документацию по внутреннему устройству iOS, сообществу исследователей безопасности Apple и всем, кто вносит код, сообщает об ошибках и делится исследованиями.

Лицензия

MIT.

Категории