YouMind
Iniciar sesión

Cómo convertir Opus 5.5 en una máquina de ingeniería inversa con 8 pasos (curso completo)

@hanakoxbt
INGLÉS13 oct 2026
194K
139
14
15
332

TL;DR

Esta guía detalla un flujo de trabajo de 8 pasos que utiliza la herramienta REA y Opus 5.5 para realizar ingeniería inversa de software. Cubre el enrutamiento de objetivos, instalación, reconocimiento, descompilación, manejo de ofuscación, análisis en enjambre, reconstrucción en sala limpia y verificación.

El 8 de octubre de 2026, un repositorio del que nadie había oído hablar tres meses antes alcanzó el número uno en las tendencias de GitHub.

Se llama REA, Reverse Engineer Anything (Ingeniería Inversa de Cualquier Cosa), y le da a tu agente un desensamblador real.

**Guarda esto en favoritos: si quieres la versión larga, el curso completo de 20 lecciones sobre este tema ya está disponible en**

reacourse.xyz

Te lleva de una terminal en blanco a una reconstrucción que supera sus propias pruebas de paridad, con cada comando y prompt escritos paso a paso. EMPIEZA POR AQUÍ.

La reacción fue la misma en todas partes esa semana.

Matthew Berman lo resumió en tres palabras, y 3,6 millones de personas lo vieron.

https://x.com/MatthewBerman/status/2108245653843509415

REA es un servidor MCP de código abierto más una CLI que se conecta a Claude Code, Codex, Cursor y Gemini CLI.

Licencia MIT, creado por morluto, primer lanzamiento el 12 de julio de 2026 y, tres meses después, más de 100.000 estrellas en GitHub.

Todo se ejecuta localmente, y cada conclusión viene etiquetada como observación, inferencia o incógnita, con la dirección o el punto de llamada que la respalda.

Este es el camino completo desde un binario sellado hasta una reconstrucción que te pertenece, en ocho pasos.

Hanako - inline image

Antes de los pasos: lo que la gente ya ha lanzado con esto

La herramienta no es la historia, sino lo que se logró en cuatro semanas.

ArtCraft reconstruyó siete aplicaciones de Adobe como alternativas gratuitas y de código abierto, y luego fue a por Office con WordCraft, GridCraft y DeckCraft.

Doce aplicaciones hasta ahora, todas escritas desde cero en Rust, nativas en tres plataformas, y todas menos una también funcionan en una pestaña del navegador mediante WebAssembly.

En el lado de los videojuegos, las pruebas son aún más concretas:

  • Super Mario Sunshine recibió un port nativo para PC: unas 365 horas de agente y 17.300 millones de tokens, usando Claude y Codex juntos
  • Un juego de Touhou reconstruido con agentes en el blog oficial de REA: 697 funciones, 696 coincidencias exactas, jugable en unos 12 días
  • El autenticador Aegis (3.077 clases) desmontado y reconstruido, superando los 133 casos de prueba
  • La función de paneo de sonido de DX-Ball reconstruida en C, superando 3.205 casos de prueba originales de x86 y reproduciendo los 63 bytes compilados

Fíjate en lo que no es esa lista.

Nadie reventó una comprobación de licencia, nadie publicó el código fuente de otra persona.

Cada uno de esos casos es un comportamiento recuperado, documentado y reconstruido en código nuevo.

01. Analiza el objetivo antes de abrir nada

La razón por la que esto se viralizó no es que lea bien una sola cosa. Lee casi todo, y muestra las pruebas de cada afirmación que hace.

https://x.com/RoundtableSpace/status/2109165852578992582

Esa lista es también la primera decisión que tomas. La forma más común de perder una tarde es buscar un desensamblador cuando el objetivo es una aplicación Electron cuyo JavaScript está ahí mismo, a la vista.

Apunta REA hacia Electron y obtienes módulos, importaciones y límites IPC en segundos sin ningún motor, mientras que un Mach-O o ELF nativo abre una base de datos de Hopper, que es el camino más profundo y más lento.

Saber en cuál de los dos estás te ahorra horas, así que conviértelo en la tarea de tu primer prompt.

markdown
1Quiero entender cómo funciona [FUNCIÓN] en [APLICACIÓN], que se encuentra en [RUTA ABSOLUTA].
2 Primero dime qué tipo de objetivo es (nativo, Electron/JS, .NET, Go, APK, WASM)
3 y elige la herramienta REA adecuada para abrirlo. No empieces todavía el análisis profundo.
4 Luego haz un mapa en un párrafo: con qué está construido, qué tamaño tiene, dónde
5 buscarías primero [FUNCIÓN]. Mantén separadas las observaciones, inferencias e incógnitas.
Hanako - inline image

La parte que casi nadie menciona: muchos juegos de Unity distribuyen su lógica como .NET, y REA lee .NET sin ningún motor adicional.

Esa es la única razón por la que un juego comprado en Steam pasa de binario a C# editable en media hora.

Y cualquier aplicación Electron en tu máquina se puede leer ahora mismo, sin siquiera ejecutarla:

bash
1# dónde está el JavaScript
2macOS: /Applications/<App>.app/Contents/Resources/app.asar
3Windows: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar
4 npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

02. Instálalo en cinco minutos, luego añade un motor

Lo que hace que esto funcione no es un prompt ingenioso. Es un motor de desensamblado real conectado al agente, que es exactamente como lo describió un desarrollador.

https://x.com/techNmak/status/2108431092462338178

La configuración registra el servidor MCP con tu agente e instala la habilidad de flujo de trabajo correspondiente.

Muestra cada cambio antes de escribir nada y hace una copia de seguridad de lo que toca.

node -v # Node 22.19+, 24.11+ o 26+. Las versiones 23 y 25 no son compatibles

bash
1npx rea-agents@latest setup # registra el servidor MCP, pregunta antes de escribir
2npm install --global rea-agents # el comando corto rea, para siempre
3rea --help
4# reinicia el agente y luego verifica. doctor solo comprueba, nunca cambia nada
5npx -y rea-agents@latest doctor --client claude_code --json

El reinicio importa más de lo que parece: una sesión de terminal debe iniciarse desde cero, y las aplicaciones de escritorio necesitan cerrarse por completo, porque cerrar la ventana no es suficiente.

Luego añade un motor solo para lo que realmente quieras leer:

Hay un archivo que vale la pena escribir antes de tu primer objetivo real: las reglas de la casa en claude-md.

Analiza solo lo que te pertenece, etiqueta cada afirmación como observación, inferencia o incógnita, cita la dirección que la respalda y nunca permitas que un comportamiento recuperado se considere terminado sin una prueba superada.

bash
1# programas y juegos nativos: Ghidra 12.1.x y JDK 21 o superior
2 export GHIDRA_INSTALL_DIR=/ruta/absoluta/a/ghidra_12.1.4_PUBLIC
3 export JAVA_HOME=/ruta/absoluta/a/jdk-21
4 npx -y rea-agents@latest doctor --provider ghidra --json
5
6 # aplicaciones Android: JDK 17+ y jadx-headless-mcp 0.7.1
7 export REA_JADX_MCP_JAR=/ruta/absoluta/jadx-headless-mcp-0.7.1-all.jar
8 rea inspect-android-package /ruta/App.apk
9
10 # bytecode de contratos inteligentes, Linux x64 por ahora
11 rea inspect-evm-interface ./runtime.hex hex --json

03. Reconocimiento: el mapa va antes que el código

No abras ni una sola función todavía.

Un comando te dice en qué máquina se ejecuta el binario, cuántas funciones hay dentro y todo el texto legible enterrado en él.

Ese texto es la pista más rápida que vas a conseguir en todo el día: endpoints, cadenas de error y nombres de funciones describen la aplicación antes de que leas ninguna lógica.

json
1rea.open_binary { path: "/Applications/Target.app/Contents/MacOS/Target" }
2rea.binary_overview {}
3 arch: arm64
4 functions: 1.284 identificadas
5 entry: _main @ 0x1000051c0
6
7rea.search { query: "http" }
8 0x10004a2c0 "https://api.target.app/v3/sync"
9 0x10004a300 "Authorization: Bearer "
10
11rea.xrefs { address: "0x100012ab0" }
12 147 referencias -> cargador de configuración principal, llamado en todas partes
Hanako - inline image

REA cuenta cuántas veces se llama a cada función, y ese recuento es el número de referencias cruzadas.

Una función llamada 147 veces es la arquitectura de la aplicación; una llamada dos veces es una función auxiliar que puede esperar.

Ordena por ese número y ve bajando, nunca por orden de archivo, porque el orden de archivo es la forma en que la gente pierde un fin de semana dentro de un binario que solo tenía cuatro funciones interesantes.

04. Descompila una función, luego haz que Opus nombre todo lo que hay en ella

Un descompilador convierte instrucciones de máquina crudas en algo parecido a C.

Sale tosco: nombres como var_28, conversiones de tipo por todas partes, ramificaciones enredadas, y eso está bien, porque legible es todo lo que el modelo necesita.

bash
1# una función por dirección, como JSON que puedes guardar y reutilizar
2rea decompile /ruta/al/Objetivo 0x100012ab0 --provider hopper --json > fn_config.json
3
4# o búscala por nombre y sigue sus referencias
5rea function /ruta/al/Objetivo parseConfig --provider hopper --json
6rea xrefs /ruta/al/Objetivo 0x100012ab0 --provider hopper --json

Luego entrégale esa salida a Opus 5.5 y haz que haga la parte que el desensamblador no puede:

markdown
1Aquí tienes pseudocódigo descompilado de una función con 147 referencias cruzadas.
2
31. Renombra cada variable según cómo se usa y explica su propósito en una frase.
42. Enumera las estructuras de datos que lee y escribe, y nombra el patrón que sigue.
53. Reescríbelo como código limpio e idiomático en el lenguaje que implican las convenciones de llamada.
64. Señala cualquier manejo de errores, validación de entrada o comprobación de seguridad que falte.
7
8Piensa con nivel de esfuerzo xhigh antes de responder. Marca cualquier cosa de la que no estés seguro.
Hanako - inline image

Opus 5.5 incluye cinco niveles de esfuerzo: low (bajo), medium (medio), high (alto), xhigh (muy alto) y max (máximo).

Medium inspecciona y navega, high anota funciones normales, max es para código ofuscado y aritmética de punteros pesada.

El esfuerzo es el control de calidad más importante de todo este proceso, y la mayoría de la gente lo deja por defecto y luego culpa al modelo.

La descompilación te da lo que hace el código, el modelo te da el porqué y los nombres para reconstruirlo.

05. Ofuscación: rompe lo que vale la pena romper, presupuesta el resto

Algunas aplicaciones están diseñadas para resistir exactamente lo que estás haciendo: lógica barajada, cadenas cifradas, ramas falsas añadidas únicamente para desperdiciar tu atención.

Este es el único punto donde incluso el mejor modelo tiene dificultades, y hay cifras que lo demuestran.

Elastic Security Labs puso a Claude Opus frente al ofuscador Tigress en 20 tareas, y de ahí salen dos lecciones directas.

Un intento fallido cuesta aproximadamente el doble que uno exitoso, porque el modelo sigue insistiendo antes de rendirse, y la ofuscación multicapa volvió con un cero, así que machacarla es la forma más cara de no aprender nada.

Hanako - inline image

La regla práctica es un presupuesto por función, no por sesión.

Elimina primero la paja, porque una herramienta gratuita llamada Caveman quita alrededor del 75 % de la basura descompilada y el modelo puede dedicar su atención a la lógica real.

markdown
1Esta función parece ofuscada. Trabaja con esfuerzo máximo.
2
31. Identifica las técnicas presentes (aplanamiento del flujo de control, predicados opacos,
4 código muerto, cifrado de cadenas, división de funciones) y señala cada una aquí.
52. Resuélvelas: elimina ramas muertas, evalúa predicados opacos, desaplana el
6 dispatch, descifra cadenas en línea si la clave es recuperable. Muestra lo que queda.
73. Puntúa la confianza del 1 al 10. Por debajo de 6, nombra las partes dudosas y qué contexto
8 las resolvería. No adivines en silencio.

06. El enjambre: un controlador, muchos trabajadores

Un solo chat no puede leer bien 500 funciones.

Olvida lo que vio cuarenta funciones atrás, nombra la misma estructura de tres formas distintas y empieza a contradecirse silenciosamente.

La solución no es más contexto, sino dividir los roles: un controlador que reparte el trabajo y trabajadores que toman una función cada uno y paran.

Hanako - inline image
markdown
1Eres un controlador de ingeniería inversa. El mapa de funciones está en functions.json
2(dirección, nombre, tamaño, xref_count).
3
41. Agrupa las funciones por proximidad en el grafo de llamadas; ordena los grupos por recuento de referencias cruzadas.
52. Asigna cada grupo a un trabajador. Nunca analices una función tú mismo.
63. Inyecta las estructuras ya resueltas en cada encargo para que los nombres sean consistentes.
74. Una confianza inferior a 6 recibe una segunda pasada con contexto de los vecinos resueltos.
85. Rastrea el gasto acumulado de tokens e infórmalo tras cada grupo.
9
10Eres un trabajador. Recibes una función descompilada y las estructuras resueltas hasta ahora.
11Devuelve exactamente: dirección, propósito, confianza (1-10), structs_used, structs_new,
12clean_source, flags. Reutiliza los nombres de estructuras existentes, nunca inventes un segundo nombre para
13una estructura que el controlador ya te dio. Solo una función. Detente al terminar.

REA también incluye flujos de trabajo guiados integrados en el servidor MCP que la mayoría de la gente nunca abre:

  • - investigate_feature: rastrea una función desde su descubrimiento hasta las funciones exactas
  • - compare_application_versions: compara dos versiones y mira qué cambió realmente
  • - verify_reconstruction: comprueba tu reconstrucción contra las pruebas guardadas
  • - audit_residual_unknowns: enumera lo que aún no está demostrado

07. Sala limpia: el muro entre dos contextos es el producto

Una reconstrucción en sala limpia significa que copias lo que hace la aplicación y nunca el código que hay dentro.

Si lo haces bien, lo que lanzas es completamente tuyo; si lo haces mal, estarás cargando los derechos de autor de otra persona dentro de tu propio repositorio.

Este es un método de hace 40 años, no un invento de 2026.

A principios de los 80, Compaq reconstruyó la BIOS de IBM de esta manera por cerca de 1 millón de dólares, que es la única razón por la que existen los PC de otras marcas.

En 1992, el tribunal en Sega contra Accolade dictaminó que desmontar código puede ser uso legítimo cuando es la única forma de entender cómo funciona, y en 2000 Sony perdió Sony contra Connectix por 3-0 porque el emulador terminado no contenía nada del código de Sony.

El otro lado de la línea es igual de claro: en 2011 George Hotz llegó a un acuerdo con Sony y aceptó parar después de que la clave raíz de PS3 se hiciera pública.

Hanako - inline image

Cuatro reglas te mantienen en el lado correcto, y el equipo de ArtCraft comprueba las cuatro automáticamente en cada compilación:

  • - Observa, nunca copies. Ejecuta el objetivo como caja negra, captura solo su propia ventana, nunca pegues su código en tu proyecto
  • - Especificaciones, no fuentes. Los formatos de archivo provienen de estándares públicos (OOXML es ECMA-376 / ISO 29500, además de las especificaciones publicadas de RTF y ODF), nunca de leer el parser de un competidor
  • - Solo recursos originales. Cada icono, fuente, plantilla y sonido está dibujado en código, es de dominio público o tiene licencia abierta, con una fila en un archivo de atribuciones
  • - Separa los dos trabajos. Un agente recupera el comportamiento y escribe la especificación, un contexto diferente implementa basándose únicamente en esa especificación

Esa última regla es la que la gente se salta, y es la verdadera frontera.

Tu agente investigador está contaminado por definición, porque leyó la descompilación, y tu agente constructor no debe estarlo.

markdown
1A partir del análisis completado, escribe una especificación de sala limpia para una reimplementación.
2
3Describe SOLO EL COMPORTAMIENTO: cada interfaz pública, el modelo de datos, cada función visible
4para el usuario como un requisito comprobable, los formatos de archivo leídos y escritos, el manejo de errores.
5
6NO incluyas direcciones, desplazamientos, nombres de variables descompiladas, ensamblador ni nada
7copiado del original. Un desarrollador que nunca haya visto el binario debe poder
8implementar una versión compatible solo con este documento.
9
10Secciones: Arquitectura, Modelo de Datos, API Pública, Formatos de Archivo, Casos de Prueba.

Trabajar a partir de una descripción no es solo una cobertura legal.

Te permite tomar la decisión correcta para tu propio lenguaje en lugar de heredar decisiones que alguien tomó hace dos décadas, y por eso WordCraft es más rápido que Word en algunas partes.

08. Verifica la paridad, luego lánzalo por MCP

Nunca tuviste el código fuente original, así que no puedes comparar línea por línea.

Comparas comportamiento: las mismas entradas en ambas compilaciones, las mismas salidas de vuelta.

markdown
1Construye un entorno de pruebas de comportamiento que compare el binario original y mi reconstrucción.
2
3Genera 50 entradas: 30 normales, 10 extremas (vacías, tamaño máximo, unicode), 10 de error
4(malformadas, corruptas). Ejecuta cada una por ambas, compara byte a byte donde sea posible
5y semánticamente en el resto. Informa de la tasa de coincidencia, divergencias y gravedad de cada una
6(cosmética / de comportamiento / crítica). Guárdalo en report.md.

«Creo que coincide» no es una prueba, una tasa de coincidencia sí lo es, y ese informe es lo más convincente que puedes poner al principio de una publicación de lanzamiento.

Luego lanza la reconstrucción como hicieron REA y las aplicaciones Craft: como un servidor MCP, para que el agente de la siguiente persona pueda manejar tu herramienta igual que tú manejaste REA.

Dale a cada función un nombre claro y una instalación de una sola línea, y cada acción se convierte en un comando con nombre que un clic, un atajo y un agente activan de forma idéntica.

bash
1claude mcp add wordcraft -- wordcraft-cli mcp
2
3> Abre report.docx, pon todos los encabezados en negrita de 14pt, exporta a PDF
4 ok select.all-headings -> 12 seleccionados
5 ok format.font-size 14 . format.bold
6 ok export report.pdf (texto seleccionable, marcadores conservados)

Los límites y los cinco errores que te hacen perder un fin de semana

REA no puede tocar el servidor, porque lee lo que está en tu máquina y el código que se ejecuta en los servidores de una empresa nunca te fue enviado.

El código descompilado es una reconstrucción, no el código fuente original, y esa es la razón por la que existe el paso 08.

Los binarios de C++ sin símbolos siguen siendo mucho más difíciles que los juegos de Unity en .NET, y los motores comerciales todavía requieren licencias reales.

  • - Abrir un desensamblador en una aplicación Electron cuando el JavaScript está ahí mismo
  • - Volcar el binario entero antes de leer un resumen, lo que entierra la lógica y dispara la factura
  • - Leer funciones en orden de archivo en lugar de por recuento de referencias cruzadas
  • - Dejar que el modelo copie código en tu reconstrucción, lo que rompe la sala limpia con un solo pegado
  • - Lanzar sin un informe de paridad

La postura honesta en el lado legal, ya que la mitad de X pasó una semana gritando sobre piratería: leer una aplicación en tu propio ordenador es aprender, reconstruir una función a partir de su comportamiento es cómo ha funcionado la industria desde los años 80, y copiar código o reventar funciones de pago es la parte por la que te demandan.

Estudia el original, lanza el tuyo.

Cada uno de estos ocho pasos tiene una lección detrás en

reacourse.xyz , con los prompts exactos, los modos de fallo y las partes donde esto deja de funcionar.

El código cerrado solía significar que nunca lo sabrías.

Ahora significa «muéstrame las pruebas».

La mayoría de la gente seguirá pagando una cuota mensual por una función que podría entender en una tarde y reconstruir en un fin de semana.

Los pocos que aprendan a leer software construirán lo que quieran.

Sígueme y suscríbete a mi canal de Telegram:

https://t.me/+75nMf005jRpjMDU1

Guardar con un clic

Lee artículos virales en profundidad con IA en YouMind

Guarda la fuente, haz preguntas concretas, resume el argumento y convierte un artículo viral en notas reutilizables en un único espacio de trabajo con IA.

Explora YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales