Introducción
Créditos:
La ingeniería inversa es muy util cuando quieres migrar de lenguaje, por ejmplo pasar código de Visual Basic 6 o Java a Python. Pero a veces por el motivo que fuere, no se dispone de las fuentes originales.
Ahí es donde entra en acción REA que según dicen es capaza de obtener código fuente de un lenguaje de alto nivel a partir de código ejecutable.
Hay herramientas de ingeniería inversa que són las que llama REA:
- Ghidra que es gratis y desarrollada por la NSA (National Security Agence) de 2019 c0n licencia Apache.
- Hopper para Mac
- Ida Pro que es la versión cara que va desde 1100 € a 8600 € por año.
Un problema que tiene estas herramienta es que a veces no puede encontrar el nombre real de las funciones y las llama "funct" mas la posicón de memoria. A veces es casi irreconocible el código que devuelve pues es casi ensamblador. Por eso REA intentar aprovechar este código y convertirlo al lengiaje de alto nivel deseado. Y una vez puesto, que sea compatible en la mayoría de sistemas operativos
Puede haber algún problema de patentes si intentas analizar y replicar software ya existente. Todo depende del nivel que entres. Pero las leyes cambian y seguramente a partir de este proyecto viral, de seguro van a haber cambios en la legislación.
¿Que és REA?
Es un servidor Open Source que utiliza un software MCP (Model Control Protocol) que es un conector de interoperabilidad entre diferentes herramientas por ejemplo decompiladores, debuggers, inspectores web .. ,con agentes de IA (Claude Code, Codex, Cursor) para generar ingeniería inversa y por tanto la obtención de código fuente o versión nuestra de la aplicación que le hemos pasado.
Si le pides que te analice una aplicación te explica 3 cosas sin inventarse nada, es decir te dice cuales han sido sus límites:
- Como funciona
- De donde sacó cada elemento (Evidencia)
- Lo que no ha podido averiguar.
El código fuente original no te lo puede dar, pero si puede darte un esquema de las funciones que entran en juego. Y a continuación el agente de IA, basándose en ese exquema crea un código fuente y lo pureba y va ajustándolo con tu ayuda.
- Pseudocódigo parecido a C (a partir del códigp máquina)
- A veces JS y módulos
- Ensamblador (instruciones del procesador)
- Mapas de módulos
- Rutas de llamadas
- Actividad de red del programa.
Prerrequisitos
Y ahora comprobar si funciona:
claude --version
Y me ha respondido
2.1.303 (Claude Code)
¿Como instalarlo?
- Melina ha creado una carpeta para este proyecto y la añade utilizando Claude Code
- Escribe este propmt a Claude Code: "Copia este repo e instala REA: https://github.com/morluto/rea
- Lo que hace es clonar el repositorio en esa carpeta para poder ser utilizado.
- Cuando acaba de instalarlo aparece una especio de log donde dice donde lo ha instalado, que comando utilizar para ejecutarlo. También indica que programas se requieren en su caso lo dice que le falta Hopper o GLH.
- Pide reiniciar sesión de Claude Code para que surta efectos la nueva configuración.
¿Se puede trabajar igual sin REA?
Para aquellas personas más versadas en ingeniería inversa, tal vez con Claude Code se puede pedir que jonstale Ghidra y que a partir de ahí haga lo mismo. Pero para las personas que no tienen una metodología clara de actuar es mejor iniciarse en este proceso con REA.
Cuidadín!
- Se pueden abrir binarios de los que no se sabe nada.
- Dentro de cada binario puede haber instrucciones ocultas para que las lea el agente y las tome por órdenes que las puede obedecer.
- Para ello se recomienda ejecutarlo en un "sandbox" o entorno cerrado donde si algo sale mal, no afecte a nada fuera de él.


