REA zpřístupňuje AI agentům nástroje pro reverzní inženýrství
REA připojuje AI agenty k nástrojům, které zkoumají hotové programy bez původních zdrojových kódů. Balíček rea-agents na npm má od 25. října verzi 6.8.0; vedle analýzy aplikací umí ze záznamu webového provozu vytvořit prostředí pro trénování a testování agentů.
REA, zkratka Reverse Engineer Anything, je server pro protokol MCP a nástroj pro příkazovou řádku. Propojuje agenta s programy pro reverzní inženýrství, tedy zkoumání toho, jak hotový software funguje. Míří na vývojáře a výzkumníky, kteří potřebují sledovat konkrétní funkci, porovnat sestavení nebo doložit chování aplikace bez přístupu k jejím zdrojům. Samotné REA není jazykový model.
Ke dni 26. října je aktuální vydání 6.8.0 z 25. října 2026. Stejnou verzi nabízí balíček rea-agents na npm. Projektový kód má licenci MIT; připojené cizí nástroje si ponechávají vlastní licence.

Agent zadává dotazy přes MCP
Model Context Protocol (MCP) je rozhraní, přes které agent volá externí nástroje a dostává jejich výsledky. REA vrací nálezy spolu s podklady a omezeními: například kód funkce, její adresu či vazby na další funkce. Agent podle nich volí další dotaz, vysvětlí chování nebo napíše a ověří vlastní implementaci. Stejné postupy lze spouštět z terminálu.
Instalátor registruje MCP server a přidá pracovní pokyny například pro Claude Code, Codex či Cursor. Nejprve ukáže plán změn, vyžádá schválení a zálohuje dosavadní nastavení. Po dokončení se agent restartuje. Pro vydání 6.8.0 vypadá spuštění takto:
npx rea-agents@6.8.0 setup
Balíček požaduje Node.js řady 22 od 22.23.4, řady 24 od 24.22.1 nebo verzi 26.12.1 a novější. Další požadavky závisejí na cíli a operačním systému. Dokumentace větve main se může lišit od vydaného balíčku; rozhoduje verze připojeného serveru a jeho skutečný seznam nástrojů.
Binárky, Electron a spravovaný kód mají různé postupy
Pro podrobnou analýzu nativních binárek REA používá Hopper, Ghidru nebo IDA. Zprostředkuje pseudokód, instrukce procesoru, řetězce, symboly a odkazy mezi funkcemi. Podporované formáty a systémy závisejí na vybraném enginu. Další rozhraní zapojují uživatelem dodané GNU objdump, Rizin, most do Cutteru a GDB. Trvalá ladicí sezení GDB a Rizinu dokumentace omezuje na Linux. Frida dovoluje připojit se k procesu a sledovat jej pomocí uživatelových skriptů.
U JavaScriptu a Electronu REA čte rozbalenou aplikaci či archiv ASAR a sestavuje vztahy modulů, importů, map zdrojového kódu a komunikace mezi procesy. Statická analýza aplikaci nespouští a nepotřebuje nativní dekompilátor. Záznam jejího chování za běhu je samostatná operace.
Sestavení .NET zkoumá bez načtení a spuštění jejich kódu: čte metadata, instrukce mezikódu CIL a deklarovaná volání nativních knihoven. Umí také porovnávat členy mezi sestaveními. Tato sada nástrojů nezahrnuje spouštění spravovaného kódu.
Pro balíčky Android APK používá headless JADX a plný JDK. Získává manifest, třídy, dekompilované metody a odkazy. U JVM dokumentace popisuje i rozpoznání komponent v inventáři APK; nelze z toho vyvozovat obecnou podporu libovolné aplikace pro Javu. Nástroje adb slouží zvlášť k práci se zařízením či emulátorem, jeho balíčky, procesy, logy a přenosy souborů. Připojit lze také samostatně spuštěný JEB s vlastním MCP rozhraním.
Firmware a síťové záznamy vyžadují další nástroje
U firmwaru dokumentace uvádí Binwalk pro hledání oblastí a Unblob pro výslovně zadané rozbalení. Ověřený rozsah této části je Linux x64. Vytažený spustitelný soubor se pak vybírá zvlášť pro další analýzu; REA tím neslibuje emulaci celého zařízení.
WebAssembly kontroluje přes uživatelem dodané WABT 1.0.42. Ověřuje modul, čte sekce, importy a exporty a vytváří textový zápis WAT. Kód WASM při tom nespouští.
Pro živé weby používá prohlížeč rodiny Chrome: sleduje stránku, skripty, síťová volání a na vyžádání pořizuje snímky. Odděleně umí číst uložené záznamy HAR a Fiddler Everywhere SAZ, případně záznamy mitmproxy přes mitmdump na Linuxu. Zaznamenané adresy při této analýze znovu nenavštěvuje. Pro paketové záznamy má postupy s TShark a capinfos.
AgentEnv běží z pozorovaných dat
Verze 6.8.0 přidává sestavování místních prostředí pro agenty ze síťových záznamů či zaznamenaných scénářů v prohlížeči. AgentEnv je samostatný framework, ve kterém lze exportované prostředí spustit. REA dodá nástroje, jejich místní data a základní test; ke spuštění exportu jsou potřeba AgentEnv a Docker.
Agent v prostředí například hledá záznamy nebo vytváří složky bez běhu původní aplikace. Odpovědi vycházejí z uloženého provozu, změny stavu jsou podporované tehdy, když záznam dokládá jejich účinek. Výsledek tedy pokrývá zaznamenané operace. Cíle úloh a kontroly odměn pro posilované učení si uživatel doplňuje ve svém trénovacím systému.
Podklady mohou obsahovat podstrčené pokyny
Dokumentace MCP výslovně označuje řetězce z binárek, pseudokód, stránky, skripty i logy za nedůvěryhodná data. Mohou obsahovat text vydávající se za pokyn agentovi, třeba žádost o stažení pomocného programu. Agent jej nemá vykonat; REA takový obsah označuje v metadatech výsledku a žádá hlásit podobné výzvy jako pokus o podstrčení instrukcí.
Podle bezpečnostních pravidel projektu REA není sandbox, tedy izolované prostředí chránící systém před škodlivým cílem. Externí analyzátor pracuje s právy uživatele a operace za běhu mohou aplikaci spouštět či měnit její stav. Analýza probíhá místně, její výsledky ale dostává agent a dál se na ně vztahují pravidla jeho poskytovatele modelu. Pro IDA, Hopper či JEB je nutné vlastní oprávnění podle podmínek výrobce; licence MIT k REA je nenahrazuje.
O nástroji píše i Javier Cañete na Jacaru. V testu zveřejněném 19. října popsal verzi 6.7.0 v kontejneru arm64: analyzoval Electron aplikaci Hyper a přes Ghidru dekompiloval vlastní program v C. U Hyperu zároveň zaznamenal, že vztahy u části souborů nepokryla dostupná paměť. To je konkrétní ukázka i hranice ověření; výsledky tohoto testu se vztahují ke starší verzi a uvedeným cílům.
Zdroje: repozitář a dokumentace REA, vydání 6.8.0, npm a praktický test Jacaru.