REA · Ghidra · agentes de IA

Tu agente abre cualquier programa y explica cómo funciona

REA le da a Claude Code, Codex o Cursor las herramientas de ingeniería inversa. Aquí entiendes la tecnología, ves los casos reales y descubres si te conviene.

Ingeniería inversa con IA: REA + Ghidra
En resumen

La ingeniería inversa es descubrir cómo funciona un programa mirando solo el ejecutable, sin el código fuente. REA (Reverse Engineer Anything) es una herramienta abierta que conecta a tu agente de IA con descompiladores como Ghidra, de la NSA, y devuelve las conclusiones con la prueba y los límites de cada una. Sirve para desarrolladores, gente de seguridad y quien estudia software. Esta guía reúne los enlaces, lo explica todo en español, muestra casos reales y una prueba hecha aquí. Para usarlo necesitas Node.js y un agente de IA en la terminal.

Qué es

Un puente entre tu agente y las herramientas de especialista

REA no es un descompilador nuevo. Le da al agente comandos simples sobre Ghidra, Hopper e IDA, que antes tardaban semanas en dominarse.

Ingeniería inversa con IA: qué es, Ghidra, cómo funciona, casos, vale la pena, precauciones

🔍 Sin el código fuente

Abre binarios nativos (Mac, Windows, Linux), apps Electron/JavaScript, .NET, Android y sitios web, y muestra cómo funciona una función.

🧾 Con prueba adjunta

Cada respuesta viene en cuatro partes: evidencia, mapa recuperado, límites y lo que quedó sin respuesta. Nada de párrafos "confía en mí".

💻 Todo en tu máquina

El análisis se ejecuta localmente. El programa analizado no se envía; solo los resultados van al modelo de tu agente.

Cómo funciona

Del binario a la explicación

Compilar borra nombres, tipos y comentarios. La ingeniería inversa es el camino de vuelta, y REA pone al agente a recorrerlo.

Tú le preguntas al agente→ REA (servidor MCP)→ Ghidra · Hopper · IDA→ pseudocódigo, llamadas, textos→ evidencia + límites→ el agente explica o implementa
El código fuente pasa por el compilador y se vuelve binario
Compilar transforma el código en instrucciones de máquina; los nombres se pierden en el camino.
Electron fácil, nativo difícil
Una app Electron aún conserva el JavaScript (análisis fácil, sin ejecutar nada). Una app nativa necesita descompilador.
Ghidra gratis, Hopper, IDA Pro caro
Ghidra (gratis, de la NSA), Hopper (ligero) e IDA Pro (estándar de la industria, caro): REA usa lo que tengas.
Tu agente, REA vía MCP, Ghidra Hopper IDA
El agente habla con REA por MCP: "abrir binario", "encontrar textos", "¿quién llama a esta función?".
Requisitos previos

Qué necesitas

Para apps JavaScript/Electron basta Node. Para binarios nativos, un descompilador instalado.

Node.js

Versiones 22.19+, 24.11+ o 26+ (23 y 25 no son compatibles).

node -v

Un agente con MCP

Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, OpenCode, Copilot CLI, VS Code y otros.

claude --version

Descompilador (solo para nativo)

Ghidra (gratis, requiere Java), Hopper o IDA. El setup puede instalar Hopper, con tu permiso.

# Ghidra: descárgalo en
github.com/NationalSecurityAgency/ghidra/releases
Guía de uso · paso a paso

Empezar en 4 pasos

Comandos del propio proyecto. REA cambia casi todos los días: revisa la versión antes.

1

Prueba sin instalar nada

El análisis estático de una app Electron no necesita Ghidra ni MCP, y no ejecuta la app. Apunta a la carpeta o al app.asar.

npx -y rea-agents@latest analyze-javascript-application /ruta/absoluta/app.asar --json
2

Conecta REA a tu agente

El setup muestra el plan, hace una copia de tu configuración y pregunta antes de cambiar. Registra el servidor MCP e instala el método de investigación (skill).

npx rea-agents setup   # reinicia el agente después
3

Verifica solo lo que tu tarea necesita

El doctor con alcance prueba un agente o un motor específico, sin reprobar por algo que ni vas a usar.

rea doctor --client claude_code --json
rea doctor --provider ghidra --json
4

Pídele al agente

En lenguaje normal, con un programa tuyo o que tengas autorización para analizar.

"Entiende cómo funciona la búsqueda en la app X, muéstrame la evidencia
y haz algo parecido en mi proyecto."
Casos reales

Lo que ya han hecho con esto

Números tomados de los repositorios y del sitio oficial el 10/10/2026.

Las 3 reglas de la caja fuerte
La caja fuerte. App compilada sin nombres (242+ funciones FUN_…). El agente encontró la función correcta, recuperó las 3 reglas del código y escribió un generador: AGNT-1001 abrió.
Ciclo rastrear, escribir, compilar, comparar
DX-Ball (años 90). 528 funciones candidatas, 283 reescritas en C, 140 idénticas byte a byte. El sonido izquierda/derecha pasó 3.205 pruebas contra el original.
Audífonos y app de un botón
Audífonos. En ~30 min de ida y vuelta, un usuario obtuvo una app propia de un botón para activar la reducción de viento. Otros casos: el copiar y pegar de Notion y el patrón de disparos de un juego de PC-98.
Clean room: mismo resultado sin ver el código
PhotoCraft. Otro método (clean room, sin mirar el binario): Photoshop rehecho en Rust con documentación pública + pruebas contra el original. Aún en alfa.
¿Vale la pena?

Para quién es útil, y para quién no

Evaluación hecha a partir de la documentación, de los casos publicados y de una prueba en esta máquina.

✅ Realmente útil

• Desarrolladores que quieren entender cómo una app muy buena resuelve búsqueda, sincronización o portapapeles.
• Seguridad y privacidad: auditar las apps de tu máquina y ver qué envían hacia afuera.
• Recuperar la lógica de un programa tuyo cuyo código se perdió.
• Estudio, CTF y preservación de software antiguo.
• Quien crea herramientas para IA: el formato evidencia · mapa · límites · desconocidos es un excelente modelo.

⛔ No es para

• Quien no usa terminal: exige Node y paciencia con versiones que cambian todos los días (5.0 → 6.3 en tres días).
• Copiar el producto de un competidor: arriesgado legalmente y pierde el sentido.
• Programas muy protegidos (VMProtect, ofuscación pesada) o con la lógica en el servidor.
• Esperar milagros de cualquier modelo: en binarios protegidos a propósito, incluso los mejores modelos resuelven solo parte de los casos (SRE-Bench).

🧪 Prueba hecha aquí (10/10/2026)

Corrimos REA 6.3.0 (analyze-javascript-application, sin Ghidra y sin MCP) en un servidor Linux ARM. Funcionó en una app Node nuestra (97 archivos, 3,5 MB): en 20 s y 1,3 GB de RAM devolvió un grafo con 2.109 nodos y 3.104 enlaces, 2.508 hallazgos y 5 limitaciones declaradas, sin ejecutar la app. Se trabó en dos objetivos que tenían un único archivo JS gigante (el bundle de una app Electron instalada y typescript/_tsc.js, de 6 MB): quedó al 100% de CPU por más de 20 min en el mismo archivo, ignoró el SIGTERM y solo se detuvo con kill -9. Conclusión: funciona bien en proyectos de tamaño normal; en apps grandes, córrelo con límite de tiempo (timeout -s KILL) y sin node_modules. El JSON completo es enorme (241 MB aquí): en el día a día, deja que el agente lo consulte por MCP en vez de leer el archivo entero.

Datos, servidor, distribución, confianza, velocidad

Para quien vende software: asume que cualquier agente puede mapear tu app. Lo que protege son los datos, el servidor, la distribución, la confianza y la velocidad, no el código cerrado.

Precauciones

Antes de apuntar a un programa

El propio REA lo advierte: la responsabilidad es tuya.

Licencia y ley, no es un sandbox, cambia todos los días
Tres precauciones que valen para cualquier uso.
1 · Ley
Licencia y leyMuchas licencias prohíben la ingeniería inversa; romper la protección contra copia es otro problema. Terreno seguro: tus programas, código abierto, desafíos de seguridad y lo que tengas autorización para probar. No es asesoría legal.
2 · Aísla
No es un sandboxSi REA ejecuta el objetivo, corre con tus permisos. Un binario extraño puede esconder instrucciones para engañar al agente. Usa una máquina aislada y mantén activadas las aprobaciones del agente.
3 · Actualiza
Cambia todos los díasEjecuta rea update o npx rea-agents@latest setup antes de reportar un problema.