En esta página

Ingeniería inversa, con su agente de codificación

Descubre cómo
funciona el software.

REA le da a tu agente de programación las herramientas para examinar un programa y explicar qué hace.

¿Ya conoces RE? Saltar a guías de análisis →

¿Quieres profundizar? Leer el Blog →

Configurar REA

Copia este prompt en tu agente de programación:

Su agente de codificación

Instala REA y conéctalo a este agente de programación usando npx rea-agents@latest setup. Muéstrame los cambios propuestos y espera mi aprobación antes de aplicarlos. Después, verifica la instalación.

O ejecuta esto en la terminal:

npx rea-agents@latest setup

Revisa y aprueba los cambios propuestos. Después, reinicia tu agente.

Primera vez, o falta Node.js ¿o un agente de codificación? Siga la guía de configuración paso a paso →

¿Qué es la ingeniería inversa?

Entender cómo funciona el software examinando el propio programa.

El objetivo: comprender una característica lo suficientemente bien como para explícalo, cámbialo o reconstrúyelo.

Por ejemplo: ¿por qué la calculadora da 220 al calcular 200 + 10%?

Antes de REA · Lo investigas por tu cuenta

Original x64 * instrucciones seleccionadas
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10

Decodifica las instrucciones, sigue las llamadas a funciones y reconstruye el cálculo.

Con REA · Le preguntas a tu agente

Un solo prompt.

Pregúntale a tu agente con palabras normales.

Ejemplo de indicador * Calculadora

Uso REA para inspeccionar Windows Calculadora. ¿Por qué 200 + 10% da 220?

Respuesta de ejemplo * basada en los hallazgos

Después de +, el botón % toma un porcentaje del primer número.

10% of 200 = 20200 + 20 = 220
REA proporciona
Instrucciones del manejador, código descompilado y llamadas.
Tu agente explica
Qué rama se aplica, qué calcula y cómo reconstruirla.
Ensamblado seleccionado de la DLL de la calculadora instalada. Los pensamientos y la respuesta ilustran los hallazgos. Continúe con el ejemplo de la Calculadora ↓

Probemos con dos ejemplos. Cambia la velocidad de un juego, luego regresa a la Calculadora y reconstruye su botón%.

Ejemplo 01 * Juego de dinosaurios de Chrome

¿Por qué el dinosaurio va cada vez más rápido?

Objetivo
Reconstruye el juego con velocidad ajustable.
¿Por qué realizar ingeniería inversa?
Para reproducir su aceleración, necesitamos la regla en el juego terrestre: qué tan rápido comienza, cuánto aumenta y cuándo se detiene.

Juega a la reconstrucción

6 → 10 → 13

Regla original: comience en 6, luego aumente hacia 13.

Mueva el control deslizante para establecer su propia velocidad. Espaciar o saltar despeja un cactus.

REA devolvió

El script que realmente se ejecuta en la página. El agente lee su función de actualización y la configuración de velocidad, luego usa esa regla en un nuevo juego.

Ejemplo rápido * Juego de dinosaurios

Utilice REA para inspeccionar este juego de dinosaurios. ¿Por qué se vuelve más rápido? Muestre la regla de velocidad, luego cree una versión pequeña con una velocidad ajustable.

Objetivo inspeccionado: edición de navegador derivada de Chromium de wayou.

REA * cargado index.js * líneas seleccionadas
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

Comience a las 6. Añadir 0.001 cada actualización sin colisión, mientras que la velocidad es inferior 13.

Abra el laboratorio de velocidad →

Qué hace cada parte

  1. 01 * REA Lee el guión del juego de carreraDevuelva su código y configuración reales al agente.
  2. 02 * Su agenteVuelva a generar la regla, agregue un controlUsa la aceleración recuperada en un juego pequeño con un control deslizante de velocidad.
  3. 03 * TúCambia la velocidad y juegaPrueba la aceleración original y luego elige tu propio ritmo.
Vea el script, las comprobaciones y cómo probar el análisis

REA inspeccionó la edición del navegador HTTP a través de una conexión de depuración local y devolvió el archivo cargado index.js, incluyendo su fuente y resumen.

Configuración seleccionada del script inspeccionado
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

Llamamos a la función de actualización del juego original en una verificación controlada del navegador, con obstáculos y programación automática deshabilitados. Después de 4.000 actualizaciones, la velocidad era de 10,0; después de 10.000, era de 13,0, redondeado a un decimal.

El nuevo minijuego mantiene esa regla de velocidad. Su código de dibujo, salto y colisión es una pequeña implementación de enseñanza. Abra el laboratorio para ver el nuevo código y ejecutar la misma comprobación de velocidad.

Para inspeccionar el objetivo usted mismo, siga las instrucciones pasos de conexión del navegador usando la página del dinosaurio. Proporcione a su agente la URL de esa página y su punto final de depuración local, luego copie el mensaje anterior.

Código de velocidad inspeccionado · Chromium Autores * Licencia BSD

Ejemplo 02 * Calculadora Windows

Recrea el botón % de la calculadora.

Vimos por qué 200 + 10% da 220. Ahora recuperemos las reglas para + y × y probémoslas.

Objetivo
Construye una pequeña calculadora que maneje tanto + como × correctamente.
¿Por qué realizar ingeniería inversa?
El mismo botón usa reglas diferentes después de + y ×. Inspeccionamos la aplicación instalada para encontrar a qué número se aplica el porcentaje.

Prueba el cálculo

200 + 20

10% de 200 = 20. Entonces 200 + 20 = 220.

Ilustración interactiva de la regla de porcentaje inspeccionado.

REA devolvió

Una rama se divide por 100. El otro también se multiplica por el primer número. El agente usa ambos para recrear el botón%.

Para este ejemplo, previous = 200 y current = 10.

Solicitud de ejemplo * Reconstruir el botón %

Use REA para inspeccionar el botón % de la calculadora Windows. Recupere las reglas después de + y×, luego construya una pequeña calculadora que use ambas.

Resumen legible del controlador %
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
Con +
Toma el 10% del primer número.10% of 200 = 20 → 200 + 20 = 220
Con ×
Convierta el 10% en 0.1.200 × 0.1 = 20

Desde la aplicación instalada hasta un botón % que funciona

  1. 01 · REA lee calc.exeLanza la aplicación CalculadoraSe abre el código ms-calculator:. A continuación, el agente selecciona la biblioteca de la aplicación instalada.
  2. 02 * REA lee la bibliotecaDevuelve el código del controlador % La función verifica el operador y usa la constante 100.
  3. 03 * Su agente lo interpretaExplicar y reproducir las reglasVerifique la sucursal con la fuente de Microsoft, luego intente + y × arriba.
Vea el código real y cómo se verificó la respuesta
REA * instrucciones originales seleccionadas
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
ID de operador * Fuente de Microsoft
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100

Inspeccionado con REA 4.1.0: Calculadora Windows 11.2508.4.0, x64. El resumen legible usa nombres de la fuente pública de Microsoft para explicar la rama recuperada.

Porcentaje de implementación · Casos de prueba de Microsoft · Guía de configuración nativa

Su primera investigación

Pruebe REA en una aplicación pequeña.

Descargue nuestro ejemplo de Notes, rastree su exportación CSV y verifique una entrada modificada.

Pruebe el ejemplo guiado

¿Quieres profundizar?

Dígale a su agente lo que quiere entender o construir. Con REA, pueden trabajar juntos en cualquier cosa, desde clonando este sitio web para reconstruyendo un juego a partir de su ejecutable.

Ejemplo de solicitud * Sitio web

Utilice REA para inspeccionar https://rea.tools/. Clona este sitio web por mí.

Sí, esta.

Mensaje de ejemplo * Reconstrucción del juego

Usa REA para reconstruir este juego a partir de su ejecutable. Recupera la lógica de juego en C y pruébala con la original.

Vea el estudio de caso de DX-Ball →

Para los pasos de configuración y análisis, elija su objetivo:

Programas de código máquina

Inspeccione funciones, cadenas, referencias y relaciones función-llamada en ejecutables y bibliotecas.

Guía de análisis de programas de código máquina

JavaScript y Electron

Asigne módulos, rutas, IPC y dependencias nativas desde una carpeta de aplicaciones o un archivo ASAR.

Flujos de trabajo de aplicaciones

Actividad del navegador y del tiempo de ejecución

Capture la actividad seleccionada del navegador o del proceso y, a continuación, compare los resultados entre ejecuciones.

Guía de observación del navegador

¿Tienes preguntas?

Lea las Preguntas frecuentes, chatee con nosotros en Discord , o abrir un problema de GitHub para errores y solicitudes de funciones.

Únete a la comunidad

Comparta investigaciones y obtenga ayuda de otros usuarios de REA en Discord . Siga a REA en X para obtener actualizaciones del proyecto.

Arriba