REA
Tous les guides

REA ou Ghidra : quelle méthode de rétro-ingénierie vous convient ?

reverseengineeranything.tools

Comparez REA et Ghidra selon la tâche, les entrées, les sorties, le contrôle manuel, les prérequis de configuration et la possibilité d’utiliser Ghidra via REA.

Nouveautés de cette page

  • — Publication de cas communautaires sourcés, de guides pratiques et de limites explicites des éléments de preuve.

Utilisez Ghidra si vous voulez explorer et modifier directement un projet d’analyse de binaire natif ; utilisez REA si vous voulez qu’un agent de programmation ou une CLI examine un logiciel et renvoie des conclusions accompagnées de preuves. REA peut utiliser Ghidra comme moteur d’analyse native : les deux outils peuvent donc faire partie de la même méthode de travail.

Il s’agit d’une comparaison communautaire indépendante. Le dépôt REA et le dépôt Ghidra sont les sources primaires sur les capacités et prérequis actuels.

Quelle différence entre REA et Ghidra ?

Ghidra est un framework de rétro-ingénierie logicielle proposant désassemblage, décompilation, graphes, scripts et analyse interactive ou automatisée. L’environnement d’analyse propre à Ghidra donne à l’analyste un contrôle direct sur l’enquête. Le README officiel de Ghidra décrit les processeurs, formats exécutables et extensions pris en charge.

REA est un serveur MCP et une CLI couvrant plusieurs familles de cibles : binaires natifs, applications JavaScript/Electron, pages de navigateur et assemblies managés. Un agent de programmation appelle les outils de REA, reçoit des conclusions et des limites, puis décide quoi examiner ensuite. Pour l’analyse native approfondie, REA se connecte à une installation prise en charge de Ghidra, Hopper ou IDA. Le guide d’analyse native de REA explique cette relation avec les moteurs.

De quoi avez-vous besoin ? Meilleur point de départ Entrée Sortie ou avantage
Suivre manuellement les fonctions et graphes d’un binaire Ghidra directement Binaire pris en charge Environnement complet d’analyse interactive et contrôle direct du projet
Demander à un agent pourquoi une fonction native se comporte d’une certaine manière REA avec un moteur natif pris en charge Binaire et question précise Conclusions guidées par l’agent, preuves et explication
Conserver et développer un projet d’analyse dans la durée Ghidra directement Programme importé et modifications de l’analyste Projet persistant sous votre contrôle
Examiner un module Electron ou un chemin IPC Méthode JavaScript de REA Dossier d’application ou ASAR Modules, relations et emplacements sources sans moteur natif
Scripter une analyse native reproductible L’un ou l’autre, selon le contrôle nécessaire Binaire et script d’analyse ou requête CLI Scripts Ghidra ou résultats CLI structurés de REA

Quand Ghidra est-il le meilleur choix ?

Choisissez Ghidra directement si le travail dépend d’une exploration visuelle continue, de modifications détaillées de l’analyste, de scripts personnalisés ou d’une base de données de programme persistante. L’interface native de Ghidra expose le projet d’analyse lui-même. Un analyste expérimenté peut examiner les instructions et graphes sans traduire chaque action en demande à un agent.

Utiliser REA avec Ghidra ne rend pas toutes les fonctions de Ghidra accessibles via MCP. La documentation des moteurs de REA décrit les opérations vérifiées et les restrictions de l’hôte. Le mode sans interface documenté par REA utilise un projet éphémère ; il n’ouvre pas votre projet utilisateur existant. Préférez l’interface directe de Ghidra si vous devez maintenir ce projet existant.

Ghidra propose aussi ses propres méthodes d’automatisation et de scripting. Affirmer que Ghidra est uniquement manuel serait incorrect. L’intérêt distinctif de REA est son interface commune pour agents et CLI à travers plusieurs types de cibles, et non un accès exclusif à l’automatisation.

Quand REA est-il le meilleur point de départ ?

REA est utile pour une question précise qui mène de l’examen à l’implémentation. Par exemple, un agent peut examiner un calcul, repérer les instructions et références pertinentes, expliquer une règle, puis écrire une petite implémentation à tester. Sa conclusion doit toujours être vérifiée face au comportement original.

L’étude de cas officielle DX-Ball suit un appel sonore jusqu’à une fonction auxiliaire convertissant une position en panoramique sonore, puis reconstruit ce calcul en C. Le projet rapporte 3,205 cas de test sur le x86 original et une correspondance des 63 octets compilés de la fonction. Ces résultats concernent cet exemple précis ; ils ne démontrent ni un taux de réussite général de REA ni un avantage de performance sur Ghidra.

REA propose aussi des méthodes hors décompilation native. Pour une application Electron, l’analyse statique JavaScript peut identifier les modules et relations IPC sans lancer Ghidra. REA est ainsi un point d’entrée pratique pour une enquête couvrant le conditionnement d’applications, JavaScript et certains composants natifs. Le tableau des cibles de REA indique les prérequis distincts.

Comment utiliser Ghidra via REA ?

Installez une version de Ghidra et un JDK pris en charge par la documentation des moteurs de REA, puis configurez REA pour cette installation. La configuration de REA peut enregistrer des chemins existants vérifiés ; elle ne télécharge ni n’installe Ghidra ou Java à votre place. Le guide officiel de configuration contient les instructions actuelles.

Ne supposez pas que la dernière version de Ghidra est automatiquement compatible avec votre paquet REA installé. Les prérequis actuels propres à Ghidra et la plage de moteurs testée par REA répondent à des objectifs différents. À la date de cet article, le guide d’installation de la branche main de REA décrit une vérification du moteur Ghidra 12.1.x ; consultez ce guide et les capacités du serveur installé avant de choisir les versions.

Après la configuration du moteur, voici un diagnostic ciblé :

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

Les opérations utilisant Ghidra peuvent demander du temps pour l’import et l’analyse automatique lors de la première requête. Les gros binaires peuvent nécessiter un délai de démarrage plus long pour le moteur, alors qu’un client MCP peut imposer son propre délai de requête plus court. Utilisez les conseils documentés sur les délais et la récupération pour diagnostiquer cette situation.

Quelles limites doivent guider votre décision ?

La prise en charge des moteurs par REA varie selon l’hôte et la cible. Son périmètre Windows Ghidra P0 est explicitement expérimental et plus restreint que la prise en charge globale des plateformes et formats de Ghidra. Lisez le guide du moteur sous Windows plutôt que de déduire une compatibilité de la capacité de Ghidra à importer un fichier manuellement.

La branche main de REA peut aussi décrire des fonctions plus récentes que le paquet npm installé par @latest. Une version de paquet fonctionnelle ne suffit pas à établir que toutes les opérations de main sont disponibles. Vérifiez la frontière entre versions et les schémas des outils connectés.

Les deux méthodes demandent du discernement. Le pseudocode décompilé n’est pas le code source original, des comportements indirects peuvent rester inexpliqués et un agent de programmation peut mal interpréter des preuves correctes. Confirmez les conclusions importantes avec les instructions, références et vérifications contrôlées du comportement pertinentes.

Quelles questions pose-t-on sur REA et Ghidra ?

REA remplace-t-il Ghidra ?

REA peut utiliser Ghidra comme moteur et ne remplace pas son environnement interactif complet. Choisissez l’interface adaptée à la tâche ou combinez-les.

L’un des outils est-il gratuit ?

Le code écrit par REA est sous licence MIT. Ghidra est un projet open source doté d’une licence publiée et de notices relatives aux tiers. L’accès aux modèles des agents de programmation et les moteurs commerciaux facultatifs comme Hopper ou IDA ont des conditions distinctes. Consultez la licence de REA et celle de Ghidra.

Puis-je examiner JavaScript sans Ghidra ?

Oui. La méthode statique JavaScript/Electron de REA utilise Node.js et npm, pas un décompilateur natif. Un module complémentaire natif de cette application constitue une cible d’analyse distincte avec ses propres prérequis.

Quel outil un débutant devrait-il essayer en premier ?

Pour apprendre l’assembleur et l’analyse manuelle de binaires, commencez par les ressources de Ghidra. Pour apprendre à conduire une enquête avec un agent à partir d’une question, commencez par l’exemple Notes de REA ou notre guide de configuration de REA. Une cible plus petite et une question vérifiable rendent les deux parcours plus faciles à évaluer.