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 escuchado hablar tres meses antes llegó al número uno en las tendencias de GitHub.

Se llama REA, Reverse Engineer Anything (Haz 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 pasa 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 con 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, junto con la dirección o el sitio 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 lanzó 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 por Office con WordCraft, GridCraft y DeckCraft.

Ya son doce apps, todas escritas desde cero en Rust, nativas en tres plataformas, y todas menos una también funcionan en una pestaña del navegador gracias a WebAssembly.

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

  • Super Mario Sunshine tuvo un port nativo para PC: unas 365 horas de agente y 17.3 mil 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) desarmado y reconstruido, pasando 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 en x86 y reproduciendo los 63 bytes compilados

Fíjate en lo que esa lista no es.

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

Cada uno de esos logros 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 la evidencia de cada afirmación que hace.

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

Esa lista también es 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 app de Electron cuyo JavaScript está ahí mismo, a simple 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 estás te ahorra horas, así que haz que sea la tarea de tu primer prompt.

markdown
1Quiero entender cómo funciona [FUNCIÓN] en [APP], que está en [RUTA ABSOLUTA].
2 Primero dime qué tipo de objetivo es (nativo, Electron/JS, .NET, Go, APK, WASM)
3 y elige la herramienta REA correcta para abrirlo. No empieces el análisis profundo todavía.
4 Luego descríbelo en un párrafo: con qué está construido, qué tan grande es, dónde buscarías
5 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 necesidad de un motor adicional.

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

Y cada aplicación de Electron en tu máquina se puede leer ahora mismo, sin siquiera abrirla:

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 agrega un motor

Lo que hace que esto funcione no es un prompt ingenioso. Es un motor de desensamblaje 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 algo y hace una copia de seguridad de lo que modifica.

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 tiene que iniciarse desde cero, y las aplicaciones de escritorio necesitan cerrarse por completo, porque cerrar la ventana no es suficiente.

Luego agrega 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 pasar una prueba.

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 solo comando te dice en qué máquina corre 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 tener en todo el día: endpoints, cadenas de error y nombres de funciones describen la app antes de que leas cualquier 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 conteo es el número de referencias cruzadas.

Una función llamada 147 veces es la arquitectura de la app; una llamada dos veces es un 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 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 todos lados, ramas enredadas, y eso está bien, porque lo único que necesita el modelo es que sea legible.

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 ese resultado a Opus 5.5 y haz que haga la parte que el desensamblador no puede:

markdown
1Aquí tienes el 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 oración.
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 faltante.
7
8Piensa con 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, medium, high, xhigh y max.

Medium inspecciona y navega, high anota funciones comunes, max es para código ofuscado y cálculos pesados con punteros.

El esfuerzo es el control de calidad más importante en este proceso, y la mayoría de la gente lo deja en el valor predeterminado 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 revuelta, cadenas cifradas, ramas falsas añadidas únicamente para desperdiciar tu atención.

Este es el único punto donde incluso el mejor modelo batalla, y hay números que lo demuestran.

Elastic Security Labs puso a Claude Opus frente al ofuscador Tigress en 20 tareas, y dos lecciones salieron a la luz de inmediato.

Un intento fallido cuesta aproximadamente el doble que uno exitoso, porque el modelo sigue insistiendo antes de rendirse, y la ofuscación multicapa regresó con un cero, así que machacar contra ella 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 el relleno primero, porque una herramienta gratuita llamada Caveman quita alrededor del 75% de la basura descompilada y así el modelo concentra su atención en la lógica real.

markdown
1Esta función parece ofuscada. Trabaja con esfuerzo max.
2
31. Identifica las técnicas presentes (aplanamiento de 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. Califica tu 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 roles: un controlador que reparte el trabajo y trabajadores que toman una función cada uno y se detienen.

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 cercanía en el grafo de llamadas; ordena los grupos por cantidad 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 instrucción para que los nombres se mantengan consistentes.
74. Una confianza menor a 6 recibe un segundo pase con contexto de los vecinos resueltos.
85. Rastrea el gasto acumulado de tokens y repórtalo después de 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 cuando termines.

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 ve qué cambió realmente
  • - verify_reconstruction - verifica tu reconstrucción contra la evidencia guardada
  • - audit_residual_unknowns - enumera lo que aún no está comprobado

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

Una reconstrucción en sala limpia significa que copias lo que hace la app 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 alguien más 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ó el BIOS de IBM de esta manera por cerca de $1 millón, y esa es la única razón por la que existen las PC de otras marcas.

En 1992, el tribunal en Sega v. Accolade dictaminó que desarmar código puede ser uso legítimo cuando es la única forma de entender cómo funciona, y en 2000 Sony perdió Sony v. Connectix 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ó detenerse después de que la clave raíz de PS3 se hiciera pública.

Hanako - inline image

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

  • - Observa, nunca copies. Ejecuta el objetivo como caja negra, toma capturas solo de su propia ventana, nunca pegues su código en tu proyecto
  • - Especificaciones, no fuentes. Los formatos de archivo vienen 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 ícono, fuente, plantilla y sonido está generado por 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 el verdadero límite.

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 para el usuario
4como un requisito comprobable, los formatos de archivo leídos y escritos, el manejo de errores.
5
6NO incluyas direcciones, offsets, nombres de variables descompiladas, ensamblador ni nada
7copiado del original. Un desarrollador que nunca vio el binario debe poder
8implementar una versión compatible únicamente 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 protección 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 arnés de pruebas de comportamiento que compare el binario original y mi reconstrucción.
2
3Genera 50 entradas: 30 normales, 10 extremas (vacío, tamaño máximo, unicode), 10 de error
4(malformadas, corruptas). Pasa cada una por ambos, compara byte por byte donde sea posible
5y semánticamente en los demás casos. Reporta la tasa de coincidencia, divergencias y una gravedad para cada una
6(cosmética / de comportamiento / crítica). Guarda en report.md.

"Creo que coincide" no es evidencia, una tasa de coincidencia sí lo es, y ese reporte es lo más convincente que puedes poner al inicio de una publicación de lanzamiento.

Luego lanza la reconstrucción como lo hicieron REA y las apps 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 negritas 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 corre en los servidores de una empresa nunca te fue entregado.

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 app de Electron cuando el JavaScript está ahí mismo
  • - Volcar todo el binario antes de leer un resumen, lo que sepulta la lógica y dispara el costo
  • - Leer funciones en orden de archivo en lugar de por cantidad 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 reporte de paridad

La verdad sobre el aspecto legal, ya que la mitad de X pasó una semana gritando sobre piratería: leer una app en tu propia computadora es aprender, reconstruir una función a partir de su comportamiento es cómo ha funcionado la industria desde los 80, y copiar código o crackear funciones de pago es lo que te mete en problemas legales.

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 la evidencia".

La mayoría de la gente seguirá pagando mensualidades 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