REA: agentes que leen binarios sin adivinar

REA convierte el análisis de binarios en un bucle de evidencia: el agente propone, la herramienta responde y cada conclusión queda atada a una instrucción o una cadena. Esto es lo que puede y lo que no.

n30j0su3·Publicado 26 Oct 2026·Actualizado 18 Oct 2026·7 min de lectura·Inteligencia Artificial
En este artículo

    Un binario no trae comentarios. Tampoco trae intención. Lo que trae es una secuencia de instrucciones que, leída con prisa, parece ruido. REA propone algo distinto: que un agente la recorra con evidencia y que cada conclusión pueda rastrearse hasta una instrucción, una cadena o una llamada.

    Qué es REA y qué no es

    REA es un toolkit de ingeniería inversa asistida por agentes. Su trabajo es conectar un modelo con herramientas que ya existen —Hopper, Ghidra o IDA para binarios nativos— y devolver un paquete de observaciones: pseudocódigo, assembly, cadenas, símbolos, llamadas y referencias cruzadas. El análisis corre en local y cada resultado incluye la evidencia y las limitaciones de la conclusión.

    Eso es distinto de un decompilador. Un decompilador intenta reconstruir fuente; REA orquesta herramientas y conserva el rastro de por qué el agente llegó a una hipótesis. Tampoco es un botón que convierte un ejecutable en un port. Es una capa de investigación: útil para entender una función, un protocolo o una decisión de compilación, no para saltarse el trabajo de verificación.

    La distinción importa porque la conversación pública suele mezclar tres cosas: inspeccionar un binario, decompilarlo y recompilarlo para otra plataforma. REA pertenece a la primera. Las otras dos tienen sus propios frameworks, sus propios costos y sus propios problemas legales.

    Diagrama del bucle agente, herramienta, evidencia y verificación
    El valor de REA no está en la respuesta: está en el rastro que permite verificarla.

    Qué ve un agente en un binario

    La tabla de objetivos de REA es amplia: binarios nativos, aplicaciones JavaScript y Electron, ensamblados .NET, APK de Android, firmware, bases SQLite, capturas de red y hasta señales lógicas grabadas. Para cada formato devuelve una representación distinta. En nativo, pseudocódigo y referencias; en JavaScript, módulos, imports, rutas e IPC; en .NET, metadatos e instrucciones CIL; en Android, manifiesto, clases y métodos decompilados.

    Esa variedad es útil para una investigación editorial porque permite comparar el mismo concepto en capas distintas. Un agente puede ver una cadena en un binario, la misma cadena en un bundle de JavaScript y la llamada que la consume en una captura de red. La correlación entre capas es más valiosa que cualquiera de las tres por separado.

    ObjetivoQué devuelveQué exige
    Binario nativoPseudocódigo, assembly, strings, símbolos, llamadasHopper, Ghidra o IDA
    JavaScript / ElectronMódulos, imports, source maps, rutas, IPCNode.js y npm
    .NETMetadatos, CIL, dependencias nativasNada: análisis estático
    APK AndroidManifiesto, clases, métodos decompiladosJADX y JDK
    FirmwareRegiones, extracción y handoff a análisis nativoBinwalk o Unblob

    El bucle de evidencia

    El flujo que propone REA se parece menos a “preguntar y recibir” y más a un método científico pequeño. El agente formula una hipótesis —“esta función valida una licencia”, “este string es una ruta de configuración”—, elige la herramienta, obtiene una observación y decide si la hipótesis se sostiene. Si no se sostiene, la descarta y vuelve a empezar con una nueva.

    “Analysis runs locally, and results include the evidence and limitations behind each conclusion.” — README de REA.

    Ese detalle es el que separa un asistente útil de un generador de confabulaciones. Un modelo puede inventar una explicación plausible para cualquier función; lo que no puede inventar es una referencia cruzada que aparezca en el binario. La evidencia actúa como freno.

    En la práctica, el bucle tiene cuatro artefactos: la hipótesis, la consulta a la herramienta, la observación y el veredicto. Si el agente no guarda los cuatro, el resultado es una opinión con formato técnico.

    Captura del repositorio REA: estructura, topics y descripción
    Captura del repositorio de REA: estructura, topics y descripción del proyecto. Fuente: github.com/morluto/rea.

    Un caso conceptual, paso a paso

    Imagina un ejecutable que muestra “licencia inválida” cuando falta un archivo. El agente no empieza leyendo todo el binario: busca la cadena, encuentra la función que la referencia y observa la bifurcación que decide el mensaje. Con eso formula una hipótesis: “esta función comprueba la existencia de un archivo y devuelve un booleano”.

    La verificación no consiste en confiar en el pseudocódigo. Consiste en cambiarlo todo lo posible: ejecutar el binario en un entorno controlado, quitar el archivo, observar el comportamiento y compararlo con la hipótesis. Si el comportamiento coincide, la hipótesis gana confianza; si no, se descarta. El pseudocódigo fue el mapa, no el territorio.

    Ese patrón es el mismo que se usa para entender un formato de archivo, un protocolo de red o una decisión de compilación. Cambia la herramienta, no el método. Y es la razón por la que un agente con buenas herramientas sigue necesitando un humano que decida qué merece verification.

    Los límites del análisis estático

    El análisis estático ve código, no intención. Puede decir que una función compara dos valores; no puede decir si esa comparación es una licencia, un idioma o un checksum. Puede encontrar una cadena; no puede saber si se usa en producción o es código muerto. Puede reconstruir una llamada; no puede garantizar que el binario que analiza sea el que corre en el usuario.

    Hay tres límites prácticos. Primero, la ofuscación: nombres eliminados, cadenas cifradas y flujo alterado convierten el pseudocódigo en un jeroglífico. Segundo, la dependencia del proveedor: sin Hopper, Ghidra o IDA, REA no hace análisis nativo. Tercero, la ausencia de ground truth: si no hay una fuente independiente —documentación, comportamiento observable, una segunda build— la conclusión sigue siendo una hipótesis.

    PuedeNo puede
    Encontrar cadenas, símbolos y referenciasDecir qué significa una función sin contexto
    Correlacionar capas y formatosGarantizar que el binario analizado es el desplegado
    Proponer hipótesis verificablesSustituir la verificación en runtime
    Comparación entre lo que el análisis estático observa y lo que no puede concluir
    El estático describe estructura; el runtime describe comportamiento. Ninguno de los dos basta solo.

    Cómo evaluar una conclusión

    Antes de publicar o de actuar sobre una conclusión de REA, aplico cuatro preguntas. ¿La observación es reproducible con la misma versión del binario y la misma herramienta? ¿La cadena de evidencia llega hasta una instrucción o una referencia concreta, o se queda en “el agente dice”? ¿Existe una hipótesis alternativa que explique lo mismo con menos pasos? ¿Qué observación la refutaría?

    Si alguna respuesta falta, la conclusión no está lista. Ese criterio es más útil que cualquier benchmark de “precisión” porque no depende de una tabla que nadie reprodujo. También evita el error más común: tratar el pseudocódigo como si fuera el código fuente original. No lo es. Es una reconstrucción plausible, con nombres inventados y decisiones que el compilador tomó por nosotros.

    La ola de ports nativos de 2026 se apoya en herramientas como esta, pero no se explica solo por ellas. Los frameworks de recompilación, los runtimes de compatibilidad y el trabajo humano de QA siguen siendo la mayor parte del costo. REA hace más barata la parte de investigación; no elimina las otras.

    Para seguir leyendo

    El repositorio de REA documenta los proveedores y los límites de cada formato. El resumen semanal de decomp y recomp ayuda a poner la herramienta en contexto: la mayoría de los ports de la ola no salen de un solo agente, sino de frameworks y trabajo de QA.

    Si te interesa el lado del hardware, en nuestra guía de modelos de 27B–35B explicamos cuánto ocupan y cuándo compensa usarlos. Para entender por qué la velocidad de un agente no depende solo del modelo, revisa la guía de speculative decoding y MTP. Y si vienes del gaming, la guía de emulación retro en Steam Deck muestra el otro extremo del mismo problema: hacer que código antiguo corra en hardware nuevo.

    Preguntas frecuentes

    ¿REA descompila un juego completo?

    No. Inspecciona binarios y devuelve evidencia sobre funciones y estructuras. Un port completo requiere recompilación o decompilación, runtime, assets y QA.

    ¿Necesito Hopper, Ghidra o IDA?

    Para análisis nativo, sí. REA no incluye un motor de decompilación propio; se apoya en esas herramientas.

    ¿Puedo usarlo sin conexión?

    El análisis corre en local. Algunas capacidades, como la inspección de sitios o capturas, dependen de las herramientas externas que configures.

    Diagrama de flujo: hipótesis, herramienta, observación, veredicto
    Cuatro artefactos: si falta uno, la conclusión es una opinión con formato técnico.

    La evidencia es el producto. El pseudocódigo es solo la interfaz. Si el agente no puede mostrar por qué cree lo que cree, el resultado no sirve para tomar decisiones —y menos para publicar.

    El conocimiento verdadero trasciende a lo público 🌀

    Continúa explorando Inteligencia Artificial con piezas relacionadas y evidencia adicional.

    Ver relacionados
    Escrito por

    n30j0su3

    Escritor en Freaking JSON. Apasionado por la tecnología, gaming y cultura geek.

    Deja un comentario