REA
Todas las guías

REA frente a Ghidra: ¿qué flujo de ingeniería inversa te conviene?

reverseengineeranything.tools

Compara REA y Ghidra según la tarea, las entradas, las salidas, el control manual, los requisitos de configuración y la opción de utilizar Ghidra a través de REA.

Novedades de esta página

  • — Publicamos casos de la comunidad respaldados por fuentes, guías prácticas y limitaciones claras de las pruebas disponibles.

Utiliza Ghidra cuando quieras explorar y editar directamente un proyecto de análisis de binarios nativos; utiliza REA cuando quieras que un agente de programación o una CLI investigue software y devuelva hallazgos con pruebas. REA puede utilizar Ghidra como proveedor de análisis nativo, por lo que ambas herramientas pueden formar parte del mismo flujo de trabajo.

Esta es una comparativa comunitaria independiente. El repositorio de REA y el repositorio de Ghidra son las fuentes primarias sobre las capacidades y los requisitos actuales.

¿Cuál es la diferencia entre REA y Ghidra?

Ghidra es un entorno de ingeniería inversa de software con desensamblado, descompilación, grafos, ejecución de scripts y análisis interactivo o automatizado. El entorno de análisis propio de Ghidra ofrece al analista control directo sobre la investigación. El README oficial de Ghidra describe su compatibilidad con procesadores, formatos de ejecutables y extensiones.

REA es un servidor MCP y una CLI que abarcan varias familias de objetivos, como binarios nativos, aplicaciones JavaScript/Electron, páginas del navegador y ensamblados administrados. Un agente de programación llama a las herramientas de REA, recibe hallazgos y limitaciones y decide qué inspeccionar a continuación. Para el análisis nativo profundo, REA se conecta a una instalación compatible de Ghidra, Hopper o IDA. La guía de análisis nativo de REA explica esa relación con los proveedores.

¿Qué necesitas? Mejor punto de partida Entrada Salida o ventaja
Seguir manualmente las funciones y los grafos de un binario Ghidra directamente Binario compatible Entorno completo de análisis interactivo y control directo del proyecto
Preguntar a un agente por qué una función nativa se comporta de cierta manera REA con un proveedor nativo compatible Binario y una pregunta concreta Hallazgos guiados por el agente, pruebas y explicación
Conservar y desarrollar un proyecto de análisis a lo largo del tiempo Ghidra directamente Programa importado y cambios del analista Flujo de trabajo con un proyecto persistente bajo tu control
Inspeccionar un módulo de Electron o un recorrido de IPC Flujo de JavaScript de REA Carpeta de la aplicación o archivo ASAR Módulos, relaciones y ubicaciones en el código fuente sin un motor nativo
Programar mediante scripts un análisis nativo repetible Cualquiera de las dos, según el control necesario Binario y script de análisis o solicitud de CLI Scripts de Ghidra o resultados estructurados de la CLI de REA

¿Cuándo es Ghidra la mejor opción?

Elige Ghidra directamente cuando el trabajo dependa de una exploración visual continua, cambios detallados del analista, scripts personalizados o una base de datos de programa persistente. La interfaz nativa de Ghidra expone el propio proyecto de análisis. Un analista experimentado puede inspeccionar instrucciones y grafos sin convertir cada acción en una solicitud a un agente.

Utilizar REA con Ghidra no expone todas las funciones de Ghidra a través de MCP. La documentación de proveedores de REA describe las operaciones verificadas y las restricciones del sistema anfitrión. El flujo documentado de REA sin interfaz gráfica utiliza un proyecto efímero; no abre tu proyecto de usuario existente. Es preferible la interfaz directa de Ghidra cuando necesitas mantener ese proyecto existente.

Ghidra también tiene sus propios flujos automatizados y basados en scripts. Afirmar que Ghidra solo funciona de forma manual sería incorrecto. La diferencia útil de REA es su interfaz común de agente y CLI para distintos tipos de objetivos, no un acceso exclusivo a la automatización.

¿Cuándo es REA el mejor punto de partida?

REA resulta útil para una pregunta concreta que pasa de la inspección a la implementación. Por ejemplo, un agente puede investigar un cálculo, identificar instrucciones y referencias pertinentes, explicar una regla y escribir después una pequeña implementación para que la pruebes. La conclusión del agente sigue necesitando comprobaciones frente al comportamiento original.

El caso práctico oficial de DX-Ball sigue una llamada de sonido hasta una función auxiliar que convierte la posición en panoramización y reconstruye ese cálculo en C. El proyecto informa de 3,205 casos de prueba sobre el x86 original y de la coincidencia de los 63 bytes de la función compilada. Esos resultados pertenecen a ese ejemplo concreto; no establecen una tasa general de éxito de REA ni una ventaja de rendimiento frente a Ghidra.

REA también proporciona flujos de trabajo fuera de la descompilación nativa. Para una aplicación Electron, el análisis estático de JavaScript puede identificar módulos y relaciones de IPC sin iniciar Ghidra. Eso convierte a REA en un punto de entrada práctico cuando tu investigación abarca el empaquetado de aplicaciones, JavaScript y determinados componentes nativos. La tabla de objetivos de REA enumera los requisitos previos de cada uno.

¿Cómo utilizas Ghidra a través de REA?

Instala una versión de Ghidra y un JDK compatibles según la documentación de proveedores de REA, y configura después REA para que utilice esa instalación. La configuración de REA puede registrar rutas existentes verificadas; no descarga ni instala Ghidra o Java por ti. La guía oficial de configuración contiene las instrucciones actuales.

No supongas que la última versión de Ghidra es automáticamente compatible con tu paquete de REA instalado. Los requisitos de la versión actual de Ghidra y el intervalo de versiones de proveedores probado por REA tienen propósitos distintos. En la fecha de este artículo, la guía de instalación de la rama main de REA describe una comprobación del proveedor Ghidra 12.1.x; consulta esa guía y las capacidades del servidor instalado antes de elegir versiones.

Una vez configurado el proveedor, puedes ejecutar este diagnóstico específico:

npx -y rea-agents@latest doctor --provider ghidra --json

Las operaciones que utilizan Ghidra pueden necesitar tiempo para la importación y el análisis automático en la primera consulta. Los binarios grandes pueden requerir un plazo de inicio más largo para el proveedor, mientras que un cliente MCP puede tener su propio plazo más corto para las solicitudes. Consulta la guía documentada sobre plazos y recuperación al diagnosticar esa situación.

¿Qué limitaciones deberían influir en tu decisión?

La compatibilidad de los proveedores de REA varía según el sistema anfitrión y el objetivo. Su alcance Ghidra P0 en Windows es explícitamente experimental y más limitado que la compatibilidad general de Ghidra con plataformas y formatos. Lee la guía del proveedor para Windows en lugar de deducir la compatibilidad a partir de la capacidad de Ghidra para importar un archivo manualmente.

La rama main de REA también puede describir funciones más recientes que el paquete de npm instalado mediante @latest. Que una versión del paquete funcione no demuestra por sí solo que estén disponibles todas las operaciones de la rama main. Comprueba la límites de la versión publicada y los esquemas de las herramientas conectadas.

Ambos flujos requieren criterio. El pseudocódigo descompilado no es el código fuente original, algunos comportamientos indirectos pueden quedar sin resolver y un agente de programación puede interpretar mal pruebas correctas. Confirma las conclusiones importantes con instrucciones y referencias pertinentes y una comprobación controlada del comportamiento.

¿Qué suele preguntar la gente sobre REA y Ghidra?

¿Sustituye REA a Ghidra?

REA puede utilizar Ghidra como motor y no sustituye el entorno interactivo completo de Ghidra. Elige la interfaz que se ajuste a la tarea o combina ambas.

¿Es gratuita alguna de las dos herramientas?

El código escrito por REA tiene licencia MIT. Ghidra es un proyecto de código abierto con su licencia publicada y avisos de terceros. El acceso al modelo del agente de programación y los proveedores comerciales opcionales, como Hopper o IDA, tienen condiciones independientes. Consulta la licencia de REA y la licencia de Ghidra.

¿Puedo inspeccionar JavaScript sin Ghidra?

Sí. El flujo estático de JavaScript/Electron de REA utiliza Node.js y npm, no un descompilador nativo. Un complemento nativo de esa aplicación es un objetivo de análisis separado con sus propios requisitos.

¿Qué herramienta debería probar primero un principiante?

Para aprender código ensamblador y análisis manual de binarios, empieza por los materiales de Ghidra. Para aprender a investigar con un agente a partir de preguntas, empieza por el ejemplo de Notes de REA o nuestra guía de configuración de REA. Un objetivo más pequeño y una pregunta comprobable facilitan la evaluación de cualquiera de los dos caminos.