Communitygithub.com

Prompt-Motion/ReaReverse

Faça engenharia reversa de binários nativos, gerenciados, Electron/JavaScript, empacotados, firmware e navegadores usando o REA. Use evidências de artefatos fornecidos ou do tempo de execução para explicar recursos, comparar versões, descompilar código ou orientar uma reconstrução. Ignore o REA para análise comum de repositórios de código-fonte.

O que é ReaReverse?

A skill REA (Reverse Engineering Assistant) capacita agentes de IA como Claude Code, Cursor e Codex a analisar artefatos binários e de tempo de execução que não podem ser inspecionados apenas com código-fonte. Ela se concentra em cenários onde a lógica de um aplicativo está em um binário compilado, um arquivo empacotado ou um processo ativo (como um aplicativo Electron ou uma página de navegador). A skill fornece instruções detalhadas sobre como usar várias ferramentas para tarefas como inspecionar arquivos ASAR, analisar pacotes Android (APK), descompilar assemblies .NET gerenciados, examinar firmware e depurar tráfego de rede por meio de capturas HAR/SAZ. Ela enfatiza a diagnose e configuração cuidadosas da conexão MCP (Model Context Protocol) do REA, evitando nova configuração desnecessária e fornecendo comandos de fallback pela CLI se o servidor MCP não estiver disponível. A skill é projetada para preservar evidências e orientar os usuários através da ferramenta mais apropriada para seu artefato ou alvo específico, garantindo que nenhuma suposição seja feita sobre a integridade do código-fonte.

Funciona com✓Claude Code✓Codex CLI✓Cursor✓Antigravity✓Gemini CLI✓OpenCode✓Windsurf
npx skills add https://github.com/Prompt-Motion/ReaReverse/tree/HEAD/.agents/skills/reverse-engineer-anything

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

REA

Use o REA quando uma reivindicação depender de um binário ou pacote fornecido, descompilação, evidência passiva do tempo de execução do aplicativo ou comparação com comportamento não estabelecido pelo código-fonte disponível. Para análise comum de um repositório de código-fonte completo, use as ferramentas normais de repositório e não execute comandos de prontidão ou provedor do REA.

Conecte apenas quando necessário

Instalar esta skill fornece instruções; ela não registra o servidor MCP do REA, não instala mecanismos de análise nem adiciona ferramentas a um agente já em execução.

Se as ferramentas do REA estiverem disponíveis e seu registro não for conhecido como desatualizado, siga diretamente para o alvo. Não execute diagnósticos ou configuração antes de toda investigação. Use a lista real de ferramentas e esquemas de entrada do servidor conectado; uma skill instalada do branch principal do repositório pode descrever capacidades ausentes em uma versão npm mais antiga. Mantenha Evidências inline completas quando esse servidor não anunciar referências retidas.

Se as ferramentas estiverem ausentes, uma chamada for bloqueada pelo cliente ou um provedor necessário estiver indisponível, leia conexão e recuperação. Diagnostique o bloqueador observado, continue o trabalho útil suportado e retome a tarefa original após o reparo. A aprovação do cliente, o PATH do shell, o registro e a disponibilidade do mecanismo têm remédios diferentes; evite repetir a configuração para todos eles.

  1. Diagnostique sem alterar a configuração do REA ou do cliente. npx pode baixar o pacote e escrever no cache do npm. Para Codex, execute npx -y rea-agents@latest doctor --client codex --json. Substitua pelo cliente suportado atual: claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, devin, opencode, antigravity, copilot_cli, commandcode, vscode, grok_build, omp ou grok_bot. grok_bot não tem registro de arquivo local: o doctor relata a etapa de chat do Grok Bot, e a configuração não escreve mcp.json. Se o cliente for desconhecido, use doctor --json e inspecione seus resultados de registro antes de escolher um escopo de configuração.
  2. Distinga o motivo. Um registro ausente, malformado ou desatualizado precisa de um reparo de configuração com escopo definido. Um registro alinhado sem ferramentas na sessão ativa precisa de uma reinicialização/reconexão; o doctor não pode provar que o agente atual se conectou. Um provedor ausente afeta apenas tarefas que exigem esse provedor: a inspeção estática de JavaScript não precisa de Hopper nem Ghidra, e a inspeção Android tem pré-requisitos separados de JADX/Java trazidos pelo usuário.
  3. Para um reparo de configuração, prepare o plano somente leitura: npx -y rea-agents@latest setup --client codex --dry-run --json. Use o ID do cliente atual, mostre seus caminhos exatos propostos, backups e alterações, e obtenha aprovação antes que a configuração escreva a configuração ou instale o Hopper. A configuração normalmente instala também a skill agrupada correspondente; inclua essa substituição no plano revisado. Após a aprovação, aplique o mesmo escopo com npx -y rea-agents@latest setup --client codex --yes. Adicione --install-hopper apenas se essa instalação separada foi necessária e explicitamente aprovada.
  4. Reinicie/reconecte o agente afetado. Verifique se as ferramentas do REA realmente aparecem na sessão e, em seguida, retome a investigação original. Se elas permanecerem ausentes, inspecione o erro de inicialização MCP do cliente em vez de repetir a configuração.

A configuração do REA nunca instala ou atualiza Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk ou Unblob. Use pré-requisitos existentes; não instale software não relacionado para reparar o registro MCP. Para um cliente não suportado, use registro stdio manual com um pacote rea-agents com versão fixa ou continue através da CLI.

Um fallback concreto da CLI para uma árvore JavaScript ou ASAR fornecida pelo operador é:

npx -y rea-agents@latest analyze-javascript-application /caminho/absoluto/para/app --json

Nenhum registro MCP ou mecanismo nativo é necessário. Leia as Evidências retornadas, grafo, limitações e incógnitas com o mesmo cuidado que um resultado MCP; a CLI retorna o registro de Evidências diretamente. Este fallback não estabelece que o MCP está configurado. Tarefas nativas da CLI ainda exigem seu mecanismo selecionado. Prefira uma CLI rea existente. Quando nenhuma estiver instalada e a aquisição do pacote REA estiver dentro do escopo autorizado, use npx -y rea-agents@latest em seu lugar. O reparo da configuração começa com um plano de configuração somente leitura; mostre caminhos, backups e substituição de skill antes de aplicar alterações autorizadas. Preserve a aprovação existente e os limites de execução do alvo. A configuração do REA nunca instala ou atualiza software não relacionado, incluindo Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk ou Unblob.

Roteie o alvo primeiro

Escolha a primeira ferramenta do alvo que o usuário forneceu. Use open_binary para fluxos de trabalho nativos ou de arquivo de alvo ativo; ferramentas sem alvo têm seu próprio caminho ou endpoint explícito e não precisam dele.

  • Árvore ASAR ou JavaScript/Electron extraída: analyze_javascript_application.

  • Inventário de membros de arquivo/pacote (ZIP/APK/IPA/MSIX/AppX ou DMG): open_binary com o caminho local fornecido; use inspect_artifact quando seu grafo e descobertas ajudarem a responder à pergunta.

  • Código APK Android, classes, métodos ou referências recebidas: inspect_android_package, então ferramentas Android focadas quando anunciadas. O inventário de membros do arquivo ainda usa a rota de arquivo acima.

  • Assembly PE/CLI gerenciado: inspect_managed_artifact.

  • Imagem de firmware: inspect_firmware_regions quando anunciado. Use extract_firmware quando a extração for solicitada, com um novo diretório de saída absoluto selecionado pelo chamador. Essas ferramentas usam Binwalk/Unblob fornecido pelo chamador no Linux; veja o guia de firmware.

  • .NET NativeAOT PE/ELF: análise nativa do Ghidra. Código nativo pode produzir pseudocódigo; consulte o fluxo de trabalho NativeAOT em references/native-and-artifacts.md para recuperação opcional de metadados e seu limite de host/layout suportado.

  • Página de navegador de propriedade do usuário já aberta: list_browser_targets.

  • Ação do navegador que o agente deve executar (clicar, digitar, navegar): capture_browser_scenario com ações declaradas. Veja observação de tempo de execução para conectar/iniciar e as ferramentas de navegador de acompanhamento focadas.

  • Tráfego do Fiddler Everywhere ou uma captura nativa .saz: leia o fluxo de trabalho do Fiddler. Inspecione SAZ salvo com inspect_web_network_capture e format: "saz"; conecte o servidor MCP separado do Everywhere para tráfego ao vivo.

  • Capturas HAR/SAZ/mitmproxy nativa/qlog aioquic retidas: inspect_web_network_capture. Selecione ordinais de registro originais quando útil; inspecione campos de produtor e dados auxiliares de byte/número sem buscar URLs registrados ou reivindicar atribuição ao vivo. Veja capturas históricas para o perfil upstream exato e exclusões de credenciais. O suporte a Qlog começa com aioquic 1.5.0 JSON 0.3; a cobertura de fluxo e as declarações de perda de endpoint não recuperam corpos ou estabelecem perda de rede. Prefira resumo de detalhes, depois páginas de rastreamento/fluxo qlog; selecione um rastreamento, ID de fluxo e direção para páginas de contribuição/intervalo. Fatos retêm escopo de todos-os-eventos-registrados-antes-da-seleção. Outros layouts qlog e correlação PCAP não são suportados.

  • Tempo de execução Electron de propriedade do usuário já aberto: list_electron_targets. Antes de uma tentativa do Inspector electron-main, verifique fusíveis empacotados com inspect_electron_fuses; EnableNodeCliInspectArguments desabilitado significa que o aplicativo ignora --inspect.

  • Descoberta de campo de pacote: inspect_packet_fields pesquisa protocolos instalados e nomes/tipos de campo antes de escolher campos para inspect_packet_capture. Consulte/pagina os registros relevantes; registros não estabelecem tráfego observado.

  • Capturas de pacotes registradas: inspect_packet_capture com campos TShark selecionados, filtros de exibição e regras de decodificação como. Requer Linux, util-linux prlimit e REA_TSHARK_COMMAND; veja guia de captura. Os limites de pacote contam os pacotes de entrada antes da filtragem. A saída padrão é de 50 quadros correspondentes; use match_offset / match_limit para páginas posteriores, ou limite nulo explícito para saída correspondente completa. Preserve o digest da fonte entre as páginas. Isso não realiza captura ao vivo. Para resumos de endereço/DNS/SNI/protocolo use inspect_pcap_capture com MCP detalhe resumo, então páginas pcap de tipo retido. Requer Wireshark 4.x tshark e capinfos, com Linux prlimit ou Windows Job Objects; veja resumos de pacote. Selecione uma pergunta DNS exata para páginas de endereço; o esgotamento da página não prova completude da rede. Isso lê gravações e não adquire tráfego.

  • Descoberta de decodificador: inspect_signal_decoders pesquisa IDs de decodificador instalados ou ajuda de decodificador selecionado, incluindo canais e opções. Consulte e pagina os detalhes relevantes antes de escolher as configurações; isso não verifica hardware.

  • Rastreamentos de sinal/lógica registrados: decode_signal_recording com decodificador explícito, configurações de canal e protocolo. No Linux com util-linux prlimit, forneça sigrok-cli 0.7.2 através de REA_SIGROK_COMMAND; veja guia de gravação. A saída padrão é de 50 linhas literais; selecione classes de anotação e pagina com line_offset / line_limit, ou nulo explícito para toda a saída restante. As contagens de janela são linhas de exibição, não anotações ou amostras. Preserve os digests de origem entre as páginas. Isso lê arquivos existentes; não adquire sinais de hardware.

  • Artefato WebAssembly local explícito: inspect_wasm_artifact. Forneça WABT 1.0.42 através de REA_WABT_BIN_DIRECTORY; retenha identidade exata de byte/ferramenta e WAT decodificado. Selecione cola JavaScript e caminhos candidatos explicitamente e preserve ambigüidade URL/caminho. Nenhuma busca implícita ou execução de alvo; WAT não é código-fonte original. Veja o guia WASM.

  • Portador de bytecode EVM local explícito: inspect_evm_interface com codificação raw ou hex selecionada pelo chamador. Preserve digests de portador/decodificado e trate seletores, strings de argumento e mutabilidade como candidatos inferidos; isso não realiza consulta de cadeia ou execução de alvo. Para a interface inferida completa sem hex ou stdout duplicado, descubra suporte e selecione detail: "summary"; Evidências completas permanecem retidas sob sua identidade original. Use o parent_evidence_id retornado para função exata ou páginas de bytecode_hex/stdout/stderr. A cobertura do candidato não estabelece completude da interface. Veja o guia de bytecode EVM.

  • Metadados de compilador Go, módulo ou configuração de compilação incorporados: inspect_go_binary com o arquivo local explícito. Esta inspeção interna sem alvo não requer instalação Go ou desmontador. Preserve bytes brutos do módulo e intervalos de origem; metadados ausentes não provam que um binário não é Go, e registros de texto não analisados permanecem explícitos. Veja o guia de binários Go.

  • Metadados de dependência Rust cargo-auditable incorporados: inspect_rust_binary com o arquivo local ELF, PE ou Mach-O fino explícito. Esta inspeção interna sem alvo não requer instalação Rust ou desmontador. Preserve ordem do pacote, índices de dependência e o intervalo de arquivo da seção. Uma seção .dep-v0 ausente são metadados nulos, não prova de que o binário não tem dependências. Um hash de commit rustc é uma inferência de um caminho somente leitura /rustc/<40-hex>/. Veja o guia de binários Rust.

  • Snapshot de banco de dados SQLite local explícito: inspect_sqlite_database. Inspecione com Node.js 24.x >=24.15 ou 26+ fornecendo limites nativos de SQLite. Leia o esquema primeiro (inventário compacto por padrão) ou selecione uma tabela comum exata e columns quando linhas forem necessárias. Os padrões são esquema de tabela selecionada e 20 linhas; solicite schema_scope: "database" para o esquema armazenado completo. Preserve a identidade WAL de banco de dados e irmão existente; amostras de linha relatam truncamento e têm ordem não especificada. Use um snapshot quiescente em vez de assumir que um par banco de dados/WAL ativo foi copiado atomicamente. Veja o guia SQLite.

  • Arquivo Linux ELF explícito para layout offline, símbolos, realocações ou evidência de mitigação estática: inspect_binary_layout. Esta operação sem alvo usa pwntools fornecido pelo chamador sem abrir um banco de dados de desmontador. Preserve suas localizações brutas e limites de inferência/cobertura; veja o guia de binários offline.

  • Core Linux x86-64 ELF fornecido: inspect_recorded_crash. Leia cada thread registrado, nota bruta e registro vinculado à fonte sem abrir um alvo ao vivo. PIDs históricos não selecionam processos ao vivo. Solicite include_debugger_context apenas quando candidatos de mapeamento somente core ajudarem; veja o guia de crashes registrados.

  • Árvores de tipo/nome/idioma de recurso PE e referências de grupo de ícone estático: inspect_pe_resources com um caminho explícito. Esta operação portátil requer nenhum alvo ou mecanismo ativo; cargas úteis opacas retêm intervalos de arquivo e SHA-256.

  • Biblioteca executável nativa ou banco de dados de análise: open_binary, então use ferramentas de análise focadas diretamente; chame binary_overview quando metadados ou contexto de inventário forem úteis e disponíveis do provedor selecionado.

Para uma configuração MCP IDA existente, use open_binary com o binário de entrada original e provider_id: "ida"; não passe um banco de dados .idb ou .i64. O perfil anexado legado vincula a entrada GUI já aberta por SHA-256 e deixa seu banco de dados aberto. O moderno h...

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Habilidades Relacionadas