{"id":1867,"date":"2026-10-15T09:34:08","date_gmt":"2026-10-15T12:34:08","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=1867"},"modified":"2026-10-15T09:34:08","modified_gmt":"2026-10-15T12:34:08","slug":"rea-engenharia-reversa-com-agentes-de-ia","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/es\/2026\/10\/rea-engenharia-reversa-com-agentes-de-ia\/","title":{"rendered":"REA: ingenier\u00eda inversa con agentes de IA"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/10\/rea-engenharia-reversa-agentes-ia-v1.webp\" alt=\"Mascote LinuxPro examinando um mecanismo de software com lupa e o REA, ao lado do c\u00e3o caramelo cyborg descansando.\" width=\"1486\" height=\"856\" \/><\/p>\n<p>Encuentras una funci\u00f3n interesante en una aplicaci\u00f3n, un formato de archivo sin documentaci\u00f3n o un programa antiguo que necesitas entender. El problema no es pedirle a la IA que \u201cadivine c\u00f3mo funciona\u201d: es darle los medios para examinar el objetivo y exigir evidencias. El <a href=\"https:\/\/github.com\/morluto\/rea\">REA \u2014 Reverse Engineer Anything<\/a> conecta agentes de programaci\u00f3n a herramientas de ingenier\u00eda inversa mediante MCP y ofrece los mismos flujos a trav\u00e9s de una CLI.<\/p>\n<p>Este art\u00edculo complementa <a href=\"https:\/\/akitaonrails.com\/2026\/10\/13\/engenharia-reversa-com-ia-a-adobe-morreu\/\">\u201cIngenier\u00eda inversa con IA: \u00bfmuri\u00f3 Adobe?\u201d<\/a>, de F\u00e1bio Akita, publicado el 13 de octubre de 2026. Su discusi\u00f3n separa el entusiasmo por las reconstrucciones asistidas por IA del trabajo necesario para entender y reproducir software. Aqu\u00ed, el foco es operativo: qu\u00e9 herramientas integra REA, qu\u00e9 preguntas ayudan a responder y c\u00f3mo empezar con un objetivo controlado en Linux.<\/p>\n<div style=\"background:#eff6ff;border-left:4px solid #2563eb;padding:.8em 1em;margin:1em 0\"><strong>Alcance:<\/strong> verificamos la release <a href=\"https:\/\/github.com\/morluto\/rea\/releases\/tag\/rea-agents-6.5.0\">rea-agents 6.5.0, del 14\/10\/2026<\/a>, commit <code data-no-translation=\"\">3b79af28e80785afce9f5998d8f03289402a1847<\/code>, y el paquete npm correspondiente. La documentaci\u00f3n de la rama principal puede mostrar capacidades posteriores. Las pruebas locales utilizaron una peque\u00f1a aplicaci\u00f3n creada para este art\u00edculo; no ejecutamos objetivos de terceros ni instalamos Ghidra, Hopper ni IDA.<\/div>\n<h2>REA no es un bot\u00f3n para clonar cualquier software<\/h2>\n<p>REA es una capa de integraci\u00f3n, investigaci\u00f3n y evidencia. El agente formula una pregunta, llama a una herramienta, recibe observaciones y decide cu\u00e1l ser\u00e1 el siguiente paso. La descompilaci\u00f3n sigue siendo trabajo de un motor como Ghidra, Hopper o IDA; el an\u00e1lisis de JavaScript utiliza otras v\u00edas; observar un proceso en ejecuci\u00f3n es una operaci\u00f3n diferente a leer un archivo.<\/p>\n<p>El propio nombre \u201cReverse Engineer Anything\u201d debe leerse como una propuesta amplia, no como una garant\u00eda. La herramienta no recupera autom\u00e1ticamente los nombres, comentarios, intenciones y pruebas que el compilador descart\u00f3. Tampoco entrega el backend de un SaaS solo porque hayas abierto su interfaz en el navegador.<\/p>\n<p>Esto no disminuye su utilidad. Automatizar inventarios, encontrar referencias, relacionar m\u00f3dulos y mantener el origen de los resultados puede ahorrar bastante trabajo repetitivo. Pero <strong>pseudoc\u00f3digo legible, c\u00f3digo que compila y comportamiento equivalente son tres cosas diferentes<\/strong>.<\/p>\n<h2>C\u00f3mo funciona: agente, herramientas y evidencias<\/h2>\n<p>El proyecto est\u00e1 escrito en TypeScript, distribuido como <code data-no-translation=\"\">rea-agents<\/code> y ofrece el comando <code data-no-translation=\"\">rea<\/code>. REA se publica bajo <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/LICENSE\">licencia MIT<\/a>; esto no altera las licencias propias de Hopper, IDA ni de otros proveedores externos. CLI y MCP usan flujos compartidos. Seg\u00fan la tarea, REA trabaja con un parser propio, una instalaci\u00f3n externa de herramienta o una conexi\u00f3n con un runtime que hayas seleccionado.<\/p>\n<figure><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/10\/rea-evidence-workflow.webp\" alt=\"Fluxo do REA: pergunta e escopo autorizado, agente e MCP, ferramentas de an\u00e1lise e evid\u00eancias com hash, origem, cobertura e limita\u00e7\u00f5es; n\u00e3o h\u00e1 clonagem autom\u00e1tica.\" width=\"1200\" height=\"820\" loading=\"lazy\" \/><figcaption>El agente coordina la investigaci\u00f3n; las herramientas producen evidencias que deben interpretarse y verificarse.<\/figcaption><\/figure>\n<p>Los resultados usan un contrato de <em>Evidence<\/em>, con campos para identificar el objetivo, operaci\u00f3n, proveedor, par\u00e1metros, origen y limitaciones. Seg\u00fan el flujo, tambi\u00e9n hay hashes, ubicaciones en el artefacto e informaci\u00f3n de cobertura. Esto ayuda a distinguir:<\/p>\n<ul>\n<li><strong>Observaci\u00f3n:<\/strong> una cadena, instrucci\u00f3n, import o declaraci\u00f3n encontrada en el archivo.<\/li>\n<li><strong>Derivaci\u00f3n:<\/strong> una relaci\u00f3n obtenida a partir de hechos observados y reglas expl\u00edcitas.<\/li>\n<li><strong>Inferencia:<\/strong> una hip\u00f3tesis sobre finalidad o comportamiento.<\/li>\n<li><strong>Desconocido:<\/strong> algo que el an\u00e1lisis no pudo establecer.<\/li>\n<\/ul>\n<p>Una direcci\u00f3n similar a una API en un bundle no prueba que ese endpoint haya sido llamado. Dos funciones con texto similar no prueban equivalencia de comportamiento. Esta disciplina es m\u00e1s importante que el n\u00famero de herramientas expuestas al agente. Los contratos est\u00e1n en la <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/mcp-contracts.md\">documentaci\u00f3n MCP<\/a>.<\/p>\n<h2>Las herramientas, organizadas por pregunta<\/h2>\n<p>No es necesario instalar todo. Elija primero el objetivo y la pregunta; luego vea la herramienta requerida. Algunas capacidades ya est\u00e1n en el paquete, otras dependen de programas proporcionados por usted. Las plataformas y versiones compatibles var\u00edan seg\u00fan el adaptador.<\/p>\n<table>\n<thead>\n<tr>\n<th>Tipo de an\u00e1lisis<\/th>\n<th>Herramientas o mecanismo<\/th>\n<th>Qu\u00e9 ayuda a descubrir<\/th>\n<th>L\u00edmite importante<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Binario nativo<\/td>\n<td>Ghidra, Hopper o IDA.<\/td>\n<td>Ensamblador, pseudoc\u00f3digo, funciones, cadenas, llamadas y referencias.<\/td>\n<td>El formato y la arquitectura dependen del proveedor; la salida no es la fuente original.<\/td>\n<\/tr>\n<tr>\n<td>Inspecci\u00f3n nativa auxiliar<\/td>\n<td>GNU objdump y Rizin proporcionados por el usuario.<\/td>\n<td>Cabeceras, secciones, s\u00edmbolos, reubicaciones e instrucciones.<\/td>\n<td>No todo comando equivale a descompilaci\u00f3n; las capacidades dependen de la instalaci\u00f3n.<\/td>\n<\/tr>\n<tr>\n<td>JavaScript\/Electron est\u00e1tico<\/td>\n<td>Analizadores de REA; Wakaru opcional para recuperaci\u00f3n de fuentes.<\/td>\n<td>M\u00f3dulos, imports, exports, candidatos a rutas y relaciones entre main, preload y renderer.<\/td>\n<td>Las expresiones din\u00e1micas y la ofuscaci\u00f3n pueden dejar relaciones desconocidas.<\/td>\n<\/tr>\n<tr>\n<td>Navegador y aplicaciones web<\/td>\n<td>CDP en navegador compatible; flujos de escenarios con Playwright.<\/td>\n<td>Estructura de la p\u00e1gina, scripts, recursos, observaciones de red y diferencias entre ejecuciones.<\/td>\n<td>Observaci\u00f3n pasiva y escenario que dirige el navegador tienen autoridades distintas.<\/td>\n<\/tr>\n<tr>\n<td>Android<\/td>\n<td>JADX y JDK; adb y Apktool para tareas espec\u00edficas; JEB por integraci\u00f3n propia.<\/td>\n<td>Manifiesto, clases, m\u00e9todos, recursos e informaci\u00f3n de dispositivo autorizado.<\/td>\n<td>APK descompilado no es un proyecto Android listo para recompilar.<\/td>\n<\/tr>\n<tr>\n<td>.NET<\/td>\n<td>Inspecci\u00f3n est\u00e1tica de metadatos PE\/CLI y CIL.<\/td>\n<td>Identidad, tipos, miembros, instrucciones y dependencias nativas declaradas.<\/td>\n<td>NativeAOT y otras formas de distribuci\u00f3n requieren un tratamiento diferente.<\/td>\n<\/tr>\n<tr>\n<td>Runtime e instrumentaci\u00f3n<\/td>\n<td>Frida, GDB e integraciones de captura seg\u00fan el host.<\/td>\n<td>Eventos, llamadas, salida y comportamiento de un proceso seleccionado.<\/td>\n<td>Puede ejecutar c\u00f3digo, modificar el estado o afectar al objetivo; requiere autorizaci\u00f3n adicional.<\/td>\n<\/tr>\n<tr>\n<td>Firmware<\/td>\n<td>Binwalk y Unblob en Linux.<\/td>\n<td>Regiones, contenidos extra\u00eddos y artefactos para an\u00e1lisis posterior.<\/td>\n<td>Extraer archivos no significa comprender toda la l\u00f3gica ni conseguir actualizar el dispositivo.<\/td>\n<\/tr>\n<tr>\n<td>Tr\u00e1fico capturado<\/td>\n<td>HAR\/SAZ; TShark\/capinfos; mitmdump en un flujo concreto.<\/td>\n<td>Peticiones, respuestas, endpoints, protocolos y campos seleccionados.<\/td>\n<td>Las capturas pueden contener credenciales y datos personales; el cifrado limita el contenido visible.<\/td>\n<\/tr>\n<tr>\n<td>Se\u00f1ales l\u00f3gicas capturadas<\/td>\n<td>sigrok-cli y l\u00edmites del proceso en Linux.<\/td>\n<td>Anotaciones de decodificadores y rangos de muestras.<\/td>\n<td>Depende de la se\u00f1al registrada y del decodificador adecuado.<\/td>\n<\/tr>\n<tr>\n<td>Metadatos de Go\/Rust<\/td>\n<td>Inspecci\u00f3n est\u00e1tica integrada para formatos compatibles.<\/td>\n<td>Informaci\u00f3n de compilaci\u00f3n de Go y dependencias de Rust cuando hay metadatos cargo-auditable.<\/td>\n<td>La ausencia de metadatos no demuestra la ausencia de dependencias.<\/td>\n<\/tr>\n<tr>\n<td>WASM, EVM y SQLite<\/td>\n<td>Flujos espec\u00edficos; WABT externo para WASM, requisitos propios para SQLite.<\/td>\n<td>Secciones e imports\/exports, estructura de bytecode o esquema y muestras de tablas.<\/td>\n<td>Son an\u00e1lisis diferentes; uno no sustituye las pruebas de ejecuci\u00f3n del otro.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Los puntos de partida son las gu\u00edas de <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/native-investigation.md\">binarios nativos<\/a>, <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/javascript-application-workflows.md\">JavaScript<\/a>, <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/android-analysis.md\">Android<\/a>, <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/managed-code-analysis.md\">.NET<\/a> e <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/reverse-engineering-tools.md\">herramientas auxiliares<\/a>.<\/p>\n<h2>Ghidra, Hopper e IDA: \u00bfcu\u00e1l es el papel de cada uno?<\/h2>\n<p>Para una investigaci\u00f3n nativa profunda, necesitas un proveedor compatible instalado y configurado. REA no sustituye a esos motores: ofrece acceso organizado a sus operaciones y preserva la procedencia de los resultados.<\/p>\n<ul>\n<li><strong>Ghidra:<\/strong> una v\u00eda abierta para an\u00e1lisis nativo. REA importa el objetivo a un proyecto temporal de an\u00e1lisis; no es simplemente un robot haciendo clic en tu GUI.<\/li>\n<li><strong>Hopper:<\/strong> integraci\u00f3n con herramienta comercial; la configuraci\u00f3n puede ofrecer instalaci\u00f3n, previa aprobaci\u00f3n. Demo y licencia tienen sus propias condiciones.<\/li>\n<li><strong>IDA:<\/strong> utiliza una instalaci\u00f3n y los componentes compatibles que ya posees; no proporciona licencia de IDA ni de Hex-Rays.<\/li>\n<\/ul>\n<p>REA no descarga ni actualiza Ghidra o Java por ti. Configura las rutas seg\u00fan la <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/installation.md#ghidra\">gu\u00eda del proveedor<\/a> y verifica la compatibilidad de esa versi\u00f3n. Para diagn\u00f3stico dirigido:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">rea providers --json\nrea capabilities --json\nrea doctor --provider ghidra --json<\/code><\/pre>\n<p>Elegir expl\u00edcitamente un proveedor evita ambig\u00fcedades cuando hay m\u00e1s de uno disponible. No utilices una direcci\u00f3n de funci\u00f3n inventada: averigua la direcci\u00f3n o nombre en el inventario del objetivo antes de solicitar una operaci\u00f3n.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># Somente em um bin\u00e1rio pr\u00f3prio ou cuja an\u00e1lise foi autorizada:\nrea analyze \/caminho\/absoluto\/programa --provider ghidra --json\nrea function \/caminho\/absoluto\/programa main --provider ghidra --json<\/code><\/pre>\n<p>Estos ejemplos son condicionales: un binario sin s\u00edmbolo <code data-no-translation=\"\">main<\/code> requiere otro identificador, y el an\u00e1lisis necesita un Ghidra configurado. No ejecutamos ese flujo nativo en el laboratorio de este art\u00edculo.<\/p>\n<h2>Instalaci\u00f3n r\u00e1pida y configuraci\u00f3n sin sorpresas<\/h2>\n<p>En 6.5.0, el paquete declara estos rangos de Node.js: <strong>22.x a partir de 22.19<\/strong>, <strong>24.x a partir de 24.11<\/strong> o <strong>26 y posteriores<\/strong>, adem\u00e1s de npm. No simplifique esto a \u201ccualquier Node m\u00e1s nuevo que 22\u201d: otras l\u00edneas intermedias no aparecen en la declaraci\u00f3n de compatibilidad.<\/p>\n<p><strong>Hay requisitos espec\u00edficos:<\/strong> la inspecci\u00f3n de SQLite en la versi\u00f3n analizada pide Node 24.x a partir de 24.15 o 26+. El Node 24.13.1 usado en nuestra prueba JavaScript cumple el requisito general, pero no con este flujo de SQLite.<\/p>\n<p>En Linux, algunos flujos necesitan un <code data-no-translation=\"\">ps<\/code> compatible con procps para comprobar identidad y propiedad de los procesos. En una distribuci\u00f3n m\u00ednima, verifique antes de comenzar:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">node --version\nnpm --version\ncommand -v ps\n\n# CLI sem instala\u00e7\u00e3o global, fixando a vers\u00e3o examinada\nnpx --yes rea-agents@6.5.0 --version\nnpx --yes rea-agents@6.5.0 --help\n\n# Planejamento somente leitura: n\u00e3o altera o Codex nem instala a skill\nnpx --yes rea-agents@6.5.0 setup \\\n  --client codex --skill=false --dry-run --json<\/code><\/pre>\n<p><code data-no-translation=\"\">npx --yes<\/code> aprueba la descarga\/ejecuci\u00f3n del paquete por parte de npm; no es la misma autorizaci\u00f3n que aplicar cambios de configuraci\u00f3n del REA. Lea el plan, haga una copia de seguridad de las configuraciones y luego ejecute la configuraci\u00f3n interactiva para elegir los clientes y aprobar exactamente lo que se va a modificar:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">npx rea-agents@6.5.0 setup<\/code><\/pre>\n<p>La configuraci\u00f3n puede registrar MCP e instalar instrucciones de investigaci\u00f3n compatibles con esa versi\u00f3n. Reinicie los clientes despu\u00e9s. Instalar solo una skill no equivale a configurar el servidor y los motores de an\u00e1lisis. Para un uso frecuente, el proyecto tambi\u00e9n documenta la instalaci\u00f3n global de <code data-no-translation=\"\">rea-agents<\/code>; prefiera un prefijo de usuario o un gestor de Node en lugar de instalar con <code data-no-translation=\"\">sudo npm<\/code>.<\/p>\n<p>La fuente oficial es <a href=\"https:\/\/github.com\/morluto\/rea\">morluto\/rea<\/a>, el sitio <a href=\"https:\/\/rea.tools\/\">rea.tools<\/a> y los <a href=\"https:\/\/registry.npmjs.org\/rea-agents\/6.5.0\">metadatos oficiales del paquete npm rea-agents<\/a>. Un nombre similar en GitHub no demuestra que la descarga sea oficial.<\/p>\n<h2>Primer ejercicio: una peque\u00f1a aplicaci\u00f3n JavaScript propia<\/h2>\n<p>No necesitas empezar con un binario comercial enorme. Un proyecto controlado te permite comparar el an\u00e1lisis con algo que conoces. Los comandos a continuaci\u00f3n crean un ejemplo sencillo y analizan sus archivos como texto, sin necesidad de Ghidra.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">mkdir -p rea-lab-app\/lib\ncd rea-lab-app\n\ncat > package.json &lt;&lt;'JSON'\n{\"name\":\"rea-lab-app\",\"version\":\"1.0.0\",\"main\":\"main.cjs\"}\nJSON\n\ncat > lib\/labels.cjs &lt;&lt;'JS'\nexports.normalizeLabel = (value) => String(value).trim().toLowerCase();\nJS\n\ncat > main.cjs &lt;&lt;'JS'\nconst { normalizeLabel } = require('.\/lib\/labels.cjs');\nmodule.exports = { normalizeLabel };\nJS\n\nnpx --yes rea-agents@6.5.0 analyze-javascript-application \\\n  \"$PWD\" --json > ..\/rea-lab-evidence.json<\/code><\/pre>\n<p>El resultado no es solo una explicaci\u00f3n en lenguaje natural. Hay una estructura de evidencia y relaciones entre artefactos y m\u00f3dulos. Para inspeccionarla, usa un visualizador de JSON o genera una vista resumida a partir del archivo guardado. El siguiente ejemplo utiliza <code data-no-translation=\"\">jq<\/code>, que debe estar instalado:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">cd ..\njq -c '{source: {kind: \"inline\", evidence: .}, view: {kind: \"summary\"}}' \\\n  rea-lab-evidence.json > rea-lab-summary-request.json\n\nnpx --yes rea-agents@6.5.0 inspect-analysis-view \\\n  rea-lab-summary-request.json --json > rea-lab-summary.json<\/code><\/pre>\n<p>En el laboratorio, usamos una variante controlada de esta aplicaci\u00f3n y a\u00f1adimos un marcador que se escribir\u00eda si se ejecutara el entrypoint. El an\u00e1lisis finaliz\u00f3 con \u00e9xito y <strong>el marcador no se cre\u00f3<\/strong>. Esto es coherente con la ruta de an\u00e1lisis est\u00e1tico declarada por el proyecto; no demuestra seguridad universal para cualquier archivo o analizador sint\u00e1ctico.<\/p>\n<h2>Qu\u00e9 probamos y qu\u00e9 qued\u00f3 fuera<\/h2>\n<table>\n<thead>\n<tr>\n<th>Verificaci\u00f3n<\/th>\n<th>Resultado observado<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Paquete npm y etiqueta<\/td>\n<td>Versi\u00f3n 6.5.0 confirmada; pruebas con Node 24.13.1.<\/td>\n<\/tr>\n<tr>\n<td>CLI<\/td>\n<td><code data-no-translation=\"\">--version<\/code> e <code data-no-translation=\"\">--help<\/code> funcionaron.<\/td>\n<\/tr>\n<tr>\n<td>Configuraci\u00f3n de solo lectura<\/td>\n<td>El plan para Codex devolvi\u00f3 <code data-no-translation=\"\">planned<\/code>, sin acciones aplicadas, en un HOME aislado.<\/td>\n<\/tr>\n<tr>\n<td>An\u00e1lisis est\u00e1tico de JavaScript<\/td>\n<td>Devolvi\u00f3 Evidence con objetivo, resumen, relaciones y limitaciones, sin ejecutar el entrypoint de prueba.<\/td>\n<\/tr>\n<tr>\n<td>Visi\u00f3n resumida<\/td>\n<td><code data-no-translation=\"\">inspect-analysis-view<\/code> proces\u00f3 la evidencia guardada.<\/td>\n<\/tr>\n<tr>\n<td>Volumen de salida de este ejemplo<\/td>\n<td>124.682 bytes de Evidence y 10.032 bytes en la respuesta de visi\u00f3n resumida.<\/td>\n<\/tr>\n<tr>\n<td>Proveedores externos y runtime<\/td>\n<td>No probados: Ghidra, Hopper, IDA, JADX, Frida, dispositivos y escenarios de navegador.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Instalamos el paquete en un directorio de laboratorio, sin instalaci\u00f3n global y con scripts de instalaci\u00f3n desactivados. Esto fue suficiente para los flujos est\u00e1ticos examinados, pero <strong>no valida integraciones nativas opcionales<\/strong>. No aplicamos la configuraci\u00f3n a los agentes reales del usuario.<\/p>\n<p>Los tama\u00f1os anteriores son bytes de JSON, no tokens, ni una estimaci\u00f3n de coste de API. Tampoco son un benchmark de escala: el objetivo era peque\u00f1o. La lecci\u00f3n pr\u00e1ctica es que preservar la evidencia completa en disco y consultar una proyecci\u00f3n puede ser mejor que volcarlo todo en el contexto del modelo.<\/p>\n<h2>Casos de uso: d\u00f3nde ayuda realmente REA<\/h2>\n<h3>1. Documentar un sistema heredado<\/h3>\n<p>Imagina una utilidad interna cuyo fuente se perdi\u00f3, pero cuyo uso y an\u00e1lisis fueron autorizados. Puedes extraer cadenas, par\u00e1metros, formatos reconocidos y funciones candidatas, y luego contrastar las hip\u00f3tesis con entradas y salidas controladas. El objetivo inicial es una especificaci\u00f3n testeable, no reescribir todo en el primer prompt.<\/p>\n<h3>2. Entender un flujo en JavaScript o Electron<\/h3>\n<p>Una funci\u00f3n de exportaci\u00f3n puede atravesar renderer, preload, IPC y proceso principal. El grafo est\u00e1tico ayuda a mapear esos l\u00edmites; la observaci\u00f3n de runtime autorizada puede mostrar qu\u00e9 caminos ocurrieron realmente. Los imports encontrados y el c\u00f3digo alcanzable no significan, por s\u00ed solos, ejecuci\u00f3n probada.<\/p>\n<h3>3. Interoperabilidad y migraci\u00f3n<\/h3>\n<p>Una integraci\u00f3n puede necesitar entender un formato o contrato observado para construir una implementaci\u00f3n propia. Trabaja con muestras permitidas, registra casos de prueba, fallos y ambig\u00fcedades, y valida los resultados. No supongas que conseguir descompilar un archivo concede derechos para copiar su implementaci\u00f3n o redistribuirla.<\/p>\n<h3>4. Preservaci\u00f3n de software y juegos antiguos<\/h3>\n<p>Los objetivos estables, los algoritmos peque\u00f1os y las entradas reproducibles son buenos candidatos para investigar. El ensamblaje y las comparaciones de comportamiento pueden ayudar a recuperar un c\u00e1lculo espec\u00edfico. Esto no es lo mismo que reconstruir assets, herramientas, servidores o un juego entero de forma autom\u00e1tica.<\/p>\n<h3>5. Comparar versiones e investigar regresiones<\/h3>\n<p>El REA tiene flujos de comparaci\u00f3n para diferentes tipos de artefacto. Pueden localizar cambios de estructura, texto u observaciones de ejecuci\u00f3n. Una diferencia de pseudoc\u00f3digo no demuestra, por s\u00ed misma, regresi\u00f3n funcional; organiza tests para la hip\u00f3tesis concreta.<\/p>\n<h3>6. Auditor\u00eda autorizada de aplicaciones<\/h3>\n<p>Los inventarios de permisos, bibliotecas, recursos y candidatos a endpoints ayudan a formular preguntas de seguridad y privacidad. Combina an\u00e1lisis est\u00e1tico y observaci\u00f3n autorizada, sin convertir \u201cno encontr\u00e9\u201d en \u201cno existe\u201d. No uses esta actividad para recopilar datos de cuentas o dispositivos de terceros sin permiso.<\/p>\n<h3>7. Firmware, protocolos y equipos<\/h3>\n<p>Los firmwares y las capturas grabadas pueden revelar componentes, dise\u00f1os y mensajes. En hardware propio o laboratorio autorizado, esto ayuda en la documentaci\u00f3n e interoperabilidad. La extracci\u00f3n, emulaci\u00f3n, ejecuci\u00f3n y grabaci\u00f3n de firmware son actividades distintas, con riesgos y permisos diferentes.<\/p>\n<h2>El an\u00e1lisis est\u00e1tico, la observaci\u00f3n pasiva y la ejecuci\u00f3n no son sin\u00f3nimos<\/h2>\n<p>Esta es una de las distinciones m\u00e1s importantes del REA. En la ruta est\u00e1tica de JavaScript y .NET, los archivos se leen sin ejecutar la aplicaci\u00f3n. Una captura de proceso, una sesi\u00f3n Frida o un escenario Playwright pueden ejecutar o interactuar con el objetivo, con los privilegios del usuario.<\/p>\n<p>O <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/browser-observation.md\">adaptador de observaci\u00f3n CDP<\/a> se conecta a un navegador seleccionado para recopilar evidencias pasivas; los proveedores de escenario que dirigen un navegador son otra superficie. No trates cada recurso relacionado con navegador como equivalente a una simple captura de pantalla.<\/p>\n<p>Frida tampoco es solo un visor: los scripts de instrumentaci\u00f3n se ejecutan dentro del proceso seleccionado. GDB puede cambiar el estado y ejecutar comandos. Antes de usar recursos din\u00e1micos, establece el objetivo, la finalidad, los efectos permitidos y la limpieza esperada. La <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/frida-instrumentation.md\">gu\u00eda de Frida<\/a> documenta sus l\u00edmites y ciclo de vida.<\/p>\n<h2>\u201cLocal\u201d no significa sandbox ni confidencialidad absoluta<\/h2>\n<ul>\n<li><strong>El parser es c\u00f3digo.<\/strong> Abrir un archivo desconocido entrega bytes a un parser o herramienta; el an\u00e1lisis est\u00e1tico no convierte un artefacto en seguro autom\u00e1ticamente.<\/li>\n<li><strong>REA no es sandbox.<\/strong> Utiliza una VM o un entorno aislado adecuado para objetivos no confiables. No montes toda tu carpeta personal dentro del laboratorio.<\/li>\n<li><strong>La autoridad es espec\u00edfica.<\/strong> El permiso para leer un archivo no implica permiso para ejecutarlo, interceptar tr\u00e1fico ni modificar un dispositivo.<\/li>\n<li><strong>Proveedor de modelo:<\/strong> los resultados locales entregados a un agente en la nube pueden entrar en el contexto enviado al proveedor.<\/li>\n<li><strong>La evidencia es sensible.<\/strong> Capturas, strings, nombres internos, rutas, c\u00f3digo y payloads pueden contener datos privados. Revisa antes de compartir.<\/li>\n<li><strong>El contenido no es instrucci\u00f3n.<\/strong> Un binario, documento o respuesta de herramienta puede contener texto malicioso; no dejes que la memoria o el resultado del an\u00e1lisis autorice nuevos comandos.<\/li>\n<\/ul>\n<p>O <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/SECURITY.md\">modelo de seguridad<\/a> describe las protecciones de transporte y tambi\u00e9n lo que no hacen. El <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/DISCLAIMER.md\">aviso legal<\/a> delimita la finalidad del proyecto y las responsabilidades de uso. Este art\u00edculo no es asesor\u00eda jur\u00eddica: la autorizaci\u00f3n, los contratos, la privacidad y los derechos sobre los resultados deben evaluarse en el contexto concreto.<\/p>\n<h2>C\u00f3mo solicitar una investigaci\u00f3n \u00fatil al agente<\/h2>\n<p>Una solicitud vaga como \u201cclona ese programa\u201d invita a hacer inferencias sin pruebas y a expandir el alcance. Una petici\u00f3n mejor explicita la pregunta, el material autorizado y el resultado esperado:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-text\" data-no-translation=\"\">Analise somente esta c\u00f3pia local do aplicativo de laborat\u00f3rio.\nObjetivo: entender o fluxo de normaliza\u00e7\u00e3o de nomes antes da exporta\u00e7\u00e3o.\nComece por an\u00e1lise est\u00e1tica; n\u00e3o execute o alvo nem abra conex\u00f5es de rede.\nPara cada conclus\u00e3o, indique o arquivo ou fun\u00e7\u00e3o de origem e a evid\u00eancia.\nSepare observa\u00e7\u00f5es, infer\u00eancias e o que continua desconhecido.\nN\u00e3o proponha equival\u00eancia funcional sem testes para as entradas escolhidas.\nSe uma etapa din\u00e2mica for necess\u00e1ria, apresente o motivo e pe\u00e7a aprova\u00e7\u00e3o.<\/code><\/pre>\n<p>Para una implementaci\u00f3n nueva, pide primero una especificaci\u00f3n de comportamiento con entradas, salidas, errores y casos l\u00edmite. Despu\u00e9s, haz que el c\u00f3digo candidato pase por pruebas independientes. Un proceso verdaderamente separado de sala limpia exige controles de acceso y separaci\u00f3n efectiva; no se garantiza con escribir \u201cclean-room\u201d en el prompt ni cambiando el nombre del agente.<\/p>\n<h2>Tokens, madurez y mantenimiento<\/h2>\n<p>Los cat\u00e1logos MCP y los informes extensos pueden ocupar mucho contexto. Empieza con una pregunta peque\u00f1a, guarda la Evidence en disco y utiliza res\u00famenes o p\u00e1ginas cuando el flujo lo admita. Algunos inventarios nativos devuelven colecciones completas; no des por hecho que exista un par\u00e1metro de paginaci\u00f3n en toda operaci\u00f3n.<\/p>\n<p>La versi\u00f3n analizada documenta opciones como <code data-no-translation=\"\">REA_MCP_INPUT_SCHEMA_PROFILE=compact<\/code> para compatibilidad con clientes que limitan esquemas. Esto cambia la presentaci\u00f3n del contrato, no crea una garant\u00eda universal de menos tokens o respuestas peque\u00f1as. Consulta los <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/mcp-contracts.md#compact-input-schema-profile\">perfiles de esquema<\/a> antes de modificar la configuraci\u00f3n.<\/p>\n<p>El proyecto tiene pruebas y verificaciones espec\u00edficas por herramienta, pero el soporte declarado y las pruebas simuladas no sustituyen la ejecuci\u00f3n con el proveedor real. La <a href=\"https:\/\/github.com\/morluto\/rea\/blob\/rea-agents-6.5.0\/docs\/testing.md\">gu\u00eda de pruebas<\/a> deja esa distinci\u00f3n expl\u00edcita. No usamos las estrellas ni el n\u00famero de commits como certificado de madurez.<\/p>\n<p>REA evoluciona r\u00e1pido. Fijar una versi\u00f3n ayuda a reproducir una investigaci\u00f3n; para actualizar, revisa las notas, los requisitos y los cambios de contrato, actualiza la CLI y revisa tambi\u00e9n la configuraci\u00f3n y las instrucciones del agente. No mezcles silenciosamente documentaci\u00f3n de <code data-no-translation=\"\">main<\/code>, paquete npm antiguo y habilidad de otro release.<\/p>\n<h2>Entonces, \u00bfAdobe ha muerto?<\/h2>\n<p>No es eso lo que REA demuestra. Entender un algoritmo o flujo de una aplicaci\u00f3n no reproduce autom\u00e1ticamente el producto entero, sus integraciones, datos, infraestructura, formatos y criterios de calidad. La distinci\u00f3n que comenta <a href=\"https:\/\/akitaonrails.com\/2026\/10\/13\/engenharia-reversa-com-ia-a-adobe-morreu\/\">Akita<\/a> es un buen ant\u00eddoto contra convertir una demostraci\u00f3n interesante en promesa universal.<\/p>\n<p>La ganancia real est\u00e1 en investigar mejor: preguntas m\u00e1s peque\u00f1as, herramientas adecuadas, evidencia trazable y pruebas que afronten la hip\u00f3tesis. Para quienes usan <a href=\"\/es\/2026\/09\/assistentes-de-ia-no-terminal-linux\/\">agentes en la terminal Linux<\/a>, REA a\u00f1ade un banco especializado \u2014 diferente de herramientas que guardan <a href=\"\/es\/2026\/10\/deja-vu-memoria-dos-agentes-no-linux\/\">memoria de las sesiones<\/a> o mapean <a href=\"\/es\/2026\/09\/vibe-coding-linux-skills-ia-cli\/\">la estructura del propio repositorio<\/a>.<\/p>\n<p><strong>Empiece por algo suyo y peque\u00f1o.<\/strong> El ejercicio JavaScript ya permite aprender el contrato de evidencia sin instalar un desensamblador. Despu\u00e9s, elija un proveedor y un caso autorizado. REA es un conjunto de herramientas potente; lo que hace que el resultado sea fiable sigue siendo el alcance, el m\u00e9todo y la verificaci\u00f3n.<\/p>","protected":false},"excerpt":{"rendered":"<p>Conoce REA: MCP, CLI, Ghidra, IDA, JavaScript, Android y otros objetivos. Instalaci\u00f3n, casos de uso y l\u00edmites de la ingenier\u00eda inversa con IA.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45,115,2],"tags":[394,549,550,116,551,311,548,479],"class_list":["post-1867","post","type-post","status-publish","format-standard","hentry","category-desenv","category-ia","category-linux","tag-agentes","tag-engenharia-reversa","tag-ghidra","tag-ia","tag-javascript","tag-mcp","tag-rea","tag-seguranca"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=1867"}],"version-history":[{"count":3,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1867\/revisions"}],"predecessor-version":[{"id":1879,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1867\/revisions\/1879"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=1867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=1867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=1867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}