REA
Alla guider

REA jämfört med Ghidra: vilket arbetsflöde för omvänd ingenjörskonst passar?

reverseengineeranything.tools

Jämför REA och Ghidra utifrån uppgift, indata, utdata, manuell kontroll, konfigurationskrav och möjligheten att använda Ghidra via REA.

Nytt på den här sidan

  • — Publicerade användningsfall från communityn med källstöd, praktiska guider och tydliga begränsningar för vad underlaget visar.

Använd Ghidra när du vill utforska och redigera ett analysprojekt för en nativ binärfil direkt. Använd REA när du vill att en kodningsagent eller ett CLI ska undersöka programvara och returnera resultat med belägg. REA kan använda Ghidra som nativ analysmotor, så båda verktygen kan ingå i samma arbetsflöde.

Det här är en oberoende jämförelse från communityn. REA:s kodarkiv och Ghidras kodarkiv är primärkällorna för aktuella funktioner och krav.

Vad är skillnaden mellan REA och Ghidra?

Ghidra är ett ramverk för omvänd ingenjörskonst av programvara med disassemblering, dekompilering, grafer, skriptfunktioner samt interaktiv eller automatiserad analys. Ghidras egen analysmiljö ger analytikern direkt kontroll över undersökningen. Den officiella README-filen för Ghidra beskriver stödet för processorer, format för körbara filer och tillägg.

REA är en MCP-server och ett CLI som omfattar flera typer av analysobjekt, bland annat nativa binärfiler, JavaScript/Electron-program, webbsidor och hanterade sammansättningar. En kodningsagent anropar REA:s verktyg, tar emot resultat och begränsningar och bestämmer vad som ska granskas härnäst. För djupanalys av nativ kod ansluter REA till en installation av Ghidra, Hopper eller IDA som stöds. REA:s guide till nativ kod förklarar hur analysmotorn används.

Vad behöver du? Bättre startpunkt Indata Utdata eller fördel
Manuellt följa funktioner och grafer i en binärfil Ghidra direkt Binärfil som stöds Fullständig interaktiv analysmiljö och direkt kontroll över projektet
Fråga en agent varför en funktion i nativ kod beter sig på ett visst sätt REA med en nativ analysmotor som stöds Binärfil och en avgränsad fråga Agentledda resultat, underlag och förklaring
Behålla och utveckla ett analysprojekt över tid Ghidra direkt Importerat program och analytikerns ändringar Arbetsflöde med ett beständigt projekt som du styr
Granska en Electron-modul eller en IPC-kodväg REA:s JavaScript-arbetsflöde Programkatalog eller ASAR Moduler, samband och platser i källkoden utan en nativ motor
Skripta upprepbar analys av nativ kod Något av dem, beroende på vilken kontroll som behövs Binärfil och analysskript eller CLI-anrop Ghidras skriptfunktioner eller REA:s strukturerade CLI-resultat

När är Ghidra det bättre valet?

Välj Ghidra direkt när arbetet kräver kontinuerlig visuell utforskning, detaljerade ändringar av en analytiker, egna skript eller en beständig programdatabas. Ghidras gränssnitt visar själva analysprojektet. En erfaren analytiker kan granska instruktioner och grafer utan att omvandla varje åtgärd till en begäran till agenten.

Att använda REA med Ghidra gör inte varje Ghidra-funktion tillgänglig via MCP. REA:s dokumentation för analysmotorn beskriver verifierade operationer och begränsningar för värdsystemet. REA:s dokumenterade arbetsflöde utan grafiskt gränssnitt använder ett tillfälligt projekt. Det öppnar inte ditt befintliga användarprojekt. Föredra Ghidras direkta gränssnitt när det är ett krav att underhålla det befintliga projektet.

Ghidra har också egna arbetsflöden för automatisering och skript. Det vore fel att påstå att Ghidra bara är manuellt. Det som utmärker REA är dess gemensamma gränssnitt för agenter och CLI över flera typer av analysobjekt, inte att det ensamt erbjuder automatisering.

När är REA den bättre startpunkten?

REA är användbart för en avgränsad fråga som går från granskning till implementation. En agent kan till exempel undersöka en beräkning, identifiera relevanta instruktioner och referenser, förklara en regel och sedan skriva en liten implementation som du kan testa. Agentens slutsats behöver fortfarande kontrolleras mot det ursprungliga beteendet.

Den officiella fallstudien av DX-Ball följer ett ljudanrop till en hjälpfunktion som omvandlar position till stereopanorering och återskapar beräkningen i C. Projektet rapporterar 3,205 testfall mot den ursprungliga x86-koden och en matchning för alla 63 byte i den kompilerade funktionen. Resultaten gäller just det genomarbetade exemplet. De fastställer inte en generell framgångsfrekvens för REA eller en prestandafördel jämfört med Ghidra.

REA erbjuder också arbetsflöden utanför dekompilering av nativ kod. För ett Electron-program kan statisk JavaScript-analys identifiera moduler och IPC-samband utan att starta Ghidra. Det gör REA till en praktisk startpunkt när undersökningen omfattar programpaketering, JavaScript och utvalda nativa komponenter. REA:s tabell över analysobjekt listar de separata förutsättningarna.

Hur använder du Ghidra via REA?

Installera en Ghidra-version och en JDK som stöds av REA:s dokumentation för analysmotorn och konfigurera sedan REA att använda den installationen. REA:s konfiguration kan registrera verifierade befintliga sökvägar. Den hämtar eller installerar inte Ghidra eller Java åt dig. Den officiella konfigurationsguiden innehåller de aktuella instruktionerna.

Utgå inte från att den senaste Ghidra-versionen automatiskt är kompatibel med ditt installerade REA-paket. Ghidras egna aktuella versionskrav och det intervall av analysmotorversioner som REA har testat fyller olika syften. Vid artikelns publiceringsdatum beskriver installationsguiden i REA:s main-gren en kontroll för Ghidra-motorn 12.1.x. Läs den guiden och kontrollera den installerade serverns funktioner innan du väljer versioner.

När analysmotorn är konfigurerad kan du göra en avgränsad diagnostikkontroll med:

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

Operationer som använder Ghidra kan behöva tid för import och automatisk analys vid den första frågan. Stora binärfiler kan kräva en längre tidsgräns för att starta analysmotorn, samtidigt som en MCP-klient kan ha en egen, kortare tidsgräns för anrop. Använd den dokumenterade vägledningen om tidsgränser och återhämtning när du felsöker den situationen.

Vilka begränsningar bör påverka ditt beslut?

REA:s stöd för analysmotorer varierar beroende på värdsystem och analysobjekt. Dess Ghidra P0-stöd i Windows är uttryckligen experimentellt och mer begränsat än Ghidras övergripande stöd för plattformar och format. Läs guiden för Windows-motorn i stället för att anta kompatibilitet utifrån att Ghidra kan importera en fil manuellt.

REA:s main-gren kan också beskriva nyare funktioner än npm-paketet som installeras med @latest. Att en paketversion fungerar visar i sig inte att varje operation i main-grenen är tillgänglig. Kontrollera versionsgränsen och schemana för de anslutna verktygen.

Båda arbetsflödena kräver omdöme. Dekompilerad pseudokod är inte den ursprungliga källkoden, indirekt beteende kan förbli outrett och en kodningsagent kan feltolka korrekt underlag. Bekräfta viktiga slutsatser med relevanta instruktioner, referenser och en kontrollerad verifiering av beteendet.

Vilka frågor brukar ställas om REA och Ghidra?

Ersätter REA Ghidra?

REA kan använda Ghidra som motor och ersätter inte Ghidras fullständiga interaktiva miljö. Välj det gränssnitt som passar uppgiften eller kombinera dem.

Är något av verktygen gratis?

Kod som har skrivits av REA-projektet har MIT-licens. Ghidra är ett projekt med öppen källkod med en publicerad licens och information om tredjepartskomponenter. Modellåtkomst för kodningsagenter och valfria kommersiella analysmotorer som Hopper eller IDA har separata villkor. Se REA:s licens och Ghidras licens.

Kan jag granska JavaScript utan Ghidra?

Ja. REA:s statiska JavaScript/Electron-arbetsflöde använder Node.js och npm, inte en nativ dekompilator. Ett nativt tillägg i programmet är ett separat analysobjekt med egna krav.

Vilket verktyg bör en nybörjare prova först?

För att lära dig assembler och manuell binäranalys börjar du med Ghidras eget material. För att lära dig en frågestyrd undersökning med en agent börjar du med REA:s Notes-exempel eller vår guide till REA-konfiguration. Ett mindre analysobjekt och en fråga som går att kontrollera gör båda vägarna lättare att utvärdera.