Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
frida-ios-dump-modern — Una herramienta actualizada de dump para iOS compatible con las últimas APIs de Frida 17.5.2 | Kitploit
Herramientas/GitHubGitHub/jwalker/frida-ios-dump-modern
Seguridad iOSPentesting de Apps MóvilesIngeniería InversaAnálisis de MalwareSeguridad MóvilAnálisis de Binarios
GitHubjwalker/frida-ios-dump-modern

frida-ios-dump-modern

Una herramienta actualizada de dump para iOS compatible con las últimas APIs de Frida 17.5.2

Ver Repositorio
9hace 7 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Dumper moderno de IPA para iOS

Una herramienta moderna de descifrado de memoria de aplicaciones iOS, creada para Frida 17.5.2+ con soporte completo para iOS 14-16 y múltiples jailbreaks.

Estado: ✅ Funcionando y probado - Volca y descifra aplicaciones iOS con Frida 17.5.2 en:

  • iOS 14.7.1 + jailbreak Taurine (iPad mini 5)
  • iOS 16.7.12 + jailbreak palera1n (iPhone 8)

Características

  • ✅ Compatible con Frida 17.5.2+ (usa NativePointer.readByteArray)
  • ✅ Funciona con el jailbreak Taurine (iOS 14.7.1)
  • ✅ Funciona con el jailbreak palera1n (iOS 16.7.12)
  • ✅ Gestiona las rutas de jailbreak /cores/binpack/ de palera1n
  • ✅ Descifrado rápido mediante volcado de memoria + parcheo manual de cryptid
  • ✅ Sin llamadas a API obsoletas
  • ✅ Código limpio y mantenible
  • ✅ Empaquetado automático de IPA
  • ✅ Usa Python paramiko (no se necesitan herramientas externas)
  • ✅ Informe detallado de progreso

¿Por qué esta herramienta?

El frida-ios-dump original (última actualización en 2020) usa API de Frida obsoletas que no funcionan con Frida 17.5.2. Esta herramienta está construida desde cero con API modernas de Frida y está específicamente probada con los parches de Frida compatibles con Taurine.

Requisitos

Requisitos de macOS/Host

  • Python 3.8+
  • Frida 17.5.2+
  • paramiko (librería SSH de Python: se instala automáticamente)
  • iproxy (para la conexión USB mediante libimobiledevice)

Requisitos del dispositivo iOS

  • Dispositivo iOS con jailbreak (probado en iOS 14.7.1 + Taurine)
  • frida-server parcheado en ejecución (consulta los parches de Frida en will add my patch repo)
  • Acceso SSH habilitado

Instalación

root@kitploit:~
cd /Users/username/git/frida-ios-dump-modern

# Create virtual environment with uv:
uv venv
source .venv/bin/activate

# Install dependencies
uv pip install -r requirements.txt

# Make script executable
chmod +x dump.py

Configurar la conexión USB

root@kitploit:~
# Install libimobiledevice if needed
brew install libimobiledevice

# Start USB tunnel (in a separate terminal)
iproxy 2222 22

Uso

1. Listar las aplicaciones instaladas

root@kitploit:~
python dump.py -l

2. Volcar una aplicación

Importante: La aplicación debe estar en ejecución antes de volcarla debido a las restricciones del jailbreak Taurine.

root@kitploit:~
# 1. Launch the app on your device manually
# 2. Run the dumper:

python dump.py com.example.app

# With custom SSH password:
python dump.py com.example.app -P your_password

# With custom output directory:
python dump.py com.example.app -o /path/to/output

3. Ejemplo: volcar Ventusky

root@kitploit:~
# 1. Open Ventusky on your iOS device
# 2. Run:
python dump.py com.in-meteo.ventusky -P mypassword

Cómo funciona

Enfoque compatible con iOS 16 (método híbrido)

  1. Adjuntar: se conecta al proceso de la aplicación en ejecución mediante Frida
  2. Enumerar: lista todos los módulos (binarios) cargados en la aplicación
  3. Leer binario del disco: lee el binario cifrado original del sistema de archivos del dispositivo
    • Crítico para iOS 16: conserva los datos de LC_DYLD_CHAINED_FIXUPS
    • Mantiene los segmentos DATA originales con las cadenas de fixups intactas
  4. Leer segmento descifrado: lee SOLO el segmento TEXT cifrado de la memoria
    • iOS descifra el código en tiempo de ejecución
    • Leemos solo la parte descifrada, no el binario completo
  5. Reemplazar y parchear:
    • Reemplaza el segmento TEXT cifrado del binario en disco con la memoria descifrada
    • Establece cryptid=0 en LC_ENCRYPTION_INFO
    • Todos los segmentos DATA permanecen intactos (conserva los fixups)
  6. Volcar: escribe el binario híbrido en /tmp en el dispositivo
  7. Descargar: transfiere los archivos del dispositivo mediante SCP a través de paramiko
  8. Empaquetar: crea un archivo IPA descifrado listo para el análisis

Por qué funciona esto en iOS 16:

  • iOS 16 usa chained fixups: los punteros se almacenan como «cadenas» que dyld resuelve en tiempo de ejecución
  • Volcar desde la memoria nos da punteros resueltos, pero las herramientas esperan cadenas de fixups
  • Al leer el binario del disco y reemplazar solo el TEXT cifrado, conservamos los fixups originales
  • Este es el mismo enfoque que usan bagbak y otros dumpers modernos

Salida

La herramienta crea:

  • Binarios descifrados individuales
  • Paquete de aplicación completo con binarios descifrados
  • Archivo IPA empaquetado listo para el análisis

Estructura de salida de ejemplo:

root@kitploit:~
/tmp/Ventusky_decrypted/
├── Payload/
│   └── Ventusky.app/
│       ├── Ventusky (decrypted main binary)
│       ├── Frameworks/
│       │   └── *.framework (decrypted frameworks)
│       └── ... (other app resources)
└── Ventusky_decrypted.ipa

Compatibilidad con el jailbreak Taurine

Esta herramienta está diseñada para funcionar con el servidor de Frida parcheado para Taurine, que incluye:

  1. Sin suspensión de hilos en iOS 14: evita pánicos de kernel
  2. Sin inyección en launchd: respeta las restricciones de Taurine
  3. Lanzamiento manual de la aplicación necesario: las aplicaciones deben abrirse manualmente antes de volcarlas

Solución de problemas

"No se encontró ningún dispositivo USB"

root@kitploit:~
# Check frida-server is running on device:
ssh -p 2222 root@localhost "ps aux | grep frida-server"

# Restart frida-server if needed:
ssh -p 2222 root@localhost "killall frida-server; frida-server &"

"Aplicación no encontrada"

root@kitploit:~
# List apps to find correct bundle ID:
python dump.py -l

"La aplicación no está en ejecución"

root@kitploit:~
# Launch the app manually on your device first
# This is required due to Taurine jailbreak restrictions

Error de autenticación SSH

root@kitploit:~
# Test SSH connection:
ssh -p 2222 root@localhost

# If password prompt works, use -P flag:
python dump.py com.example.app -P your_password

iOS 16: "Objective-C Metadata looks mangled" en Hopper

Si estás obteniendo errores de metadatos en iOS 16 después del parcheo:

Diagnostica el problema:

root@kitploit:~
# Run diagnostic on dumped binary
./diagnose_ios16.sh /tmp/AppName_decrypted/Payload/AppName.app/AppName

# Compare with working iOS 14 binary
./diagnose_ios16.sh /path/to/working/ios14/binary

Puntos clave a revisar:

  1. El tamaño del archivo coincide con el binario original en disco
  2. Busca LC_DYLD_CHAINED_FIXUPS (específico de iOS 16)
  3. Verifica que cryptid sea 0 después del parcheo

La herramienta ahora lee el tamaño del archivo original del disco para evitar volcar regiones de memoria expandidas en tiempo de ejecución.

Verificación posterior al volcado

Buenas noticias: la herramienta ahora establece cryptid=0 automáticamente durante el volcado, ¡así que el parcheo manual ya no es necesario!

Compatibilidad con iOS 16: la herramienta usa un enfoque híbrido:

  1. Lee el binario original del disco (conserva los chained fixups)
  2. Reemplaza solo el segmento TEXT cifrado con la memoria descifrada
  3. Establece cryptid=0 automáticamente
  4. Conserva todos los segmentos DATA con las cadenas de fixups originales intactas

Esto evita los errores "Is this a file manually extracted from the DYLD shared cache?" y "Objective-C Metadata looks mangled" en iOS 16.

Verifica el volcado:

root@kitploit:~
# Check that cryptid is 0 (should be automatic now)
otool -l Payload/App.app/App | grep cryptid
# Should show: cryptid 0

# Check file has all segments
otool -l Payload/App.app/App | grep "segname __"
# Should show: __TEXT, __DATA_CONST, __DATA, __LINKEDIT

# Open in Hopper - should work without warnings!

Parcheo manual (heredado: ya no es necesario):

Si por alguna razón el parcheo automático de cryptid no funcionó:

root@kitploit:~
# Check if patching needed
otool -l Payload/App.app/App | grep cryptid
# If shows cryptid 1, run:

python patch_cryptid.py Payload/App.app/App
mv Payload/App.app/App.patched Payload/App.app/App

Resultado esperado:

  • ✅ Hopper se abre sin advertencias de "ciphered" o "mangled metadata"
  • ✅ Todas las clases y métodos de Objective-C visibles
  • ✅ Nombres de procedimientos resueltos correctamente (no sub_XXXXX)
  • ✅ Funciona tanto en iOS 14 (Taurine) como en iOS 16 (palera1n)

Detalles técnicos: chained fixups de iOS 16

  • Problema: iOS 16 usa LC_DYLD_CHAINED_FIXUPS para la autenticación de punteros
  • Inconveniente: volcar desde la memoria da punteros resueltos, no cadenas de fixups
  • Solución: enfoque híbrido
    1. Lee el binario cifrado original del disco (tiene cadenas de fixups)
    2. Lee SOLO el segmento TEXT descifrado de la memoria
    3. Reemplaza el TEXT cifrado en el binario del disco con la memoria descifrada
    4. Conserva los segmentos DATA del disco (cadenas de fixups intactas)
    5. Establece cryptid=0 automáticamente
  • Resultado: el binario tiene código descifrado + cadenas de fixups originales = ¡Hopper contento!

Diferencias de API con el antiguo frida-ios-dump

Esta herramienta usa las API modernas de Frida 17.5.2:

Soporte

Si te resulta útil esta herramienta o necesitas más actualizaciones, considera apoyar el proyecto. Boba lo necesita:

☕ Invítame un Boba

Licencia

Licencia MIT: libre para investigación de seguridad y fines educativos.

Créditos

  • Creada para usarse con Frida parcheado para Taurine (estudio de caso próximamente)
  • Inspirada en el frida-ios-dump original de AloneMonkey
  • Implementación de API moderna para Frida 17.5.2+

Nota de seguridad

Esta herramienta está destinada a:

  • Investigación de seguridad
  • Retos CTF
  • Fines educativos
  • ???
  • Beneficio
Descargar herramienta
API antigua (obsoleta)API nueva (moderna)Notas
Module.ensureInitialized()No es necesarioObjC se auto-inicializa
Module.findExportByName(null, 'name')Module.findGlobalExportByName('name')Exportaciones globales
Process.getModuleByName()Process.findModuleByName()Devuelve null si no se encuentra
E/S de archivos POSIX manualnew File(path, 'wb')API de archivo integrada
Memory.writeByteArray()file.write(arrayBuffer)Escritura binaria directa