Volver a actualizaciones
Nuevo releaseSep 12, 2026

ipsw v3.1.716

Navaja suiza para investigación en iOS/macOS

Compartir

IPSW Logo

ipsw


ipsw es un conjunto de herramientas de línea de comandos para la investigación de firmware de Apple y la ingeniería inversa. Descarga y descomprime IPSWs y OTAs, inspecciona binarios Mach-O y cachés compartidas de dyld, analiza kernelcaches y trabaja con dispositivos iOS conectados.

Agent skill · Instalación · Ejemplos de CLI · Documentación

Usar ipsw con un agente de IA

Comienza con ipsw-skill si trabajas en Claude Code, Codex, Gemini CLI u otro agente que admita skills. Proporciona al agente referencias de comandos y flujos de trabajo para la extracción de firmware, el análisis de binarios y la investigación de plataformas Apple.

Instala la CLI de ipsw y luego añade la skill:

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

Después puedes pedir una tarea en lenguaje natural. Por ejemplo:

Descarga el último IPSW para iPhone 15 Pro y extrae su kernelcache.

Vuelca las cabeceras de Objective-C de SpringBoardServices desde esta caché compartida de dyld.

Compara los KEXTs de estos dos kernelcaches.

El README de la skill contiene instrucciones de configuración para agentes individuales, incluido el plugin de Claude Code y la extensión de Gemini CLI.

Instalación

macOS

El tap de Homebrew del mantenedor incluye la compilación con extras:

brew install blacktop/tap/ipsw

La fórmula principal de Homebrew también está disponible: brew install ipsw.

Linux

sudo snap install ipsw

Windows

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

También puedes descargar los binarios desde GitHub Releases. Consulta la guía de instalación para otros paquetes y dependencias opcionales. Algunos comandos dependen del sistema operativo anfitrión o de la variante de compilación; el soporte de Frida, por ejemplo, tiene una compilación aparte.

Qué puedes hacer

ÁreaHerramientas
FirmwareDescargar IPSWs, OTAs, instaladores de macOS, Xcode y KDKs; extraer componentes y comparar compilaciones
Mach-OInspeccionar load commands, símbolos, firmas y entitlements; desensamblar código ARM64
Cachés compartidas de dyldBuscar símbolos y referencias cruzadas, extraer dylibs, volcar cabeceras de Objective-C e inspeccionar metadatos de Swift
KernelExtraer KEXTs, inspeccionar llamadas al sistema y símbolos, y comparar kernelcaches
Componentes de firmwareAnalizar IMG4, descifrar archivos AEA e inspeccionar firmware de iBoot y coprocesadores
DispositivosListar dispositivos y apps, transferir archivos con AFC, capturar logs y montar imágenes de desarrollador
App Store ConnectGestionar certificados, bundle IDs, dispositivos y perfiles de aprovisionamiento
InvestigaciónSimbolizar registros de fallos, depurar por SSH, trazar con Frida y descompilar con un LLM

Ejemplos de CLI

Sustituye las rutas de archivo de los ejemplos por las tuyas. Ejecuta ipsw --help o añade --help a cualquier subcomando para ver sus opciones.

Descargar y extraer 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 una caché compartida de 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

Usa la caché directamente para el análisis de Objective-C: las dylibs extraídas aún pueden hacer referencia a metadatos almacenados en otras partes de la caché.

Inspeccionar binarios y 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

Trabajar con un dispositivo conectado

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

Descompilar con un LLM

Los comandos macho disass y dyld disass pueden enviar el desensamblado a un proveedor de LLM configurado con --dec. Consulta la guía del descompilador para la configuración del proveedor, la selección de modelo y ejemplos.

Configuración y automatización

La CLI lee la configuración YAML desde ~/.config/ipsw/config.yaml; usa --config para seleccionar otro archivo. Consulta config.example.yml y la guía de configuración para ajustes y variables de entorno.

Para scripts, selecciona una arquitectura con --arch al abrir binarios universales y usa una ruta completa de dylib cuando un nombre corto sea ambiguo. Los comandos que admiten --json lo documentan en su ayuda.

El daemon independiente ipswd expone una API REST para automatización. Consulta la referencia de la API.

Documentación y comunidad

Al informar de un bug, incluye ipsw version, el comando que ejecutaste y la compilación de firmware o el tipo de archivo relevante. Elimina la información personal de los logs y los informes de fallos.

Compilar y contribuir

Compilar desde el código fuente requiere Go 1.26 o posterior y una cadena de herramientas de C para CGO:

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

Consulta CONTRIBUTING.md para las directrices de desarrollo y contribución.

Créditos

Categorías