Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/jwalker/frida-ios-dump-modern
Segurança iOSPentesting de Apps MóveisEngenharia ReversaAnálise de MalwareSegurança MóvelAnálise de Binários
GitHubjwalker/frida-ios-dump-modern

frida-ios-dump-modern

Uma ferramenta de dump iOS Frida atualizada que suporta as APIs mais recentes do Frida 17.5.2

Ver Repositório
9há 7 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Dumper Moderno de IPA para iOS

Uma ferramenta moderna de descriptografia de memória de aplicativos iOS construída para Frida 17.5.2+ com suporte completo para iOS 14-16 e múltiplos jailbreaks.

Status: ✅ Funcionando e Testado - Faz o dump e descriptografa aplicativos iOS com sucesso usando Frida 17.5.2 em:

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

Funcionalidades

  • ✅ Compatível com Frida 17.5.2+ (usa NativePointer.readByteArray)
  • ✅ Funciona com o jailbreak Taurine (iOS 14.7.1)
  • ✅ Funciona com o jailbreak palera1n (iOS 16.7.12)
  • ✅ Lida com os caminhos de jailbreak /cores/binpack/ do palera1n
  • ✅ Descriptografia rápida usando dump de memória + patch manual de cryptid
  • ✅ Sem chamadas de API obsoletas
  • ✅ Código limpo e de fácil manutenção
  • ✅ Empacotamento automático de IPA
  • ✅ Usa Python paramiko (sem necessidade de ferramentas externas)
  • ✅ Relatório detalhado de progresso

Por que Esta Ferramenta?

O frida-ios-dump original (última atualização em 2020) usa APIs Frida obsoletas que não funcionam com o Frida 17.5.2. Esta ferramenta foi construída do zero usando APIs Frida modernas e foi especificamente testada com os patches de Frida compatíveis com Taurine.

Requisitos

Requisitos do macOS/Host

  • Python 3.8+
  • Frida 17.5.2+
  • paramiko (biblioteca SSH do Python - instalada automaticamente)
  • iproxy (para conexão USB via libimobiledevice)

Requisitos do Dispositivo iOS

  • Dispositivo iOS com jailbreak (testado em iOS 14.7.1 + Taurine)
  • Servidor frida-server com patch em execução (veja os patches Frida em will add my patch repo)
  • Acesso SSH habilitado

Instalação

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

Configuração da Conexão USB

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

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

Uso

1. Listar Aplicativos Instalados

root@kitploit:~
python dump.py -l

2. Fazer o Dump de um Aplicativo

Importante: O aplicativo deve estar em execução antes do dump devido às restrições do 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. Exemplo: Dump do Ventusky

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

Como Funciona

Abordagem Compatível com iOS 16 (Método Híbrido)

  1. Anexar: Conecta-se ao processo do aplicativo em execução via Frida
  2. Enumerar: Lista todos os módulos (binários) carregados no aplicativo
  3. Ler o Binário do Disco: Lê o binário criptografado original do sistema de arquivos do dispositivo
    • Crítico para iOS 16: Preserva os dados de LC_DYLD_CHAINED_FIXUPS
    • Mantém os segmentos DATA originais com as cadeias de fixup intactas
  4. Ler o Segmento Descriptografado: Lê APENAS o segmento TEXT criptografado da memória
    • O iOS descriptografa o código em tempo de execução
    • Lemos apenas a parte descriptografada, não o binário inteiro
  5. Substituir e Aplicar Patch:
    • Substitui o segmento TEXT criptografado no binário do disco pela memória descriptografada
    • Define cryptid=0 em LC_ENCRYPTION_INFO
    • Todos os segmentos DATA permanecem intocados (preserva fixups)
  6. Dump: Grava o binário híbrido em /tmp no dispositivo
  7. Baixar: Transfere os arquivos do dispositivo via SCP usando paramiko
  8. Empacotar: Cria um arquivo IPA descriptografado pronto para análise

Por que isso funciona no iOS 16:

  • O iOS 16 usa chained fixups - os ponteiros são armazenados como "cadeias" que o dyld resolve em tempo de execução
  • O dump da memória fornece ponteiros resolvidos, mas as ferramentas esperam cadeias de fixup
  • Ao ler o binário do disco e substituir apenas o TEXT criptografado, preservamos os fixups originais
  • Essa é a mesma abordagem que o bagbak e outros dumpers modernos usam

Saída

A ferramenta cria:

  • Binários descriptografados individuais
  • Bundle completo do aplicativo com binários descriptografados
  • Arquivo IPA empacotado pronto para análise

Exemplo de estrutura de saída:

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

Compatibilidade com o Jailbreak Taurine

Esta ferramenta foi projetada para funcionar com o servidor Frida com patch Taurine que inclui:

  1. Sem Suspensão de Threads no iOS 14: Previne panics do kernel
  2. Sem Injeção no launchd: Respeita as restrições do Taurine
  3. Inicialização Manual do Aplicativo Necessária: Os aplicativos devem ser iniciados manualmente antes do dump

Solução de Problemas

"Nenhum dispositivo USB encontrado"

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 &"

"Aplicativo não encontrado"

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

"Aplicativo não está em execução"

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

Falha na Autenticação 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" no Hopper

Se você estiver recebendo erros de metadados no iOS 16 após aplicar o patch:

Diagnostique o 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

Pontos principais a verificar:

  1. O tamanho do arquivo corresponde ao binário original no disco
  2. Procure por LC_DYLD_CHAINED_FIXUPS (específico do iOS 16)
  3. Verifique se cryptid é 0 após o patch

A ferramenta agora lê o tamanho original do arquivo do disco para evitar fazer o dump de regiões de memória expandidas em tempo de execução.

Pós-Dump: Verificação

Boas notícias: A ferramenta agora define cryptid=0 automaticamente durante o dump, portanto o patch manual não é mais necessário!

Compatibilidade com iOS 16: A ferramenta usa uma abordagem híbrida:

  1. Lê o binário original do disco (preserva chained fixups)
  2. Substitui apenas o segmento TEXT criptografado pela memória descriptografada
  3. Define cryptid=0 automaticamente
  4. Preserva todos os segmentos DATA com as cadeias de fixup originais intactas

Isso evita os erros "Is this a file manually extracted from the DYLD shared cache?" e "Objective-C Metadata looks mangled" no iOS 16.

Verifique o dump:

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!

Patch manual (legado - não é mais necessário):

Se por algum motivo o patch automático de cryptid não funcionou:

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:

  • ✅ O Hopper abre sem avisos de "ciphered" ou "mangled metadata"
  • ✅ Todas as classes e métodos Objective-C visíveis
  • ✅ Nomes de procedimentos resolvidos corretamente (não sub_XXXXX)
  • ✅ Funciona tanto no iOS 14 (Taurine) quanto no iOS 16 (palera1n)

Detalhes Técnicos - Chained Fixups no iOS 16:

  • Problema: O iOS 16 usa LC_DYLD_CHAINED_FIXUPS para autenticação de ponteiros
  • Questão: O dump da memória fornece ponteiros resolvidos, não cadeias de fixup
  • Solução: Abordagem híbrida
    1. Ler o binário criptografado original do disco (possui cadeias de fixup)
    2. Ler APENAS o segmento TEXT descriptografado da memória
    3. Substituir o TEXT criptografado no binário do disco pela memória descriptografada
    4. Preservar os segmentos DATA do disco (cadeias de fixup intactas)
    5. Definir cryptid=0 automaticamente
  • Resultado: O binário tem código descriptografado + cadeias de fixup originais = Hopper feliz!

Diferenças de API em Relação ao Antigo frida-ios-dump

Esta ferramenta usa APIs modernas do Frida 17.5.2:

Suporte

Se você achar esta ferramenta útil ou precisar de mais atualizações, considere apoiar o projeto que Boba precisa:

☕ Pague-me um Boba

Licença

Licença MIT - Gratuita para pesquisa de segurança e fins educacionais.

Créditos

  • Construída para uso com Frida com patch Taurine (estudo de caso em breve)
  • Inspirada no frida-ios-dump original de AloneMonkey
  • Implementação de API moderna para Frida 17.5.2+

Nota de Segurança

Esta ferramenta é destinada a:

  • Pesquisa de segurança
  • Desafios CTF
  • Fins educacionais
  • ???
  • Lucro
Baixar ferramenta
API Antiga (Obsoleta)Nova API (Moderna)Observações
Module.ensureInitialized()Não necessáriaObjC inicializado automaticamente
Module.findExportByName(null, 'name')Module.findGlobalExportByName('name')Exportações globais
Process.getModuleByName()Process.findModuleByName()Retorna null se não encontrado
E/S de arquivo POSIX manualnew File(path, 'wb')API File integrada
Memory.writeByteArray()file.write(arrayBuffer)Gravação binária direta