{"content_id":"mqxmod7ehz","slug":"rea-ai-reverse-engineering-performance-and-limits","locale":"es","schema_type":"TechArticle","category":"knowledge_base","category_name":"Base de conocimiento","title":"REA: ingeniería inversa con IA, funcionamiento y límites","summary":"REA es una herramienta que conecta agentes de IA con herramientas de ingeniería inversa para investigar cómo funciona el software. Distingue el alcance de la verificación de los casos públicos de las limitaciones del análisis de servidores y explica la seguridad, los derechos de autor y la reproducibilidad de los resultados del análisis.","sponsorship_disclosure":null,"affiliate_disclosure":null,"commerce_disclosure":null,"author":{"name":"Equipo editorial de Injoys","url":"https://injoys.com/ko/about"},"key_points":["REA permite que los agentes de IA invoquen herramientas de ingeniería inversa mediante MCP.","Comprender cómo funciona un archivo ejecutable no es lo mismo que reconstruir el código fuente original.","El caso publicado de DX-Ball muestra los resultados de la verificación de una función concreta; no significa que se haya reconstruido el juego completo.","El código del servidor y los modelos privados que no están incluidos en la app no se pueden obtener solo con analizarla.","Hay que documentar las evidencias y los aspectos no verificados en los resultados del análisis, y comparar el funcionamiento con el del original."],"content_markdown":"REA conecta a la AI con herramientas de ingeniería inversa para que investigue cómo funcionan las aplicaciones. Los casos públicos muestran que es posible analizar funciones concretas y volver a implementarlas. Es difícil considerarlos una prueba del fin de la industria del software o de que se pueda copiar un servicio entero.\n\nLas cifras de verificación de DX-Ball corresponden al registro del caso oficial del 7 de octubre de 2026.\n\n## ¿Qué es REA?\n\nREA son las siglas de Reverse Engineer Anything. Es un proyecto que conecta herramientas de análisis de software con agentes de AI. No es un único modelo de AI que haga por sí solo todos los análisis.\n\nLa ingeniería inversa consiste en rastrear la estructura y el funcionamiento de un software terminado. En coreano se denomina 역공학. Su objetivo es identificar lo necesario para explicar una función o garantizar la compatibilidad.\n\nLa compilación convierte el código escrito por personas en una forma ejecutable. Durante el proceso pueden desaparecer los comentarios y parte de la información sobre los nombres. La optimización también puede cambiar el aspecto de las funciones y las fórmulas.\n\nSin embargo, no todas las aplicaciones quedan reducidas a código máquina sin nombres. Algunas distribuciones incluyen código JavaScript o información de depuración. Por eso, el método de análisis depende del formato del archivo y de la información que conserve.\n\n| Término | Explicación sencilla | Precaución al interpretar el resultado |\n| --- | --- | --- |\n| Desensamblado | Representar el código máquina como instrucciones de ensamblador | Hace falta interpretar el propósito de las instrucciones |\n| Descompilación | Representar el código ejecutable en una forma parecida al código fuente | No se garantiza que sea idéntico al código fuente original |\n| Análisis estático | Examinar archivos sin ejecutar el programa | Hay que distinguirlo de las rutas de ejecución reales |\n| Análisis dinámico | Observar el funcionamiento mientras se ejecuta el programa | No se conoce el comportamiento fuera de las condiciones observadas |\n| Reimplementación | Escribir código nuevo que reproduzca el funcionamiento identificado | Es necesario compararlo con el original |\n\n## ¿Cómo se conectan la AI y Ghidra?\n\nREA envía las solicitudes de análisis del agente a las herramientas mediante MCP. MCP es una especificación de conexión para que la AI y las herramientas externas intercambien solicitudes y resultados. Ghidra es una herramienta de ingeniería inversa para examinar archivos ejecutables.\n\nEl README oficial también explica la integración con Hopper e IDA, además de Ghidra. El análisis estático de JavaScript no requiere un motor de análisis nativo. Por tanto, describir REA solo como una forma de controlar Ghidra automáticamente limita el alcance de sus funciones.\n\nEl análisis suele seguir este orden:\n\n1. Se eligen la aplicación y la función que se van a investigar.\n2. Se localizan las partes relacionadas por medio de cadenas de texto o llamadas a funciones.\n3. Se interpreta el funcionamiento siguiendo las instrucciones y el flujo de datos.\n4. Se comprueba la evidencia que falte con llamadas adicionales a las herramientas.\n5. Se compara la reimplementación con el funcionamiento del original.\n\nGhidra ya contaba con funciones de análisis automático. REA permite que el agente continúe haciendo solicitudes de análisis. La precisión real depende del objeto analizado, el motor de análisis, el modelo y el método de verificación.\n\n## Alcance del análisis según las condiciones\n\nLo que puede comprobarse con REA depende de los archivos y del entorno de ejecución a los que se tenga acceso. Una aplicación local puede contener código que se comunica con un servidor. Eso no significa que incluya la implementación interna del servidor.\n\n| Objeto de análisis | Qué puede comprobarse | Qué no puede concluirse solo con el análisis |\n| --- | --- | --- |\n| Archivo ejecutable local | Fórmulas, cadenas de texto, relaciones entre llamadas a funciones | Todos los comentarios originales y la intención de diseño |\n| Aplicación JavaScript·Electron | Estructura de módulos, conexión entre la interfaz y el procesamiento interno | La lógica de procesamiento que solo está en el servidor |\n| Página web y registros de comunicación | Scripts descargados, solicitudes y respuestas observadas | Todo el código fuente del servidor y la base de datos |\n| Archivo de modelo incluido localmente | Estructura e información del archivo al que se tiene acceso | Un modelo privado usado solo en el servidor |\n| Función observada durante la ejecución | Su funcionamiento con esas entradas y en ese entorno | Su funcionamiento con todas las entradas y ante todos los fallos |\n\nReimplementar un servicio también exige atender requisitos que quedan fuera de las funciones observadas. Los permisos de las cuentas y la gestión de errores son ejemplos de ello. Aunque una interfaz funcione de manera parecida, no puede concluirse que el servicio entero sea igual.\n\n## Alcance de la verificación del experimento de la calculadora de 8 minutos y 41 segundos\n\nLa cifra de 8 minutos y 41 segundos procede de una demostración cuyo registro original no se ha podido comprobar. El número de llamadas a herramientas indicado junto a ella es 17. Tampoco se ha podido verificar de forma independiente la afirmación de que se encontraron 4 reglas de cálculo.\n\nLas condiciones de la prueba deben comprobarse en el vídeo original y en el registro de ejecución. El tiempo necesario varía según el modelo y el tamaño del programa. Un solo éxito no permite juzgar la velocidad ni la precisión habituales del análisis.\n\nEn el análisis de una calculadora, leer las fórmulas no basta para completar la verificación. El orden en que se aplican los descuentos y los cupones puede cambiar el resultado. También hay que comprobar por separado cómo se trunca la división de enteros.\n\n- El orden de aplicación de descuentos y cupones\n- El importe base para calcular los impuestos\n- El punto en que se redondean o truncan los cálculos intermedios\n- La salida en los valores límite donde cambian las condiciones\n- El registro de la comparación al introducir los mismos datos en el original y en el código reimplementado\n\nPara demostrar que el análisis es rápido también hacen falta registros aparte de la respuesta correcta. Las ejecuciones fallidas y el número de reintentos afectan a la comparación. Con la evidencia comprobada hasta ahora, es difícil afirmar en general que supera a las personas.\n\n## Resultados comprobados en los casos públicos\n\nLos casos oficiales muestran la ruta del portapapeles de Notion y una función de cálculo de DX-Ball. Ambos especifican el alcance de la función investigada. También hay que tener en cuenta que son registros publicados por el proyecto REA.\n\n| Caso | Trabajo comprobado en la documentación pública | Lo que no debe deducirse de ello |\n| --- | --- | --- |\n| Notion Desktop 7.6.1 | Seguimiento de la ruta desde una llamada interna de la aplicación hasta el portapapeles del sistema | Que se haya copiado todo el servicio de Notion |\n| DX-Ball 1.07 | Reimplementación de la función que convierte la posición en pantalla en valores de audio para izquierda y derecha | Que se haya terminado de reconstruir todo el juego |\n| Aplicación alternativa ligera a Razer Synapse | En esta revisión no se encontró un registro concreto de verificación del original | Que sea un resultado de REA verificado oficialmente |\n| Editor de diapositivas relacionado con Claude | En esta revisión no se confirmaron el objeto ni el alcance de la reimplementación | Que se haya reconstruido el modelo privado de Claude |\n\nEl caso de Notion rastrea cómo una llamada desde la interfaz pasa por la comunicación interna. Al final, llega a la función de Electron que escribe en el portapapeles. Es un caso que explica la ruta de procesamiento de una función concreta.\n\nEn el caso de DX-Ball se comprobaron en el archivo ejecutable las entradas de la función y las constantes de cálculo. Las pruebas comparativas de esa función fueron **3,205**. En el resultado compilado, coincidieron 63 bytes tras tener en cuenta el tratamiento de reubicación examinado.\n\nEste registro respalda la reimplementación de una función concreta. La documentación oficial indica que sigue en curso la reconstrucción ejecutable del juego completo. Hay que distinguir entre la verificación de algunas funciones y la finalización del producto entero.\n\n## ¿Qué garantizan las etiquetas de observación e inferencia?\n\nLas etiquetas de evidencia sirven para distinguir de dónde sale una conclusión. La documentación de REA diferencia las observaciones, las inferencias y la información no confirmada. Sin embargo, no todas las herramientas usan las mismas cuatro etiquetas.\n\nLa documentación oficial emplea distintas expresiones de estado y confianza según el tipo de análisis. Para interpretarlas, puede ser útil separar sus significados como se muestra a continuación. Las categorías de la tabla son explicativas.\n\n| Categoría | Significado | Qué revisar |\n| --- | --- | --- |\n| Observación | Comprobación directa en un archivo o un resultado de ejecución | Versión del objeto analizado y ubicación de la evidencia |\n| Deducción | Conclusión calculada a partir de valores y relaciones observados | Cálculo y premisas |\n| Estimación | Interpretación que requiere más comprobaciones | Posibilidad de otras explicaciones |\n| Sin confirmar | Parte para la que no se ha obtenido evidencia | Alcance de la investigación y motivo de la falta de confirmación |\n\nEl documento oficial DISCLAIMER.md señala los límites de los resultados del análisis.\n\n\u003e Decompilation, reconstruction, heuristics, and AI-assisted analysis may be incomplete or incorrect.\n\u003e\n\u003e Fuente: REA DISCLAIMER.md\n\nEsto significa que la descompilación y el análisis con AI pueden ser incompletos o erróneos. La etiqueta de observación no elimina la posibilidad de errores de las herramientas. El valor de las etiquetas de evidencia está en dejar constancia de dónde revisar el resultado.\n\n## Errores frecuentes\n\nEl malentendido más común es dar por verificado un resultado porque se puede explicar. Un código fácil de leer puede comportarse de otra manera que el original. Las rutas que no se han investigado deben quedar indicadas por separado.\n\n| Malentendido | Interpretación más precisa |\n| --- | --- |\n| La descompilación recupera el código fuente original | A menudo se obtiene una representación parecida al código fuente |\n| Si hay una ruta en el código, se ejecutó | Una conexión estática no es lo mismo que observar la ejecución |\n| Si no se encontró una función, no existe | El alcance de la investigación o la compatibilidad de la herramienta pueden ser insuficientes |\n| Si la herramienta terminó correctamente, el análisis está completo | Incluso un resultado correcto puede dejar puntos sin confirmar |\n| Si el resultado tiene evidencia, no hay alucinaciones | Hay que revisar tanto la evidencia como su interpretación |\n\nLa documentación de la CLI de REA también distingue entre terminar correctamente y completar el análisis. Aunque la tarea termine, puede quedar evidencia pendiente o preguntas sin resolver. Hay que comprobar las limitaciones del resultado, no solo el mensaje de finalización.\n\n## Registros que permiten volver a verificar los resultados\n\nUn análisis reproducible debe conservar las condiciones en las que se obtuvo la conclusión. El código puede cambiar con una actualización aunque la aplicación mantenga el mismo nombre. Si solo se anota la dirección de una función, puede ser difícil encontrarla en otra versión.\n\nLos registros Evidence de REA conservan la información que identifica el objeto analizado y la ubicación de la evidencia. Las instantáneas permiten reutilizar resultados de análisis cuando las condiciones coinciden. Eso no significa que el resultado guardado también se haya verificado en la versión más reciente.\n\nPara dejar un registro de verificación, siga estos pasos:\n\n1. Anote la versión y el hash del archivo analizado.\n2. Registre las versiones de REA y del motor de análisis.\n3. Vincule cada conclusión con una ubicación del archivo o una dirección de función.\n4. Conserve las entradas y salidas tanto del original como del código reimplementado.\n5. Anote por separado las condiciones que no pudo investigar y las pruebas fallidas.\n\nUn hash es un valor identificativo que permite comparar si dos archivos son iguales. Conservarlo permite rastrear a qué distribución se refiere la explicación. También permite delimitar el alcance de un resultado cuando la AI lo cite más adelante.\n\n## Análisis local y envío de datos al exterior\n\nDecir que el análisis se hace localmente no excluye el envío de datos al exterior durante el resto del trabajo. Según el README oficial, REA analiza el objeto de forma local. El agente de AI conectado recibe los resultados de las herramientas.\n\nSi se usa un modelo externo, los resultados del análisis pueden enviarse al proveedor del modelo. La política de datos aplicable depende del servicio conectado. Si se trata de una aplicación de la empresa o de archivos privados, compruebe primero por dónde se envían los datos.\n\n- Qué código y cadenas de texto se envían al modelo\n- Qué información de cuentas y tokens de acceso contienen los registros\n- Qué datos personales contienen los registros de comunicación\n- Dónde se guardan los resultados del análisis y cuál es la política de conservación\n\nTambién hay que distinguir entre examinar archivos estáticamente y ejecutar un programa. La observación durante la ejecución puede afectar a los archivos o al estado de una cuenta. Trabaje con los programas en los que no confíe en un entorno de pruebas aislado.\n\n## Seguridad y derechos que deben comprobar los desarrolladores\n\nLa información secreta incluida en una aplicación puede quedar expuesta mediante ingeniería inversa. OWASP explica el problema de incluir información sensible en los paquetes distribuidos. Este riesgo existía antes de la aparición de REA.\n\nEn particular, no deben incluirse en la aplicación claves API secretas con permisos de servidor. OWASP recomienda mantener los valores secretos estáticos del lado del servidor. La ofuscación puede dificultar su extracción, pero no garantiza que sigan siendo secretos.\n\n- Revise las contraseñas y claves secretas incluidas en los archivos distribuidos.\n- Limite los permisos y el periodo de validez de los tokens de autenticación.\n- Verifique en el servidor los permisos de quien hace cada solicitud.\n- Sustituya las credenciales que hayan quedado expuestas.\n\nLo que está permitido en ingeniería inversa depende del país, el contrato y el trabajo concreto. No puede darse por hecho que cualquier actividad esté permitida por tener fines de compatibilidad. El análisis y la redistribución de código e imágenes deben examinarse por separado.\n\nLa licencia MIT de REA no concede derechos sobre el software analizado. Los principios de uso del proyecto figuran en el documento oficial DISCLAIMER.md. Compruebe los límites aplicables en la legislación correspondiente y en las condiciones del software analizado.\n\n## ¿Qué cambios puede haber en la industria del software?\n\nREA muestra que podría reducirse el esfuerzo necesario para entender funciones existentes. Es una perspectiva que se desprende de los casos de análisis publicados. No hay cifras verificadas sobre la reducción de costes en el conjunto de la industria.\n\nConocer cómo se implementan algunas funciones no equivale a saber operar un servicio. La calidad de los datos y la respuesta ante fallos no se pueden copiar solo mediante el análisis de un archivo ejecutable. Por tanto, hay que evaluar por separado la facilidad para imitar funciones y la competitividad de una empresa.\n\n| Elemento del negocio | Lo que se desprende del alcance del análisis de REA |\n| --- | --- |\n| Una función interna de la aplicación | Posible reducción del esfuerzo de investigar su implementación y reimplementarla |\n| Procesamiento exclusivo del servidor | Difícil de obtener solo mediante el análisis del cliente |\n| Datos y permisos de acceso | Deben obtenerse y gestionarse por separado de la comprensión del código |\n| Estabilidad y confianza operativa | Siguen siendo necesarias las pruebas, el mantenimiento y la respuesta ante fallos |\n| Conservación de software existente | Posibilidad de reconstruirlo función por función y conservar la evidencia |\n\nLos casos públicos de REA muestran un cambio en la forma de entender el software. No son pruebas de que desaparezca la demanda de desarrollo. Incluso después de reimplementar una función, queda por verificar su compatibilidad y la calidad de su funcionamiento.","content_html":"\u003cp\u003eREA conecta a la AI con herramientas de ingeniería inversa para que investigue cómo funcionan las aplicaciones. Los casos públicos muestran que es posible analizar funciones concretas y volver a implementarlas. Es difícil considerarlos una prueba del fin de la industria del software o de que se pueda copiar un servicio entero.\u003c/p\u003e\n\u003cp\u003eLas cifras de verificación de DX-Ball corresponden al registro del caso oficial del 7 de octubre de 2026.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#qu%C3%A9-es-rea\" class=\"anchor\" id=\"qué-es-rea\"\u003e\u003c/a\u003e¿Qué es REA?\u003c/h2\u003e\n\u003cp\u003eREA son las siglas de Reverse Engineer Anything. Es un proyecto que conecta herramientas de análisis de software con agentes de AI. No es un único modelo de AI que haga por sí solo todos los análisis.\u003c/p\u003e\n\u003cp\u003eLa ingeniería inversa consiste en rastrear la estructura y el funcionamiento de un software terminado. En coreano se denomina 역공학. Su objetivo es identificar lo necesario para explicar una función o garantizar la compatibilidad.\u003c/p\u003e\n\u003cp\u003eLa compilación convierte el código escrito por personas en una forma ejecutable. Durante el proceso pueden desaparecer los comentarios y parte de la información sobre los nombres. La optimización también puede cambiar el aspecto de las funciones y las fórmulas.\u003c/p\u003e\n\u003cp\u003eSin embargo, no todas las aplicaciones quedan reducidas a código máquina sin nombres. Algunas distribuciones incluyen código JavaScript o información de depuración. Por eso, el método de análisis depende del formato del archivo y de la información que conserve.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eTérmino\u003c/th\u003e\n\u003cth\u003eExplicación sencilla\u003c/th\u003e\n\u003cth\u003ePrecaución al interpretar el resultado\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Término\"\u003eDesensamblado\u003c/td\u003e\n\u003ctd data-label=\"Explicación sencilla\"\u003eRepresentar el código máquina como instrucciones de ensamblador\u003c/td\u003e\n\u003ctd data-label=\"Precaución al interpretar el resultado\"\u003eHace falta interpretar el propósito de las instrucciones\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Término\"\u003eDescompilación\u003c/td\u003e\n\u003ctd data-label=\"Explicación sencilla\"\u003eRepresentar el código ejecutable en una forma parecida al código fuente\u003c/td\u003e\n\u003ctd data-label=\"Precaución al interpretar el resultado\"\u003eNo se garantiza que sea idéntico al código fuente original\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Término\"\u003eAnálisis estático\u003c/td\u003e\n\u003ctd data-label=\"Explicación sencilla\"\u003eExaminar archivos sin ejecutar el programa\u003c/td\u003e\n\u003ctd data-label=\"Precaución al interpretar el resultado\"\u003eHay que distinguirlo de las rutas de ejecución reales\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Término\"\u003eAnálisis dinámico\u003c/td\u003e\n\u003ctd data-label=\"Explicación sencilla\"\u003eObservar el funcionamiento mientras se ejecuta el programa\u003c/td\u003e\n\u003ctd data-label=\"Precaución al interpretar el resultado\"\u003eNo se conoce el comportamiento fuera de las condiciones observadas\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Término\"\u003eReimplementación\u003c/td\u003e\n\u003ctd data-label=\"Explicación sencilla\"\u003eEscribir código nuevo que reproduzca el funcionamiento identificado\u003c/td\u003e\n\u003ctd data-label=\"Precaución al interpretar el resultado\"\u003eEs necesario compararlo con el original\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003ch2\u003e\n\u003ca href=\"#c%C3%B3mo-se-conectan-la-ai-y-ghidra\" class=\"anchor\" id=\"cómo-se-conectan-la-ai-y-ghidra\"\u003e\u003c/a\u003e¿Cómo se conectan la AI y Ghidra?\u003c/h2\u003e\n\u003cp\u003eREA envía las solicitudes de análisis del agente a las herramientas mediante MCP. MCP es una especificación de conexión para que la AI y las herramientas externas intercambien solicitudes y resultados. Ghidra es una herramienta de ingeniería inversa para examinar archivos ejecutables.\u003c/p\u003e\n\u003cp\u003eEl README oficial también explica la integración con Hopper e IDA, además de Ghidra. El análisis estático de JavaScript no requiere un motor de análisis nativo. Por tanto, describir REA solo como una forma de controlar Ghidra automáticamente limita el alcance de sus funciones.\u003c/p\u003e\n\u003cp\u003eEl análisis suele seguir este orden:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSe eligen la aplicación y la función que se van a investigar.\u003c/li\u003e\n\u003cli\u003eSe localizan las partes relacionadas por medio de cadenas de texto o llamadas a funciones.\u003c/li\u003e\n\u003cli\u003eSe interpreta el funcionamiento siguiendo las instrucciones y el flujo de datos.\u003c/li\u003e\n\u003cli\u003eSe comprueba la evidencia que falte con llamadas adicionales a las herramientas.\u003c/li\u003e\n\u003cli\u003eSe compara la reimplementación con el funcionamiento del original.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eGhidra ya contaba con funciones de análisis automático. REA permite que el agente continúe haciendo solicitudes de análisis. La precisión real depende del objeto analizado, el motor de análisis, el modelo y el método de verificación.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#alcance-del-an%C3%A1lisis-seg%C3%BAn-las-condiciones\" class=\"anchor\" id=\"alcance-del-análisis-según-las-condiciones\"\u003e\u003c/a\u003eAlcance del análisis según las condiciones\u003c/h2\u003e\n\u003cp\u003eLo que puede comprobarse con REA depende de los archivos y del entorno de ejecución a los que se tenga acceso. Una aplicación local puede contener código que se comunica con un servidor. Eso no significa que incluya la implementación interna del servidor.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eObjeto de análisis\u003c/th\u003e\n\u003cth\u003eQué puede comprobarse\u003c/th\u003e\n\u003cth\u003eQué no puede concluirse solo con el análisis\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Objeto de análisis\"\u003eArchivo ejecutable local\u003c/td\u003e\n\u003ctd data-label=\"Qué puede comprobarse\"\u003eFórmulas, cadenas de texto, relaciones entre llamadas a funciones\u003c/td\u003e\n\u003ctd data-label=\"Qué no puede concluirse solo con el análisis\"\u003eTodos los comentarios originales y la intención de diseño\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Objeto de análisis\"\u003eAplicación JavaScript·Electron\u003c/td\u003e\n\u003ctd data-label=\"Qué puede comprobarse\"\u003eEstructura de módulos, conexión entre la interfaz y el procesamiento interno\u003c/td\u003e\n\u003ctd data-label=\"Qué no puede concluirse solo con el análisis\"\u003eLa lógica de procesamiento que solo está en el servidor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Objeto de análisis\"\u003ePágina web y registros de comunicación\u003c/td\u003e\n\u003ctd data-label=\"Qué puede comprobarse\"\u003eScripts descargados, solicitudes y respuestas observadas\u003c/td\u003e\n\u003ctd data-label=\"Qué no puede concluirse solo con el análisis\"\u003eTodo el código fuente del servidor y la base de datos\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Objeto de análisis\"\u003eArchivo de modelo incluido localmente\u003c/td\u003e\n\u003ctd data-label=\"Qué puede comprobarse\"\u003eEstructura e información del archivo al que se tiene acceso\u003c/td\u003e\n\u003ctd data-label=\"Qué no puede concluirse solo con el análisis\"\u003eUn modelo privado usado solo en el servidor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Objeto de análisis\"\u003eFunción observada durante la ejecución\u003c/td\u003e\n\u003ctd data-label=\"Qué puede comprobarse\"\u003eSu funcionamiento con esas entradas y en ese entorno\u003c/td\u003e\n\u003ctd data-label=\"Qué no puede concluirse solo con el análisis\"\u003eSu funcionamiento con todas las entradas y ante todos los fallos\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eReimplementar un servicio también exige atender requisitos que quedan fuera de las funciones observadas. Los permisos de las cuentas y la gestión de errores son ejemplos de ello. Aunque una interfaz funcione de manera parecida, no puede concluirse que el servicio entero sea igual.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#alcance-de-la-verificaci%C3%B3n-del-experimento-de-la-calculadora-de-8-minutos-y-41-segundos\" class=\"anchor\" id=\"alcance-de-la-verificación-del-experimento-de-la-calculadora-de-8-minutos-y-41-segundos\"\u003e\u003c/a\u003eAlcance de la verificación del experimento de la calculadora de 8 minutos y 41 segundos\u003c/h2\u003e\n\u003cp\u003eLa cifra de 8 minutos y 41 segundos procede de una demostración cuyo registro original no se ha podido comprobar. El número de llamadas a herramientas indicado junto a ella es 17. Tampoco se ha podido verificar de forma independiente la afirmación de que se encontraron 4 reglas de cálculo.\u003c/p\u003e\n\u003cp\u003eLas condiciones de la prueba deben comprobarse en el vídeo original y en el registro de ejecución. El tiempo necesario varía según el modelo y el tamaño del programa. Un solo éxito no permite juzgar la velocidad ni la precisión habituales del análisis.\u003c/p\u003e\n\u003cp\u003eEn el análisis de una calculadora, leer las fórmulas no basta para completar la verificación. El orden en que se aplican los descuentos y los cupones puede cambiar el resultado. También hay que comprobar por separado cómo se trunca la división de enteros.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEl orden de aplicación de descuentos y cupones\u003c/li\u003e\n\u003cli\u003eEl importe base para calcular los impuestos\u003c/li\u003e\n\u003cli\u003eEl punto en que se redondean o truncan los cálculos intermedios\u003c/li\u003e\n\u003cli\u003eLa salida en los valores límite donde cambian las condiciones\u003c/li\u003e\n\u003cli\u003eEl registro de la comparación al introducir los mismos datos en el original y en el código reimplementado\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePara demostrar que el análisis es rápido también hacen falta registros aparte de la respuesta correcta. Las ejecuciones fallidas y el número de reintentos afectan a la comparación. Con la evidencia comprobada hasta ahora, es difícil afirmar en general que supera a las personas.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#resultados-comprobados-en-los-casos-p%C3%BAblicos\" class=\"anchor\" id=\"resultados-comprobados-en-los-casos-públicos\"\u003e\u003c/a\u003eResultados comprobados en los casos públicos\u003c/h2\u003e\n\u003cp\u003eLos casos oficiales muestran la ruta del portapapeles de Notion y una función de cálculo de DX-Ball. Ambos especifican el alcance de la función investigada. También hay que tener en cuenta que son registros publicados por el proyecto REA.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCaso\u003c/th\u003e\n\u003cth\u003eTrabajo comprobado en la documentación pública\u003c/th\u003e\n\u003cth\u003eLo que no debe deducirse de ello\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eNotion Desktop 7.6.1\u003c/td\u003e\n\u003ctd data-label=\"Trabajo comprobado en la documentación pública\"\u003eSeguimiento de la ruta desde una llamada interna de la aplicación hasta el portapapeles del sistema\u003c/td\u003e\n\u003ctd data-label=\"Lo que no debe deducirse de ello\"\u003eQue se haya copiado todo el servicio de Notion\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eDX-Ball 1.07\u003c/td\u003e\n\u003ctd data-label=\"Trabajo comprobado en la documentación pública\"\u003eReimplementación de la función que convierte la posición en pantalla en valores de audio para izquierda y derecha\u003c/td\u003e\n\u003ctd data-label=\"Lo que no debe deducirse de ello\"\u003eQue se haya terminado de reconstruir todo el juego\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eAplicación alternativa ligera a Razer Synapse\u003c/td\u003e\n\u003ctd data-label=\"Trabajo comprobado en la documentación pública\"\u003eEn esta revisión no se encontró un registro concreto de verificación del original\u003c/td\u003e\n\u003ctd data-label=\"Lo que no debe deducirse de ello\"\u003eQue sea un resultado de REA verificado oficialmente\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eEditor de diapositivas relacionado con Claude\u003c/td\u003e\n\u003ctd data-label=\"Trabajo comprobado en la documentación pública\"\u003eEn esta revisión no se confirmaron el objeto ni el alcance de la reimplementación\u003c/td\u003e\n\u003ctd data-label=\"Lo que no debe deducirse de ello\"\u003eQue se haya reconstruido el modelo privado de Claude\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eEl caso de Notion rastrea cómo una llamada desde la interfaz pasa por la comunicación interna. Al final, llega a la función de Electron que escribe en el portapapeles. Es un caso que explica la ruta de procesamiento de una función concreta.\u003c/p\u003e\n\u003cp\u003eEn el caso de DX-Ball se comprobaron en el archivo ejecutable las entradas de la función y las constantes de cálculo. Las pruebas comparativas de esa función fueron \u003cstrong\u003e3,205\u003c/strong\u003e. En el resultado compilado, coincidieron 63 bytes tras tener en cuenta el tratamiento de reubicación examinado.\u003c/p\u003e\n\u003cp\u003eEste registro respalda la reimplementación de una función concreta. La documentación oficial indica que sigue en curso la reconstrucción ejecutable del juego completo. Hay que distinguir entre la verificación de algunas funciones y la finalización del producto entero.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#qu%C3%A9-garantizan-las-etiquetas-de-observaci%C3%B3n-e-inferencia\" class=\"anchor\" id=\"qué-garantizan-las-etiquetas-de-observación-e-inferencia\"\u003e\u003c/a\u003e¿Qué garantizan las etiquetas de observación e inferencia?\u003c/h2\u003e\n\u003cp\u003eLas etiquetas de evidencia sirven para distinguir de dónde sale una conclusión. La documentación de REA diferencia las observaciones, las inferencias y la información no confirmada. Sin embargo, no todas las herramientas usan las mismas cuatro etiquetas.\u003c/p\u003e\n\u003cp\u003eLa documentación oficial emplea distintas expresiones de estado y confianza según el tipo de análisis. Para interpretarlas, puede ser útil separar sus significados como se muestra a continuación. Las categorías de la tabla son explicativas.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCategoría\u003c/th\u003e\n\u003cth\u003eSignificado\u003c/th\u003e\n\u003cth\u003eQué revisar\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoría\"\u003eObservación\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eComprobación directa en un archivo o un resultado de ejecución\u003c/td\u003e\n\u003ctd data-label=\"Qué revisar\"\u003eVersión del objeto analizado y ubicación de la evidencia\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoría\"\u003eDeducción\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eConclusión calculada a partir de valores y relaciones observados\u003c/td\u003e\n\u003ctd data-label=\"Qué revisar\"\u003eCálculo y premisas\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoría\"\u003eEstimación\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eInterpretación que requiere más comprobaciones\u003c/td\u003e\n\u003ctd data-label=\"Qué revisar\"\u003ePosibilidad de otras explicaciones\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoría\"\u003eSin confirmar\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eParte para la que no se ha obtenido evidencia\u003c/td\u003e\n\u003ctd data-label=\"Qué revisar\"\u003eAlcance de la investigación y motivo de la falta de confirmación\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eEl documento oficial DISCLAIMER.md señala los límites de los resultados del análisis.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDecompilation, reconstruction, heuristics, and AI-assisted analysis may be incomplete or incorrect.\u003c/p\u003e\n\u003cp\u003eFuente: REA DISCLAIMER.md\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eEsto significa que la descompilación y el análisis con AI pueden ser incompletos o erróneos. La etiqueta de observación no elimina la posibilidad de errores de las herramientas. El valor de las etiquetas de evidencia está en dejar constancia de dónde revisar el resultado.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#errores-frecuentes\" class=\"anchor\" id=\"errores-frecuentes\"\u003e\u003c/a\u003eErrores frecuentes\u003c/h2\u003e\n\u003cp\u003eEl malentendido más común es dar por verificado un resultado porque se puede explicar. Un código fácil de leer puede comportarse de otra manera que el original. Las rutas que no se han investigado deben quedar indicadas por separado.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eMalentendido\u003c/th\u003e\n\u003cth\u003eInterpretación más precisa\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Malentendido\"\u003eLa descompilación recupera el código fuente original\u003c/td\u003e\n\u003ctd data-label=\"Interpretación más precisa\"\u003eA menudo se obtiene una representación parecida al código fuente\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Malentendido\"\u003eSi hay una ruta en el código, se ejecutó\u003c/td\u003e\n\u003ctd data-label=\"Interpretación más precisa\"\u003eUna conexión estática no es lo mismo que observar la ejecución\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Malentendido\"\u003eSi no se encontró una función, no existe\u003c/td\u003e\n\u003ctd data-label=\"Interpretación más precisa\"\u003eEl alcance de la investigación o la compatibilidad de la herramienta pueden ser insuficientes\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Malentendido\"\u003eSi la herramienta terminó correctamente, el análisis está completo\u003c/td\u003e\n\u003ctd data-label=\"Interpretación más precisa\"\u003eIncluso un resultado correcto puede dejar puntos sin confirmar\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Malentendido\"\u003eSi el resultado tiene evidencia, no hay alucinaciones\u003c/td\u003e\n\u003ctd data-label=\"Interpretación más precisa\"\u003eHay que revisar tanto la evidencia como su interpretación\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eLa documentación de la CLI de REA también distingue entre terminar correctamente y completar el análisis. Aunque la tarea termine, puede quedar evidencia pendiente o preguntas sin resolver. Hay que comprobar las limitaciones del resultado, no solo el mensaje de finalización.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#registros-que-permiten-volver-a-verificar-los-resultados\" class=\"anchor\" id=\"registros-que-permiten-volver-a-verificar-los-resultados\"\u003e\u003c/a\u003eRegistros que permiten volver a verificar los resultados\u003c/h2\u003e\n\u003cp\u003eUn análisis reproducible debe conservar las condiciones en las que se obtuvo la conclusión. El código puede cambiar con una actualización aunque la aplicación mantenga el mismo nombre. Si solo se anota la dirección de una función, puede ser difícil encontrarla en otra versión.\u003c/p\u003e\n\u003cp\u003eLos registros Evidence de REA conservan la información que identifica el objeto analizado y la ubicación de la evidencia. Las instantáneas permiten reutilizar resultados de análisis cuando las condiciones coinciden. Eso no significa que el resultado guardado también se haya verificado en la versión más reciente.\u003c/p\u003e\n\u003cp\u003ePara dejar un registro de verificación, siga estos pasos:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eAnote la versión y el hash del archivo analizado.\u003c/li\u003e\n\u003cli\u003eRegistre las versiones de REA y del motor de análisis.\u003c/li\u003e\n\u003cli\u003eVincule cada conclusión con una ubicación del archivo o una dirección de función.\u003c/li\u003e\n\u003cli\u003eConserve las entradas y salidas tanto del original como del código reimplementado.\u003c/li\u003e\n\u003cli\u003eAnote por separado las condiciones que no pudo investigar y las pruebas fallidas.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eUn hash es un valor identificativo que permite comparar si dos archivos son iguales. Conservarlo permite rastrear a qué distribución se refiere la explicación. También permite delimitar el alcance de un resultado cuando la AI lo cite más adelante.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#an%C3%A1lisis-local-y-env%C3%ADo-de-datos-al-exterior\" class=\"anchor\" id=\"análisis-local-y-envío-de-datos-al-exterior\"\u003e\u003c/a\u003eAnálisis local y envío de datos al exterior\u003c/h2\u003e\n\u003cp\u003eDecir que el análisis se hace localmente no excluye el envío de datos al exterior durante el resto del trabajo. Según el README oficial, REA analiza el objeto de forma local. El agente de AI conectado recibe los resultados de las herramientas.\u003c/p\u003e\n\u003cp\u003eSi se usa un modelo externo, los resultados del análisis pueden enviarse al proveedor del modelo. La política de datos aplicable depende del servicio conectado. Si se trata de una aplicación de la empresa o de archivos privados, compruebe primero por dónde se envían los datos.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eQué código y cadenas de texto se envían al modelo\u003c/li\u003e\n\u003cli\u003eQué información de cuentas y tokens de acceso contienen los registros\u003c/li\u003e\n\u003cli\u003eQué datos personales contienen los registros de comunicación\u003c/li\u003e\n\u003cli\u003eDónde se guardan los resultados del análisis y cuál es la política de conservación\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTambién hay que distinguir entre examinar archivos estáticamente y ejecutar un programa. La observación durante la ejecución puede afectar a los archivos o al estado de una cuenta. Trabaje con los programas en los que no confíe en un entorno de pruebas aislado.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#seguridad-y-derechos-que-deben-comprobar-los-desarrolladores\" class=\"anchor\" id=\"seguridad-y-derechos-que-deben-comprobar-los-desarrolladores\"\u003e\u003c/a\u003eSeguridad y derechos que deben comprobar los desarrolladores\u003c/h2\u003e\n\u003cp\u003eLa información secreta incluida en una aplicación puede quedar expuesta mediante ingeniería inversa. OWASP explica el problema de incluir información sensible en los paquetes distribuidos. Este riesgo existía antes de la aparición de REA.\u003c/p\u003e\n\u003cp\u003eEn particular, no deben incluirse en la aplicación claves API secretas con permisos de servidor. OWASP recomienda mantener los valores secretos estáticos del lado del servidor. La ofuscación puede dificultar su extracción, pero no garantiza que sigan siendo secretos.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRevise las contraseñas y claves secretas incluidas en los archivos distribuidos.\u003c/li\u003e\n\u003cli\u003eLimite los permisos y el periodo de validez de los tokens de autenticación.\u003c/li\u003e\n\u003cli\u003eVerifique en el servidor los permisos de quien hace cada solicitud.\u003c/li\u003e\n\u003cli\u003eSustituya las credenciales que hayan quedado expuestas.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLo que está permitido en ingeniería inversa depende del país, el contrato y el trabajo concreto. No puede darse por hecho que cualquier actividad esté permitida por tener fines de compatibilidad. El análisis y la redistribución de código e imágenes deben examinarse por separado.\u003c/p\u003e\n\u003cp\u003eLa licencia MIT de REA no concede derechos sobre el software analizado. Los principios de uso del proyecto figuran en el documento oficial DISCLAIMER.md. Compruebe los límites aplicables en la legislación correspondiente y en las condiciones del software analizado.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#qu%C3%A9-cambios-puede-haber-en-la-industria-del-software\" class=\"anchor\" id=\"qué-cambios-puede-haber-en-la-industria-del-software\"\u003e\u003c/a\u003e¿Qué cambios puede haber en la industria del software?\u003c/h2\u003e\n\u003cp\u003eREA muestra que podría reducirse el esfuerzo necesario para entender funciones existentes. Es una perspectiva que se desprende de los casos de análisis publicados. No hay cifras verificadas sobre la reducción de costes en el conjunto de la industria.\u003c/p\u003e\n\u003cp\u003eConocer cómo se implementan algunas funciones no equivale a saber operar un servicio. La calidad de los datos y la respuesta ante fallos no se pueden copiar solo mediante el análisis de un archivo ejecutable. Por tanto, hay que evaluar por separado la facilidad para imitar funciones y la competitividad de una empresa.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eElemento del negocio\u003c/th\u003e\n\u003cth\u003eLo que se desprende del alcance del análisis de REA\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento del negocio\"\u003eUna función interna de la aplicación\u003c/td\u003e\n\u003ctd data-label=\"Lo que se desprende del alcance del análisis de REA\"\u003ePosible reducción del esfuerzo de investigar su implementación y reimplementarla\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento del negocio\"\u003eProcesamiento exclusivo del servidor\u003c/td\u003e\n\u003ctd data-label=\"Lo que se desprende del alcance del análisis de REA\"\u003eDifícil de obtener solo mediante el análisis del cliente\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento del negocio\"\u003eDatos y permisos de acceso\u003c/td\u003e\n\u003ctd data-label=\"Lo que se desprende del alcance del análisis de REA\"\u003eDeben obtenerse y gestionarse por separado de la comprensión del código\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento del negocio\"\u003eEstabilidad y confianza operativa\u003c/td\u003e\n\u003ctd data-label=\"Lo que se desprende del alcance del análisis de REA\"\u003eSiguen siendo necesarias las pruebas, el mantenimiento y la respuesta ante fallos\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento del negocio\"\u003eConservación de software existente\u003c/td\u003e\n\u003ctd data-label=\"Lo que se desprende del alcance del análisis de REA\"\u003ePosibilidad de reconstruirlo función por función y conservar la evidencia\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eLos casos públicos de REA muestran un cambio en la forma de entender el software. No son pruebas de que desaparezca la demanda de desarrollo. Incluso después de reimplementar una función, queda por verificar su compatibilidad y la calidad de su funcionamiento.\u003c/p\u003e\n","tags":["Agentes de IA","Desarrollo de IA","Estrategia tecnológica","Herramientas de desarrollo"],"faqs":[{"question":"¿REA es un modelo propio de IA?","answer":"REA es un proyecto que conecta agentes de IA con herramientas de análisis de software. Las solicitudes de análisis y los resultados se pueden transmitir por MCP."},{"question":"¿Es imprescindible Ghidra para usar REA?","answer":"Depende de lo que se analice. Para el análisis nativo se usan motores como Ghidra. El análisis estático de JavaScript se puede hacer sin un motor de análisis nativo."},{"question":"¿REA recupera el código fuente original tal como era?","answer":"No garantiza una recuperación idéntica al código fuente original. Durante la compilación pueden perderse los comentarios o los nombres. El resultado de la descompilación debe interpretarse como una representación que ayuda a entender el funcionamiento."},{"question":"Si analizo una aplicación, ¿puedo obtener también el código del servidor?","answer":"El código del servidor que no esté incluido en la aplicación no se puede obtener solo con analizarla. Se pueden observar las solicitudes y respuestas de comunicación, pero esos registros no muestran toda la implementación interna del servidor."},{"question":"¿Se pueden analizar también otros programas en 8 minutos y 41 segundos?","answer":"No hay motivos para generalizar ese tiempo. Tampoco hemos podido verificar el registro original de esa demostración de la calculadora. El tiempo necesario varía según el tamaño de lo que se analiza, el modelo y el entorno de análisis."},{"question":"¿REA elimina las alucinaciones de la IA?","answer":"Las alucinaciones no desaparecen. Indicar las pruebas y lo que no se ha verificado facilita revisar las conclusiones. Los resultados de las herramientas y la interpretación de la IA deben verificarse por separado."},{"question":"¿El caso de DX-Ball muestra una reconstrucción del juego completo?","answer":"La cifra citada corresponde al resultado de la verificación de una función concreta de cálculo de sonido. El caso oficial describe 3,205 pruebas comparativas. También indica que la reconstrucción ejecutable del juego completo sigue en curso."},{"question":"¿Todo el análisis de REA se hace sin conexión?","answer":"REA analiza el objeto de forma local. El agente que recibe los resultados de la herramienta puede usar un modelo externo. Debe comprobar el alcance total de la transmisión de datos en el servicio que haya conectado."},{"question":"¿Se puede incorporar a un producto comercial el código analizado con REA?","answer":"El simple hecho de obtener los resultados del análisis no otorga derechos de uso. Debe comprobar los derechos y la licencia del software analizado. Revise también las leyes aplicables y las condiciones de uso de las herramientas de análisis."},{"question":"Si REA es de código abierto, ¿el análisis también es gratuito?","answer":"La licencia del código de REA y el costo total del trabajo son cosas distintas. El modelo conectado o las herramientas comerciales de análisis pueden tener un costo. Consulte las tarifas y las condiciones de uso de cada proveedor para conocer los importes."},{"question":"¿Qué debo registrar para citar los resultados del análisis?","answer":"Registre la versión del objeto analizado, el hash del archivo y la ubicación de las pruebas. También se necesitan la versión de la herramienta de análisis y los resultados de las pruebas comparativas. Si registra además las condiciones no verificadas, podrá delimitar a qué casos se aplican las conclusiones."}],"sources":[{"url":"https://github.com/morluto/rea","title":"README del repositorio oficial de REA: cómo funciona, qué admite, análisis local y política sobre los datos de los modelos","type":"source"},{"url":"https://ghidra.re/ghidra_docs/GhidraClass/Beginner/Introduction_to_Ghidra_Student_Guide.html","title":"Documentación oficial de formación de Ghidra: Introduction to Ghidra","type":"source"},{"url":"https://rea.tools/showcase/notion/","title":"Caso oficial de REA: análisis de la ruta del portapapeles de Electron en Notion","type":"source"},{"url":"https://rea.tools/showcase/dx-ball/","title":"Caso oficial de REA: reimplementación del cálculo de la posición del sonido en DX-Ball y verificación comparativa","type":"data_point"},{"url":"https://github.com/morluto/rea/blob/main/docs/tool-design.md","title":"REA Tool Design: distinción entre observación, derivación e inferencia, y las limitaciones","type":"source"},{"url":"https://github.com/morluto/rea/blob/main/docs/javascript-application-graph.md","title":"REA JavaScript Application Graph: evidencias, estado, nivel de confianza y ubicación del objetivo","type":"source"},{"url":"https://github.com/morluto/rea/blob/main/docs/javascript-application-workflows.md","title":"REA JavaScript Application Workflows: distinción entre relaciones estáticas y verificación en ejecución","type":"source"},{"url":"https://raw.githubusercontent.com/morluto/rea/main/docs/cli.md","title":"REA CLI and Evidence: conservación de registros, instantáneas y estado de salida","type":"source"},{"url":"https://raw.githubusercontent.com/morluto/rea/main/DISCLAIMER.md","title":"REA Disclaimer: limitaciones del análisis, permisos de uso y derechos sobre los resultados","type":"source"},{"url":"https://mas.owasp.org/MASWE-0004/","title":"OWASP MASWE-0004: información sensible incluida en el paquete de la aplicación y métodos para abordarla","type":"source"}],"images":[{"id":1947,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mjk5NzksInB1ciI6ImJsb2JfaWQifX0=--2b1213d9736d5cae1ff35ed8e5e7db570784612e/ai-ab7036b9.webp","is_representative":true,"generation_method":"ai_photo","license":"ai_generated","mime_type":"image/webp","width":1536,"height":1024,"translations":{"ko":{"alt":"노트북 옆에서 공과 패들 테스트 화면이 뜬 태블릿 두 대를 비교하는 개발자","caption":"특정 함수의 동작이 일치해도 게임 전체가 복원됐다는 뜻은 아닙니다.","description":null},"en":{"alt":"A developer compares ball-and-paddle test screens on two tablets beside a laptop.","caption":"Matching the behavior of one function does not mean the entire game has been restored.","description":null},"ja":{"alt":"ノートパソコンの横で、ボールとパドルのテスト画面を表示した2台のタブレットを見比べる開発者","caption":"特定の関数の動作が一致しても、ゲーム全体を復元できたとは限りません。","description":null},"es":{"alt":"Un desarrollador compara dos tabletas con pruebas de pelota y paleta junto a un portátil.","caption":"Que coincida el comportamiento de una función no significa que se haya reconstruido todo el juego.","description":null},"id":{"alt":"Pengembang membandingkan dua tablet dengan uji bola dan pemukul di samping laptop.","caption":"Kecocokan perilaku satu fungsi tidak berarti seluruh gim telah berhasil dipulihkan.","description":null},"pt":{"alt":"Um desenvolvedor compara duas telas de teste de bola e raquete em tablets ao lado de um notebook.","caption":"A correspondência no comportamento de uma função não significa que o jogo inteiro foi reconstruído.","description":null},"zh-hant":{"alt":"開發者在筆電旁比較兩台平板上的球與擋板測試畫面。","caption":"特定函式的行為一致，不代表整個遊戲已經還原。","description":null},"de":{"alt":"Ein Entwickler vergleicht Ball-und-Schläger-Tests auf zwei Tablets neben einem Laptop.","caption":"Stimmt das Verhalten einer Funktion überein, ist damit nicht das ganze Spiel rekonstruiert.","description":null}}},{"id":1948,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mjk5ODUsInB1ciI6ImJsb2JfaWQifX0=--1f2adeb39e8cbbe1342eb9e3c6b1d619bea6e20f/ai-ccb48b79.webp","is_representative":false,"generation_method":"ai_semi","license":"ai_generated","mime_type":"image/webp","width":1536,"height":1024,"translations":{"ko":{"alt":"짙은 회색 스웨터를 입은 엔지니어가 소형 컴퓨터에서 파란색 네트워크 케이블을 뽑고 있다.","caption":"신뢰할 수 없는 앱을 분석할 때는 보안 위험을 먼저 통제해야 합니다.","description":null},"en":{"alt":"An engineer in a dark gray sweater disconnects a blue network cable from a compact computer.","caption":"Security risks should be controlled before analyzing an untrusted app.","description":null},"ja":{"alt":"濃い灰色のセーターを着た技術者が、小型コンピューターから青いネットワークケーブルを抜いている。","caption":"信頼できないアプリを分析する前に、セキュリティ上のリスクを抑える必要があります。","description":null},"es":{"alt":"Un ingeniero con un suéter gris oscuro desconecta un cable de red azul de un ordenador compacto.","caption":"Antes de analizar una aplicación no confiable, hay que controlar los riesgos de seguridad.","description":null},"id":{"alt":"Seorang teknisi bersweter abu-abu gelap mencabut kabel jaringan biru dari komputer kecil.","caption":"Risiko keamanan perlu dikendalikan sebelum menganalisis aplikasi yang tidak tepercaya.","description":null},"pt":{"alt":"Um engenheiro de suéter cinza-escuro desconecta um cabo de rede azul de um computador compacto.","caption":"É preciso controlar os riscos de segurança antes de analisar um aplicativo não confiável.","description":null},"zh-hant":{"alt":"身穿深灰色毛衣的工程師正從小型電腦拔出藍色網路線。","caption":"分析不受信任的應用程式前，應先控管安全風險。","description":null},"de":{"alt":"Ein Ingenieur im dunkelgrauen Pullover zieht ein blaues Netzwerkkabel aus einem kompakten Computer.","caption":"Vor der Analyse einer nicht vertrauenswürdigen App sollten Sicherheitsrisiken begrenzt werden.","description":null}}}],"published_at":"2026-10-19T05:55:51+09:00","updated_at":"2026-10-19T05:55:51+09:00","license":"cc_by","translation_status":"reviewed","available_locales":["ko","en","ja","es"],"data_locales":["ko","en","ja","es","id","pt","zh-hant","de"],"url":"https://injoys.com/es/articles/rea-ai-reverse-engineering-performance-and-limits"}