Ir al contenido
angel.library

REA: un MCP de ingeniería inversa para Claude Code, Codex y Cursor

Proyecto de morluto con licencia MIT. Sitio con guías y casos reales en rea.tools.

REA (Reverse Engineer Anything) es un servidor MCP que da a un agente de programación las herramientas para estudiar un programa del que no tienes el código fuente: binarios nativos, apps de JavaScript o Electron, ensamblados .NET, APKs de Android, firmware o sitios web. El agente lo llama, recibe los hallazgos con su evidencia y puede explicar cómo funciona una característica o reimplementarla en tu proyecto.

Ingeniería inversa es deducir cómo funciona un programa a partir del programa compilado, no de su código fuente. Las herramientas clásicas son:

  • Desensamblador: convierte el código máquina en instrucciones de ensamblador legibles.
  • Decompilador: intenta reconstruir a partir de ese ensamblador un pseudocódigo parecido a C.
  • Análisis estático: leer el archivo sin ejecutarlo (cadenas, símbolos, imports, referencias).
  • Análisis dinámico: ejecutar el programa y observar lo que hace (procesos, archivos, tráfico de red).

Un MCP (Model Context Protocol) es el estándar con el que un agente se conecta a herramientas externas; aquí, REA pone esas herramientas de análisis al alcance del agente. Más detalle en MCP en Claude Code.

REA no reinventa los decompiladores: envuelve herramientas existentes y unifica sus resultados.

ObjetivoQué devuelveQué necesita
Binarios nativosPseudocódigo, ensamblador, cadenas, símbolos, llamadas y referenciasHopper, Ghidra o IDA
Binarios de GoVersión del compilador, módulos y ajustes de buildNada extra
JavaScript / ElectronMódulos, imports, source maps, rutas, IPC y addons nativosNode.js y npm
Sitios webEstructura, scripts, tráfico de red y capturasUn navegador de la familia Chrome
Capturas de red (HAR)Peticiones, respuestas y datos expuestosmitmdump en Linux para capturas de mitmproxy
Ensamblados .NETMetadatos, instrucciones CIL y dependencias nativasNada (solo estático)
APKs de AndroidManifiesto, clases y métodos decompiladosJADX y un JDK completo
Dispositivos AndroidPaquetes, procesos, logs y capturas de pantallaadb
FirmwareRegiones y extracciónBinwalk o Unblob en Linux
WASM, bytecode EVM, crashes de LinuxSecciones, selectores, registrosWABT, pwntools, GDB según el caso

También admite proyectos de JEB y recursos de Android vía Apktool. Ghidra tiene soporte para análisis de DOS de 16 bits y soporte experimental en Windows. El README no menciona radare2.

El análisis estático de JavaScript y .NET lee los archivos sin ejecutar nada; las capturas en tiempo de ejecución sí lanzan o interactúan con el programa.

Con Node.js y npm instalados:

Ventana de terminal
pnpm dlx rea-agents setup

El asistente pregunta qué agentes configurar (Claude Code, Codex, Cursor, Gemini CLI, Grok Build y otros), muestra los cambios que va a hacer, guarda copia de la configuración existente y añade el servidor MCP más unas instrucciones de flujo de trabajo (una skill). Después hay que reiniciar el agente.

Para tener el comando rea disponible siempre:

Ventana de terminal
npm install --global rea-agents
rea --help

El proyecto cambia rápido y recomienda actualizar a menudo:

Ventana de terminal
rea update

Desde el agente, en lenguaje natural:

Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.

Desde la terminal, por ejemplo para una app Electron ya extraída o su archivo ASAR:

Ventana de terminal
pnpm dlx -y rea-agents@latest analyze-javascript-application /ruta/absoluta/a/la/app --json

Para binarios nativos hay que configurar antes un proveedor (Hopper, Ghidra o IDA). REA arranca Hopper cuando lo necesita; en macOS, la primera vez hay que resolver a mano el diálogo de licencia o modo demo.

El sitio documenta tres reconstrucciones completas, dos de ellas de videojuegos antiguos:

  • DX-Ball: reconstruir en C el cálculo del paneo de sonido según la posición; la versión reconstruida reproduce los 63 bytes de la función compilada original.
  • Notion: seguir la API del portapapeles desde el renderer de Electron, por el preload y el IPC, hasta el proceso principal.
  • TH04 (Touhou 4, PC-98): recuperar el cálculo de los anillos de balas a partir de instrucciones de 16 bits.
  • Entender cómo resuelve otra app un problema concreto para diseñar tu propia versión.
  • Investigación de seguridad, análisis de malware y divulgación coordinada de vulnerabilidades.
  • CTFs y aprendizaje.
  • Interoperabilidad con un formato o protocolo sin documentar.
  • Preservación de software antiguo, como los casos de juegos de DOS.

El descargo de responsabilidad del proyecto deja claro para qué no es: saltarse DRM, comprobaciones de licencia o anti-cheat, crear trampas para juegos o manipular servicios en línea, evadir autenticación, copiar software propietario o su código y recursos protegidos, y evadir las políticas de los proveedores de IA.

Algunas reglas prácticas:

  1. Lee el EULA del programa. Muchos prohíben expresamente descompilar o desensamblar; las excepciones legales (interoperabilidad, investigación) varían por país.
  2. Que el archivo esté en tu disco no te da permiso para cualquier operación: el propio descargo lo recuerda.
  3. Entender no es copiar. Reimplementar una idea con tu propio código es distinto de reproducir el código o los recursos del original.
  4. Juegos en línea: no lo uses sobre clientes con anti-cheat. Aunque solo quieras mirar, el riesgo de baneo y de incumplir los términos es real.
  5. Herramientas comerciales: IDA, Hopper o JEB deben estar licenciados legalmente. REA no da licencias y prohíbe copias crackeadas o claves compartidas.
  6. Revisa lo que el agente propone ejecutar. Autorizar inspeccionar un archivo no equivale a autorizar ejecutarlo, interceptar su tráfico o tocar un dispositivo.