ipsw
Canivete Suíço de Pesquisa para iOS/macOS
O que é ipsw 🤔
ipsw é um framework abrangente de pesquisa em linha de comando para iOS e macOS. Ele fornece um kit de ferramentas extenso para pesquisadores de segurança, engenheiros reversos, desenvolvedores de jailbreak e entusiastas de iOS para baixar, analisar e examinar o firmware da Apple e interagir com dispositivos iOS.
Capacidades Principais
- 📱 Análise de IPSW/OTA - Baixar, extrair e analisar arquivos de firmware iOS
- 🔍 Análise de Binários - Parsing avançado de Mach-O com desmontagem ARM e assistência de IA
- 🧠 dyld_shared_cache - Análise completa de cache compartilhado com extração de classes ObjC/Swift
- 🔧 Análise de Kernel - Parsing de kernelcache, extração de syscalls e simbolicação
- 📲 Interação com Dispositivos - Gerenciamento e depuração abrangente de dispositivos iOS
- 🔐 Pesquisa de Firmware - Análise de firmware IMG4, iBoot, SEP e co-processadores
- 🏪 App Store Connect - Integração completa de API para gerenciamento de apps e certificados
- 🛠️ Ferramentas de Desenvolvimento - Utilitários de SSH, Frida, depuração e engenharia reversa
Início Rápido
Instalação
macOS
Usando o tap 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
# Baixar o IPSW iOS mais recente
ipsw download ipsw --device iPhone16,1 --latest
# Extrair kernelcache
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
# Analisar dyld_shared_cache
ipsw dyld info /path/to/dyld_shared_cache_arm64
# Obter informações do dispositivo
ipsw idev list
Principais Recursos
📱 Gerenciamento de IPSW e OTA
- Fontes de Download: Apple, AppleDB, Portal de Desenvolvedores, feeds RSS, GitHub, iTunes, Wikipedia
- Tipos de Arquivo: IPSW, OTA, instaladores macOS, Xcode, KDKs, arquivos PCC
- Operações: Extrair, comparar, 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
- Parsing 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
- Parsing de Cache: Extrair e analisar a estrutura completa do cache compartilhado
- Análise ObjC: Dumps de classes, análise de métodos, parsing de protocolos
- Suporte a Swift: Extração 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 de 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: Parse e descriptografia de arquivos no formato Image4
- iBoot: Análise e pesquisa de bootloader
- SEP: Análise de firmware do Secure Enclave Processor
- AEA: Descriptografia de Apple Encrypted Archives
- Co-processadores: Análise de firmware AOP, DCP, GPU, 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, capacidades e avaliações
- Provisionamento: Ciclo de vida completo do perfil 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
- Extração de Classes: Extração de classes ObjC e Swift
- Acesso SSH: SSH em dispositivos com jailbreak com debugserver
- Integração com Frida: Capacidades de instrumentação dinâmica
- Decompilador 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
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:
# Criar diretório de configuração
mkdir -p ~/.config/ipsw
# Copiar configuração de exemplo
cp config.example.yml ~/.config/ipsw/config.yaml
Suporte a Banco de Dados
- SQLite (padrão) - Armazenamento local
- PostgreSQL - Implantações de 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"
• Carregando arquivo de cache de símbolos...
• Decompilando... 🕒
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 e patch do sistema
Desenvolvimento iOS
- Depuração e análise de apps
- Gerenciamento de certificados e provisionamento
- Testes e automação de dispositivos
Perícia Digital
- Extração e análise de dados do dispositivo
- Reconstrução de linha do tempo
- Análise de artefatos
Requisitos
- Go: 1.26+ (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 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
📊 Diffs de IPSW
Diferenças de firmware pré-computadas: ipsw-diffs
💬 Comunidade

Contribuindo
Aceitamos contribuições! Consulte CONTRIBUTING.md para diretrizes.
Desenvolvimento
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
Problemas Conhecidos
- Suporte a IPSW macOS: Algumas operações de firmware macOS podem ter problemas de compatibilidade
- Testes: Testes abrangentes são desafiadores devido à variedade de versões de firmware e tipos de dispositivos
- Intensivo em Recursos: Algumas operações exigem memória e poder de processamento significativos
Crie um issue se encontrar problemas - correções são priorizadas! Um conjunto de testes abrangente está planejado para versões futuras.
Créditos
Agradecimentos especiais a:
- Jonathan Levin por suas ferramentas lendárias e documentação abrangente sobre 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 detalhes.