ipsw
Canivete Suíço de Pesquisa para iOS/macOS
O que é o ipsw 🤔
O ipsw é um framework abrangente de pesquisa por linha de comando para iOS e macOS. Ele fornece um extenso kit de ferramentas para pesquisadores de segurança, especialistas em engenharia reversa, desenvolvedores de jailbreak e entusiastas de iOS baixarem, fazerem o parse e analisarem o firmware da Apple e interagirem com dispositivos iOS.
Recursos Principais
- 📱 Análise de IPSW/OTA — Baixar, extrair e analisar arquivos de firmware iOS
- 🔍 Análise de Binários — Parse avançado de Mach-O com desmontagem ARM e assistência de IA
- 🧠 dyld_shared_cache — Análise completa do cache compartilhado com dumping de classes ObjC/Swift
- 🔧 Análise de Kernel — Parse de kernelcache, extração de syscalls e simbolicação
- 📲 Interação com Dispositivos — Gerenciamento e depuração abrangentes de dispositivos iOS
- 🔐 Pesquisa de Firmware — Análise de firmware de IMG4, iBoot, SEP e co-processadores
- 🏪 App Store Connect — Integração completa com a API para gerenciamento de apps e certificados
- 🛠️ Ferramentas de Desenvolvedor — Utilitários de SSH, Frida, depuração e engenharia reversa
Início Rápido
Instalação
macOS
Usando o tap do blacktop (inclui extras)
brew install blacktop/tap/ipsw
Usando a fórmula oficial do Homebrew
Linux
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
Uso Básico
# 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
Funcionalidades Principais
📱 Gerenciamento de IPSW e OTA
- Fontes de download: Apple, AppleDB, Developer Portal, feeds RSS, GitHub, iTunes, Wikipedia
- Tipos de arquivo: IPSW, OTA, instaladores do macOS, Xcode, KDKs, arquivos PCC
- Operações: Extrair, diff, montar, analisar metadados
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
🔍 Análise de Binários e Engenharia Reversa
- Parse de Mach-O: Análise completa de binários com extração de símbolos
- Desmontagem ARM: Desmontador ARM v9-a com análise assistida por IA
- Assinatura de Código: Verificar assinaturas, analisar entitlements
- Patch de Binários: Adicionar, modificar ou remover patches
ipsw macho info /path/to/binary
ipsw macho disass /path/to/binary --symbol _main
ipsw macho search /path/to/binary --string "password"
🧠 Análise de dyld_shared_cache
- Parse de Cache: Extrair e analisar a estrutura completa do cache compartilhado
- Análise ObjC: Dumps de classes, análise de métodos, parse de protocolos
- Suporte a Swift: Dumping e análise de classes Swift (experimental)
- Gerenciamento de Símbolos: Extração de símbolos e resolução de endereços
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
- Sistema de Arquivos: Navegar e transferir arquivos via AFC
- Gerenciamento de Apps: Instalar, desinstalar e analisar aplicativos
- Backup e Restauração: Operações completas de backup do dispositivo
- Desenvolvimento: Montar imagens de desenvolvedor, capturar logs, captura de pacotes
- Diagnóstico: Informações da bateria, logs de crash, diagnóstico do sistema
ipsw idev list
ipsw idev afc ls /
ipsw idev apps ls
ipsw idev backup create
ipsw idev syslog
🔐 Análise de Firmware e Segurança
- IMG4: Fazer o parse e descriptografar arquivos no formato Image4
- iBoot: Análise e pesquisa do bootloader
- SEP: Análise de firmware do Secure Enclave Processor
- AEA: Descriptografia de Apple Encrypted Archives
- Co-processadores: Análise de firmware de AOP, DCP, GPU e câmera
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
- Gerenciamento de Certificados: Certificados e perfis iOS/macOS
- Registro de Dispositivos: Gerenciar dispositivos de desenvolvimento
- Gerenciamento de Apps: Bundle IDs, capabilities e avaliações
- Provisionamento: Ciclo de vida completo de perfis de provisionamento
ipsw appstore cert ls
ipsw appstore device reg --name "My Device" --udid 1234567890
ipsw appstore profile create --name "Development Profile"
🛠️ Ferramentas Avançadas de Pesquisa
- Simbolicação: Análise de logs de crash e resolução de símbolos
- Dumping de Classes: Extração de classes ObjC e Swift
- Acesso SSH: SSH para dispositivos com jailbreak, com debugserver
- Integração com Frida: Capacidades de instrumentação dinâmica
- Descompilador com IA: Integração com Claude, OpenAI, Gemini, Ollama e OpenRouter
ipsw symbolicate crash.ips --dsym /path/to/symbols
ipsw class-dump /path/to/binary
ipsw ssh debugserver
Arquitetura
O ipsw consiste em dois componentes principais:
ipsw — Ferramenta CLI principal com capacidades completas de análise
ipswd — Daemon de API REST para operações remotas e automação
Configuração
O ipsw suporta arquivos de configuração YAML e variáveis de ambiente:
# Create config directory
mkdir -p ~/.config/ipsw
# Copy example config
cp config.example.yml ~/.config/ipsw/config.yaml
Suporte a Banco de Dados
- SQLite (padrão) — Armazenamento local
- PostgreSQL — Implantações em produção
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];
}
}
}
Casos de Uso
Pesquisa de Segurança
- Análise de vulnerabilidades e desenvolvimento de exploits
- Avaliação de segurança de firmware
- Engenharia reversa de binários
Desenvolvimento de Jailbreak
- Análise e exploração da bootchain
- Pesquisa de extensões de kernel
- Modificação do sistema e aplicação de patches
Desenvolvimento iOS
- Depuração e análise de apps
- Gerenciamento de certificados e provisionamento
- Testes e automação de dispositivos
Forense Digital
- Extração e análise de dados de dispositivos
- Reconstrução da linha do tempo (timeline)
- Análise de artefatos
Requisitos
- Go: 1.24+ (para compilar a partir do código-fonte)
- Plataforma: macOS, Linux, Windows
- USB: libusb para interação com dispositivos
- Opcional: Chaves de API de IA para análise aprimorada
Documentação
- Site: https://blacktop.github.io/ipsw
- Documentação da API: Documentação da API REST disponível em
/docs ao executar o ipswd
- Exemplos: Exemplos abrangentes de uso na documentação
SKILL.md
Potencialize seus agentes de IA com os superpoderes do ipsw
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
Faça perguntas sobre o repositório usando IA:
[!WARNING]
As respostas da IA podem conter alucinações — verifique informações importantes.
Recursos da Comunidade
📊 Diferenças de IPSW
Diferenças de firmware pré-calculadas: ipsw-diffs
💬 Comunidade

Contribuindo
Aceitamos contribuições! Consulte CONTRIBUTING.md para obter as diretrizes.
Desenvolvimento
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
Problemas Conhecidos
- Suporte a IPSW do macOS: Algumas operações de firmware do macOS podem ter problemas de compatibilidade
- Testes: Realizar testes abrangentes é desafiador devido à variedade de versões de firmware e tipos de dispositivos
- Uso Intensivo de Recursos: Algumas operações exigem memória e poder de processamento significativos
Crie uma issue se encontrar problemas — correções são priorizadas! Uma suíte de testes abrangente está planejada para versões futuras.
Créditos
Um enorme agradecimento a:
- Jonathan Levin por suas ferramentas lendárias e documentação abrangente sobre os internals do iOS
- A comunidade de pesquisa iOS pela inovação contínua e compartilhamento de conhecimento
- Todos os contribuidores que ajudam a tornar este projeto melhor
Licença
Licença MIT — consulte LICENSE para obter detalhes.