REA zyskało popularność na GitHubie. Czym naprawdę jest narzędzie do inżynierii wstecznej z AI
Projekt REA (Reverse Engineer Anything) w ciągu zaledwie kilku dni zyskał ogromny rozgłos na GitHubie: liczba jego gwiazdek wzrosła z niespełna 10 tys. 6 października do ponad 100 tys. 12 października. Pośrednie dane o przyroście nie układają się wprawdzie w spójną chronologię: jedno zestawienie podaje 30 tys. gwiazdek 9 października, inne wskazuje ponad 10,4 tys. 10 października i przyrost o około 2 956 w kolejnych 24 godzinach, dlatego dokładne wartości dla poszczególnych dni należy traktować ostrożnie. Choć gwiazdka w serwisie jest jedynie formą zakładki, a nie miarą liczby aktywnych użytkowników, tak szybki przyrost zwrócił uwagę społeczności programistycznej na rolę sztucznej inteligencji w inżynierii wstecznej.
Most do profesjonalnych narzędzi, nie automatyczny kloner
Programy i gry trafiają do użytkowników w postaci skompilowanego kodu maszynowego, który jest trudny do bezpośredniej analizy. Inżynieria wsteczna polega na badaniu zachowania aplikacji, przesyłanych danych oraz struktury binarnej, aby zrozumieć zasady jej działania.
REA nie jest samodzielnym dekompilatorem ani automatem do odtwarzania aplikacji. W praktyce stanowi warstwę pośredniczącą, która łączy agentów programistycznych – takich jak Claude Code czy Codex – z istniejącym oprogramowaniem analitycznym za pośrednictwem protokołu MCP (Model Context Protocol). Kluczowym elementem tego zestawu jest Ghidra, zaawansowane środowisko inżynierii wstecznej udostępnione w 2019 roku przez amerykańską Agencję Bezpieczeństwa Narodowego (NSA).
Dzięki takiemu połączeniu model AI może analizować pliki binarne, badać interfejsy aplikacji desktopowych, programów na Androida czy serwisów internetowych oraz odpowiadać na pytania programisty dotyczące konkretnych funkcji. Dokumentacja projektu wyraźnie jednak zastrzega, że REA nie odzyskuje oryginalnego kodu źródłowego i nie służy do automatycznego klonowania oprogramowania.
Eksperymenty z AI to nie zasługa jednego narzędzia
Popularność REA zbiegła się w czasie z serią głośnych projektów fanowskich i moderskich wykorzystujących modele językowe, co wywołało mylne wrażenie, że wszystkie one powstały dzięki jednemu repozytorium.
Przykłady te pokazują potencjał AI w analizie kodu, ale ilustrują też jej ograniczenia oraz konieczność ręcznej pracy:
- Przenoszenie gier: Nieoficjalne uruchomienie gry Fable 2 na systemie Windows wymagało jedynie godziny pracy z AI przy wstępnym starcie, lecz późniejsze doprowadzenie tytułu do stabilności pochłonęło wiele godzin ręcznych poprawek. Z kolei demonstracja GTA V na iPhonie stanowiła osobny eksperyment techniczny, którego nie należy utożsamiać z działaniem REA.
- Projekty zamienników oprogramowania: Brandon Thomas rozwija pakiet ArtCraft – tworzone w języku Rust otwarte odpowiedniki narzędzi Adobe. Choć autor korzystał z modeli AI przy pisaniu kodu od zera na podstawie obserwacji działania programów, projekt ten powstał bez użycia REA. Same aplikacje znajdują się obecnie we wczesnej fazie alfa i daleko im do pełnej funkcjonalności komercyjnych pakietów graficznych.
REA pokazuje kierunek rozwoju asystentów programistycznych, dając modelom AI dostęp do specjalistycznych narzędzi diagnostycznych. Ostateczny sukces analizy kodu nadal zależy jednak od wiedzy inżyniera i możliwości zewnętrznych dekompilatorów, a nie od automatycznego generowania gotowych programów za pomocą jednego polecenia.
