reverse-engineering-ios-app-with-frida
Permite que seu agente analise aplicativos de iPhone sem o código fonte. Ele investiga o funcionamento interno e busca por segredos. É útil para testes de segurança em aplicativos iOS.
O que ela faz
Esta ferramenta ajuda a investigar como um aplicativo de iPhone funciona por dentro, mesmo sem o código original. Ela permite ver o que o aplicativo está fazendo em tempo real, como ele se comunica com outros serviços ou como ele protege informações.
Quando usar
- ✓Quando você precisa entender um aplicativo para testar sua segurança (com permissão).
- ✓Para descobrir como um aplicativo guarda ou usa informações secretas, como senhas ou chaves de criptografia.
- ✓Para ver como um aplicativo lida com informações importantes ou protege seus dados.
Exemplo do que pedir para a IA
“Investigue o aplicativo 'MeuApp' para ver como ele armazena as informações de login do usuário.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta se conecta ao aplicativo em execução no seu iPhone e observa suas ações internas. Ela pode mostrar quais funções estão sendo chamadas, quais dados estão sendo trocados e até mesmo permitir que você mude o comportamento do aplicativo.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill reverse-engineering-ios-app-with-fridaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/reverse-engineering-ios-app-with-frida/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Engenharia Reversa de Apps iOS com Frida
Quando Usar
Use esta habilidade quando:
- Analisar os detalhes internos de apps iOS durante avaliações de segurança autorizadas sem código-fonte
- Extrair chaves de criptografia, segredos de API ou detalhes de protocolos proprietários de apps iOS em execução
- Compreender a lógica ofuscada em Swift/Objective-C através do rastreamento de métodos em tempo de execução
- Contornar mecanismos de segurança complexos (detecção de jailbreak, anti-tampering, anti-debugging)
Não use esta habilidade para engenharia reversa não autorizada que viole termos de serviço ou leis de propriedade intelectual.
Pré-requisitos
- Dispositivo iOS com jailbreak e servidor Frida instalado via Cydia/Sileo, ou dispositivo sem jailbreak com IPA com Frida Gadget injetado
- Python 3.10+ com
frida-tools(pip install frida-tools) - Conexão USB ao dispositivo iOS
- class-dump ou dsdump para extração de cabeçalhos Objective-C
- Hopper Disassembler ou Ghidra para análise estática de binários (complementar)
- Conhecimento do runtime Objective-C e do name mangling do Swift
Fluxo de Trabalho
Passo 1: Extrair e Analisar o Binário
# On jailbroken device, find app binary
ssh root@<device_ip>
find /var/containers/Bundle/Application/ -name "TargetApp" -type f
# Pull decrypted binary (apps from App Store are encrypted with FairPlay)
# Use frida-ios-dump or Clutch for decryption
pip install frida-ios-dump
dump.py com.target.app
# Extract Objective-C class headers
class-dump -H decrypted_binary -o headers/
ls headers/ # Lists all class header files
Passo 2: Enumerar Classes e Métodos em Tempo de Execução
// enumerate_classes.js - List all loaded classes
Java.perform(function() {}); // N/A for iOS
// iOS uses ObjC runtime
if (ObjC.available) {
var classes = ObjC.classes;
for (var className in classes) {
if (className.indexOf("Target") !== -1 ||
className.indexOf("Auth") !== -1 ||
className.indexOf("Crypto") !== -1) {
console.log("[Class] " + className);
// List methods
var methods = classes[className].$ownMethods;
for (var i = 0; i < methods.length; i++) {
console.log(" [Method] " + methods[i]);
}
}
}
}
frida -U -n TargetApp -l enumerate_classes.js
Passo 3: Rastrear Chamadas de Métodos com frida-trace
# Trace all methods of a class
frida-trace -U -n TargetApp -m "*[TargetAuth *]"
# Trace specific patterns
frida-trace -U -n TargetApp -m "*[*Crypto* *]"
frida-trace -U -n TargetApp -m "*[*KeyChain* *]"
frida-trace -U -n TargetApp -m "*[*Token* *]"
# Trace Swift methods (mangled names)
frida-trace -U -n TargetApp -m "*[*$s*Auth*]"
Passo 4: Hookar e Modificar o Comportamento de Métodos
// hook_auth.js - Intercepta a lógica de autenticação
if (ObjC.available) {
// Hooka método Objective-C
var AuthManager = ObjC.classes.AuthManager;
if (AuthManager) {
Interceptor.attach(AuthManager["- validateToken:"].implementation, {
onEnter: function(args) {
// args[0] = self, args[1] = selector, args[2+] = argumentos do método
var token = new ObjC.Object(args[2]);
console.log("[Auth] validateToken chamado com: " + token.toString());
},
onLeave: function(retval) {
console.log("[Auth] validateToken retornou: " + retval);
// Opcionalmente, modifique o valor de retorno
// retval.replace(ptr(1)); // Força o retorno true
}
});
}
// Hooka CommonCrypto para análise de criptografia
var CCCrypt = Module.findExportByName("libcommonCrypto.dylib", "CCCrypt");
if (CCCrypt) {
Interceptor.attach(CCCrypt, {
onEnter: function(args) {
this.operation = args[0].toInt32(); // 0=criptografar, 1=descriptografar
this.algorithm = args[1].toInt32(); // 0=AES128, 1=DES, 2=3DES
this.keyLength = args[4].toInt32();
this.key = Memory.readByteArray(args[3], this.keyLength);
console.log("[CCCrypt] Op: " + (this.operation === 0 ? "Criptografar" : "Descriptografar"));
console.log("[CCCrypt] Chave: " + hexify(this.key));
},
onLeave: function(retval) {
console.log("[CCCrypt] Status: " + retval);
}
});
}
}
function hexify(buffer) {
var bytes = new Uint8Array(buffer);
var hex = [];
for (var i = 0; i < bytes.length; i++) {
…
Perguntas frequentes
Preciso de um iPhone especial?
Sim, geralmente é necessário um iPhone com 'jailbreak' (uma modificação que permite mais controle) ou um aplicativo modificado para que a ferramenta funcione.
Isso é legal?
Só deve ser usado em aplicativos que você tem permissão para investigar, como parte de testes de segurança autorizados. Usar em outros aplicativos pode ser ilegal ou contra os termos de serviço.
O que são 'métodos' e 'classes'?
Pense em 'classes' como os diferentes tipos de blocos de construção de um aplicativo e 'métodos' como as ações que esses blocos podem realizar. A ferramenta permite ver e até interagir com essas ações.
Detalhes
Descrição original do autor
Reverse engineers iOS applications using Frida dynamic instrumentation to understand internal logic, extract encryption keys, bypass security controls, and discover hidden functionality without source code access. Use when performing authorized iOS penetration testing, analyzing proprietary protocols, understanding obfuscated logic, or extracting runtime secrets from iOS binaries. Activates for re
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6189
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC