Voltar às atualizações
New releaseSep 12, 2026

ipsw v3.1.716

Canivete Suíço de Pesquisa para iOS/macOS

Compartilhar

IPSW Logo

ipsw

Canivete suíço para pesquisa em iOS/macOS


ipsw é um conjunto de ferramentas de linha de comando para pesquisa e engenharia reversa de firmware da Apple. Baixe e descompacte IPSWs e OTAs, inspecione binários Mach-O e caches compartilhados do dyld, analise kernelcaches e trabalhe com dispositivos iOS conectados.

Agent skill · Instalação · Exemplos de CLI · Documentação

Use o ipsw com um agente de IA

Comece com o ipsw-skill se você estiver trabalhando no Claude Code, Codex, Gemini CLI ou outro agente que suporte skills. Ele fornece ao agente referências de comandos e fluxos de trabalho para extração de firmware, análise de binários e pesquisa em plataformas Apple.

Instale a CLI ipsw e depois adicione a skill:

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

Você pode então solicitar uma tarefa em linguagem natural. Por exemplo:

Baixe o IPSW mais recente para o iPhone 15 Pro e extraia seu kernelcache.

Faça o dump dos cabeçalhos Objective-C do SpringBoardServices a partir deste cache compartilhado do dyld.

Compare os KEXTs nestes dois kernelcaches.

O README da skill contém instruções de configuração para agentes individuais, incluindo o plugin do Claude Code e a extensão do Gemini CLI.

Instalação

macOS

O tap do Homebrew do mantenedor inclui a build com extras:

brew install blacktop/tap/ipsw

A fórmula principal do Homebrew também está disponível: brew install ipsw.

Linux

sudo snap install ipsw

Windows

scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw

Você também pode baixar binários do GitHub Releases. Consulte o guia de instalação para outros pacotes e dependências opcionais. Alguns comandos dependem do sistema operacional hospedeiro ou da variante de build; o suporte ao Frida, por exemplo, tem uma build separada.

O que você pode fazer

ÁreaFerramentas
FirmwareBaixar IPSWs, OTAs, instaladores do macOS, Xcode e KDKs; extrair componentes e comparar builds
Mach-OInspecionar load commands, símbolos, assinaturas e entitlements; desmontar código ARM64
Caches compartilhados do dyldEncontrar símbolos e referências cruzadas, extrair dylibs, fazer dump de cabeçalhos Objective-C e inspecionar metadados Swift
KernelExtrair KEXTs, inspecionar syscalls e símbolos e comparar kernelcaches
Componentes de firmwareAnalisar IMG4, descriptografar arquivos AEA e inspecionar firmware do iBoot e de coprocessadores
DispositivosListar dispositivos e apps, transferir arquivos com AFC, capturar logs e montar imagens de desenvolvedor
App Store ConnectGerenciar certificados, bundle IDs, dispositivos e perfis de provisionamento
PesquisaSimbolizar logs de crash, depurar via SSH, rastrear com Frida e descompilar com um LLM

Exemplos de CLI

Substitua os caminhos de arquivo de exemplo pelos seus. Execute ipsw --help ou adicione --help a qualquer subcomando para ver suas opções.

Baixar e extrair firmware

# Download the latest IPSW for iPhone 15 Pro
ipsw download ipsw --device iPhone16,1 --latest

# Inspect a local IPSW and extract its kernelcache
ipsw info /path/to/firmware.ipsw
ipsw extract --kernel /path/to/firmware.ipsw

# Compare two firmware builds
ipsw diff /path/to/old.ipsw /path/to/new.ipsw

Explorar um cache compartilhado do dyld

ipsw dyld info /path/to/dyld_shared_cache_arm64e

# Extract Foundation for use in other tools
ipsw dyld extract /path/to/dyld_shared_cache_arm64e Foundation

# Dump headers directly from the cache
ipsw class-dump /path/to/dyld_shared_cache_arm64e SpringBoardServices --headers -o headers

Use o cache diretamente para análise Objective-C: dylibs extraídas ainda podem referenciar metadados armazenados em outro lugar no cache.

Inspecionar binários e kernelcaches

# Select an architecture explicitly for universal binaries
ipsw macho info /path/to/binary --arch arm64e
ipsw macho disass /path/to/binary --arch arm64e --symbol _main

# Search a directory of binaries for an imported symbol
ipsw macho search /path/to/binaries --import 'CCCrypt'

# List KEXTs, then extract one by its full bundle ID
ipsw kernel kexts /path/to/kernelcache
ipsw kernel extract /path/to/kernelcache com.apple.driver.ASIOKit -o kexts

Trabalhar com um dispositivo conectado

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

Descompilar com um LLM

Os comandos macho disass e dyld disass podem enviar o disassembly para um provedor de LLM configurado com --dec. Consulte o guia do descompilador para configuração do provedor, seleção de modelo e exemplos.

Configuração e automação

A CLI lê a configuração YAML de ~/.config/ipsw/config.yaml; use --config para selecionar outro arquivo. Consulte config.example.yml e o guia de configuração para configurações e variáveis de ambiente.

Para scripts, selecione uma arquitetura com --arch ao abrir binários universais e use um caminho completo de dylib quando um nome curto for ambíguo. Os comandos que suportam --json documentam isso em sua ajuda.

O daemon separado ipswd expõe uma API REST para automação. Consulte a referência da API.

Documentação e comunidade

Ao relatar um bug, inclua ipsw version, o comando executado e a build de firmware ou o tipo de arquivo relevante. Oculte informações pessoais de logs e relatórios de crash.

Compilar e contribuir

Compilar a partir do código-fonte requer Go 1.26 ou posterior e um toolchain C para CGO:

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

Consulte CONTRIBUTING.md para diretrizes de desenvolvimento e contribuição.

Créditos

Agradecimentos a Jonathan Levin por suas ferramentas e documentação sobre os internals do iOS, à comunidade de pesquisa de segurança da Apple e a todos que contribuem com código, relatórios de bugs e pesquisa.

Licença

Categorias