🔍 Skill: REA (Reverse Engineer Anything)

Resumen de la Skill

Integración con el toolkit open-source y servidor MCP morluto/rea. Conecta a los agentes de IA (Claude Code, Cursor, Antigravity, Gemini CLI) con herramientas de inspección estática y dinámica (Ghidra, Hopper, IDA Pro, JADX, AST de JS/Electron, Chromium) para entender y recrear aplicaciones sin disponer del código fuente original.


🧭 Metodología de Investigación

REA opera bajo un modelo estructurado de tres fases respaldado por evidencias verificables:

flowchart LR
    A["📂 Aplicación / Binario Objetivo"] --> B["1. Decompile / Inspect<br/>(Desensamblado, AST, Strings)"]
    B --> C["2. Understand<br/>(Grafo de llamadas, APIs, Evidencia)"]
    C --> D["3. Recreate (Clean-Room)<br/>(Código limpio en tu propio stack)"]

⚡ Instalación y Setup Rápido

1. Configuración del Servidor MCP y Agentes

# Asistente interactivo de detección y configuración
npx rea-agents setup

O instalación global mediante npm:

npm install --global rea-agents
rea setup

2. Registrar el Skill en el Asistente de IA

npx skills add morluto/rea --skill reverse-engineer-anything

3. Diagnóstico del Entorno

# Diagnóstico completo de dependencias y proveedores
npx -y rea-agents@latest doctor --json

🛠️ Catálogo de Capacidades y 5 Casos de Uso

1. Aplicaciones Electron y JavaScript (.asar / JS Bundles)

  • Capacidad: Mapeo del árbol de módulos, rutas de IPC (Inter-Process Communication), plugins nativos y almacenamiento sin ejecutar el ejecutable.
  • Comando CLI:
    rea analyze /ruta/al/app.asar --json
    # O análisis específico de JavaScript:
    rea analyze-javascript-application /ruta/a/carpeta-o-asar --json
  • Prompt modelo para el Agente:

    “Inspecciona este paquete app.asar. Rastrea cómo se comunican el proceso principal y el renderizador vía IPC para la persistencia de datos y genera un módulo equivalente en TypeScript.”

2. Binarios Nativos y Formatos Cerrados (C/C++, Rust, Go, Mach-O, ELF, PE)

  • Capacidad: Conexión desatendida con Ghidra, Hopper Disassembler o IDA Pro para extraer funciones, pseudocódigo C, desensamblado, referencias cruzadas (xrefs) y estructuras binarias.
  • Comando CLI:
    export GHIDRA_INSTALL_DIR=/opt/ghidra
    rea function /ruta/al/binario main --provider ghidra --json
  • Prompt modelo para el Agente:

    “Abre este binario con Ghidra usando REA. Localiza la función que parsea el archivo de configuración propietario y explícame la estructura de bytes para escribir un parser en Python.”

3. Inspección Web y Browser Runtime (SPA, Chunks de Webpack/Vite)

  • Capacidad: Captura pasiva mediante navegador Chromium de scripts retenidos, detección de source maps, reconstrucción de módulos (export_web_scripts, trace-web-source-location) y seguimiento de llamadas de red.
  • Prompt modelo para el Agente:

    “Exporta los scripts cargados en la sesión web activa con REA, localiza el módulo que calcula el checksum de las solicitudes a la API y recrea esa función limpia en JavaScript.”

4. Auditoría Estática de Aplicaciones Android (APKs)

  • Capacidad: Inspección mediante JADX headless y JDK sin necesidad de emuladores. Análisis de AndroidManifest.xml, búsqueda de clases, cadenas hardcodeadas y descompilación bajo demanda de métodos sensibles.
  • Prompt modelo para el Agente:

    “Analiza este archivo APK con REA. Lista los permisos, servicios exportados y descompila los métodos de la clase de autenticación para comprobar si hay secretos expuestos.”

5. Análisis de Firmwares IoT y Código Administrado (.NET / CIL)

  • Capacidad: Extracción de particiones y sistemas de archivos embebidos con binwalk/unblob en Linux, combinada con inspección de metadatos CIL para ensamblados .dll/.exe de .NET.
  • Prompt modelo para el Agente:

    “Desempaqueta este firmware binario con REA, extrae el ejecutable del daemon de red y analiza con Ghidra cómo valida las credenciales de administración.”


🔒 Reglas, Límites y Buenas Prácticas

  1. Ejecución 100% Local: REA no envía binarios ni código a servicios externos en la nube. La inspección ocurre enteramente en tu máquina.
  2. Diseño de Sala Limpia (Clean-Room Design): El objetivo no es piratear código ofuscado ni copiar blobs ilegibles, sino entender las especificaciones y construir código nuevo, tipado y legible.
  3. No Clonación Mágica: Los descompiladores producen pseudocódigo y metadatos. Las aplicaciones complejas deben desglosarse en componentes individuales.
  4. Instantáneas (Snapshots): Guarda resultados exitosos para evitar descompilaciones repetidas usando --snapshot /ruta/cache.json.

🔗 Relacionado en la Bóveda