REA
Toate ghidurile

REA vs Ghidra: ce flux de lucru de inginerie inversă ți se potrivește?

reverseengineeranything.tools

Compară REA și Ghidra în funcție de sarcini, intrări, rezultate, control manual, cerințe de configurare și posibilitatea de a folosi Ghidra prin REA.

Noutăți pe această pagină

  • — Am publicat cazuri din comunitate susținute de surse, ghiduri practice și precizări clare privind limitele dovezilor.

Folosește Ghidra când vrei să explorezi și să editezi direct un proiect de analiză a unui fișier binar nativ; folosește REA când vrei ca un agent de programare sau un CLI să investigheze software și să returneze constatări însoțite de dovezi. REA poate folosi Ghidra ca furnizor de analiză nativă, așadar cele două instrumente pot face parte din același flux de lucru.

Aceasta este o comparație independentă realizată pentru comunitate. Depozitul REA și depozitul Ghidra sunt sursele primare pentru capacitățile și cerințele actuale.

Care este diferența dintre REA și Ghidra?

Ghidra este un cadru pentru ingineria inversă a software-ului cu dezasamblare, decompilare, grafuri, scripturi și analiză interactivă sau automatizată. Mediul propriu de analiză al Ghidra îi oferă analistului control direct asupra investigației. Fișierul README oficial al Ghidra descrie compatibilitatea cu procesoare, formate executabile și extensii.

REA este un server MCP și CLI care acoperă mai multe categorii de ținte, inclusiv fișiere binare native, aplicații JavaScript/Electron, pagini de browser și ansambluri gestionate. Un agent de programare apelează instrumentele REA, primește constatări și limitări și decide ce să inspecteze în continuare. Pentru analiza nativă aprofundată, REA se conectează la o instalare acceptată de Ghidra, Hopper sau IDA. Ghidul REA pentru analiza nativă explică această relație cu furnizorii.

De ce ai nevoie? Punct de pornire mai potrivit Intrare Rezultat sau avantaj
Să urmărești manual funcțiile și grafurile unui fișier binar Ghidra direct Fișier binar acceptat Mediu complet de analiză interactivă și control direct asupra proiectului
Să întrebi un agent de ce o funcționalitate nativă se comportă într-un anumit fel REA cu un furnizor nativ acceptat Fișier binar și întrebare precisă Constatări, dovezi și explicații ghidate de agent
Să păstrezi și să dezvolți un proiect de analiză în timp Ghidra direct Program importat și modificările analistului Flux de lucru cu proiect persistent, sub controlul tău
Să inspectezi un modul Electron sau un traseu IPC Fluxul de lucru JavaScript al REA Folderul aplicației sau ASAR Module, relații și locații din sursă fără motor nativ
Să creezi scripturi pentru analiză nativă repetabilă Oricare, în funcție de controlul necesar Fișier binar și script de analiză sau cerere CLI Scripturi Ghidra sau rezultate CLI structurate ale REA

Când este Ghidra alegerea mai potrivită?

Alege Ghidra direct când munca depinde de explorare vizuală continuă, modificări detaliate ale analistului, scripturi personalizate sau o bază de date persistentă a programului. Interfața nativă Ghidra expune proiectul de analiză în sine. Un analist cu experiență poate inspecta instrucțiuni și grafuri fără să transforme fiecare acțiune într-o cerere adresată agentului.

Folosirea REA cu Ghidra nu expune fiecare funcționalitate Ghidra prin MCP. Documentația furnizorului REA descrie operațiile verificate și restricțiile sistemului gazdă. Fluxul de lucru documentat al REA fără interfață grafică folosește un proiect efemer; nu deschide proiectul tău de utilizator existent. Preferă interfața directă Ghidra când este necesar să întreții acel proiect existent.

Ghidra are și propriile fluxuri de lucru automatizate și bazate pe scripturi. Afirmația că Ghidra este exclusiv manual ar fi incorectă. Particularitatea utilă a REA este interfața comună pentru agenți și CLI, pentru mai multe tipuri de ținte, nu accesul exclusiv la automatizare.

Când este REA punctul de pornire mai potrivit?

REA este util pentru o întrebare precisă care trece de la inspecție la implementare. De exemplu, un agent poate investiga un calcul, identifica instrucțiunile și referințele relevante, explica o regulă, apoi scrie o mică implementare pe care să o testezi. Concluzia agentului necesită în continuare verificări în raport cu comportamentul original.

Studiul de caz oficial DX-Ball urmărește un apel de sunet până la o funcție auxiliară care transformă poziția în panoramare și reconstruiește acel calcul în C. Proiectul raportează 3,205 cazuri de testare pe codul x86 original și o potrivire pentru toți cei 63 de octeți ai funcției compilate. Aceste rezultate aparțin acelui exemplu practic concret; nu stabilesc o rată generală de succes pentru REA sau un avantaj de performanță față de Ghidra.

REA oferă și fluxuri de lucru în afara decompilării native. Pentru o aplicație Electron, analiza statică JavaScript poate identifica module și relații IPC fără să pornească Ghidra. Astfel, REA este un punct de intrare convenabil când investigația ta cuprinde împachetarea aplicațiilor, JavaScript și anumite componente native. Tabelul de ținte REA enumeră cerințele preliminare separate.

Cum folosești Ghidra prin REA?

Instalează o versiune Ghidra și un JDK acceptate de documentația furnizorului REA, apoi configurează REA să folosească acea instalare. Configurarea REA poate înregistra căi existente verificate; nu descarcă și nu instalează Ghidra sau Java în locul tău. Ghidul oficial de configurare conține instrucțiunile actuale de configurare.

Nu presupune că cea mai recentă versiune Ghidra este automat compatibilă cu pachetul REA instalat. Cerințele versiunii curente Ghidra și intervalul de versiuni ale furnizorului testate de REA au scopuri diferite. La data acestui articol, ghidul de instalare din ramura main a REA descrie o verificare a furnizorului Ghidra 12.1.x; consultă acel ghid și capacitățile serverului instalat înainte de a alege versiunile.

După configurarea furnizorului, o diagnosticare limitată la acesta este:

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

Operațiile bazate pe Ghidra pot necesita timp pentru import și analiză automată la prima interogare. Fișierele binare mari pot necesita un termen-limită mai lung pentru pornirea furnizorului, în timp ce un client MCP poate avea propriul termen-limită mai scurt pentru cereri. Folosește recomandările documentate privind termenele-limită și recuperarea când diagnostichezi această situație.

Ce limitări ar trebui să îți influențeze decizia?

Compatibilitatea furnizorilor REA variază în funcție de sistemul gazdă și de țintă. Sfera P0 a integrării Ghidra în REA pe Windows este explicit experimentală și mai restrânsă decât compatibilitatea generală Ghidra cu platformele și formatele. Citește ghidul furnizorului pentru Windows în loc să deduci compatibilitatea din capacitatea Ghidra de a importa manual un fișier.

Ramura main a REA poate descrie și funcționalități mai noi decât pachetul npm instalat prin @latest. Faptul că o versiune a pachetului funcționează nu stabilește, de unul singur, că fiecare operație din ramura main este disponibilă. Verifică delimitarea dintre pachetul publicat și ramura main și schemele instrumentelor conectate.

Ambele fluxuri de lucru necesită discernământ. Pseudocodul decompilat nu este codul sursă original, comportamentul indirect poate rămâne neclar, iar un agent de programare poate interpreta greșit dovezi corecte. Confirmă concluziile importante prin instrucțiuni și referințe relevante și printr-o verificare controlată a comportamentului.

Ce întrebări au oamenii despre REA și Ghidra?

REA înlocuiește Ghidra?

REA poate folosi Ghidra ca motor și nu înlocuiește mediul interactiv complet al Ghidra. Alege interfața potrivită sarcinii sau combină-le.

Este vreunul dintre instrumente gratuit?

Codul creat de REA este disponibil sub licența MIT. Ghidra este un proiect cu sursă deschisă, cu propria licență publicată și notificări privind componentele de la terți. Accesul la modele pentru agenții de programare și furnizorii comerciali opționali precum Hopper sau IDA au condiții separate. Consultă licența REA și licența Ghidra.

Pot inspecta JavaScript fără Ghidra?

Da. Fluxul de lucru static JavaScript/Electron al REA folosește Node.js și npm, nu un decompilator nativ. O extensie nativă din acea aplicație este o țintă de analiză separată, cu propriile cerințe.

Ce instrument ar trebui să încerce mai întâi un începător?

Pentru a învăța cod de asamblare și analiză manuală a fișierelor binare, începe cu materialele Ghidra. Pentru a învăța o investigație cu agent ghidată de o întrebare, începe cu exemplul Notes al REA sau cu ghidul nostru de configurare REA. O țintă mai mică și o întrebare verificabilă fac oricare dintre căi mai ușor de evaluat.