Files
rea/README_pl.md
T

20 KiB

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano

REA: Reverse Engineer Anything

Jeden serwer MCP do inżynierii wstecznej plików binarnych, aplikacji i zachowania w czasie wykonywania.

Widzisz funkcję, która Ci się podoba? Dowiedz się, jak działa, aż do poziomu kodu binarnego.

npm version MCP tool catalog Node.js requirements skills.sh MIT license Discord

morluto%2Frea | Trendshift

Strona internetowa · Przewodniki · Przykłady zastosowań

Szybki start · Jak działa REA · Co możesz analizować · Przykłady zastosowań · FAQ · Dokumentacja

npx rea-agents setup


REA uruchamia most analityczny w Hopperze podczas analizy natywnego pliku binarnego



Discord
Dołącz do społeczności inżynierii wstecznej

Discord · Pytania i odpowiedzi · Pokaż swój projekt


Widzisz w aplikacji funkcję, którą chcesz mieć we własnym produkcie? Poproś swojego agenta, aby zbadał ją za pomocą REA. Może przeanalizować aplikację bez jej kodu źródłowego, wyjaśnić działanie funkcji, pokazać dowody i stworzyć jej wersję dla Twojego projektu.

REA łączy Twojego agenta z narzędziami do analizy natywnych plików binarnych, aplikacji JavaScript i Electron, zestawów .NET oraz stron internetowych. Z tych samych narzędzi możesz korzystać w terminalu. Analiza odbywa się lokalnie, a wyniki zawierają dowody i ograniczenia stojące za każdym wnioskiem.

Konfigurator rejestruje REA w Twoim agencie i instaluje pasujące instrukcje pracy. Analiza kodu natywnego może korzystać z istniejącej instalacji Hoppera lub Ghidry; konfigurator może też zainstalować Hoppera po uzyskaniu zgody. Statyczna analiza JavaScript nie wymaga żadnego z tych silników.

Odwiedź stronę REA, aby znaleźć instrukcje konfiguracji, ilustrowane przewodniki i rzeczywiste studia przypadków.

Szybki start

Skonfiguruj agenta

Po zainstalowaniu Node.js i npm uruchom:

npx rea-agents setup

Wybierz swoich agentów, sprawdź proponowane zmiany i zatwierdź je. Konfigurator dodaje serwer MCP REA i pasujące instrukcje pracy, tworząc kopie zapasowe istniejącej konfiguracji. Następnie uruchom agenta ponownie.

Konfigurator obsługuje Claude Code, Codex, Cursor, Gemini CLI, Grok Build i innych agentów. Konfigurację dostawców analizy i ręczną rejestrację MCP opisuje przewodnik instalacji i konfiguracji.

Zapytaj agenta

Sprawdź, jak działa wyszukiwanie w aplikacji Notes, pokaż mi dowody i stwórz podobną funkcję dla mojego projektu.

Zastąp Notes wybraną aplikacją i wskaż funkcję, którą chcesz zrozumieć.

Korzystaj z terminala

Przeanalizuj rozpakowany katalog aplikacji JavaScript/Electron lub archiwum ASAR:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

Wynik obejmuje moduły, importy, granice komponentów Electron oraz dowody. Zastąp ścieżkę ścieżką do swojego celu, na przykład "D:/apps/example" w systemie Windows.

Aby zainstalować polecenie rea do regularnego użytku:

npm install --global rea-agents
rea --help

Przed analizą kodu natywnego skonfiguruj dostawcę analizy. Polecenia analizy natywnej, wybór dostawcy, migawki i użycie w skryptach opisuje przewodnik CLI i Evidence.

Zaktualizuj REA

REA szybko się rozwija, a nowe wydania często zawierają poprawki błędów. Dbaj o aktualność swojej instalacji.

Dla CLI zainstalowanego przez npm:

rea update

Aby odświeżyć rejestracje agentów i umiejętność, uruchom polecenie konfiguracji wyświetlone po aktualizacji.

Jeśli używasz npx, zaktualizuj konfigurację agenta poleceniem:

npx rea-agents@latest setup

Sprawdź zmiany konfiguracji i uruchom agenta ponownie. Do jednorazowych poleceń CLI używaj npx rea-agents@latest, a następnie nazwy polecenia.

Jak działa REA

Twój agent wywołuje REA przez MCP, aby analizować cel i śledzić istotny kod. REA zwraca ustalenia wraz z dowodami. Agent wykorzystuje je do zadawania dalszych pytań, wyjaśniania zachowania lub pisania i testowania implementacji. Polecenia CLI korzystają z tych samych procedur.

Przebieg badania z REA: agent pyta o lokalny cel, REA analizuje go i śledzi za pomocą narzędzi analitycznych, a agent korzysta ze zwróconego kodu, odwołań i niewiadomych, aby wyjaśnić działanie, stworzyć implementację i ją przetestować.

Otwórz ilustrację w pełnym rozmiarze.

Co możesz analizować

REA wymaga Node.js 22.x (>=22.19), 24.x (>=24.11) lub 26+ oraz npm. Dodatkowe narzędzia i obsługiwane platformy zależą od celu analizy:

Cel Co zwraca REA Wymagania i przewodnik
Natywne pliki binarne Pseudokod, kod asemblera, ciągi znaków, symbole, wywołania i odwołania Hopper, Ghidra lub IDA; analiza kodu natywnego
Układ pliku ELF w trybie offline Sekcje, segmenty, oryginalne symbole/relokacje i potencjalne mechanizmy zabezpieczeń wskazane przez analizę statyczną pwntools dostarczone przez użytkownika w systemie Linux x64; diagnostyka plików binarnych
Kod bajtowy EVM Selektory wywołań, przesunięcia bajtowe, wywnioskowane argumenty i mutowalność Lokalny plik z surowymi bajtami lub zapisem szesnastkowym w systemie Linux x64; przewodnik EVM offline
Zarejestrowane awarie systemu Linux Surowe rekordy note, rejestry/sygnały każdego zarejestrowanego wątku i opcjonalni kandydaci na mapowania pwntools dostarczone przez użytkownika w systemie Linux x64; opcjonalnie GDB/pwndbg; zarejestrowane awarie
JavaScript / Electron Moduły, importy, mapy źródeł, trasy, IPC i powiązania z natywnymi dodatkami Node.js i npm; analiza aplikacji
Strony internetowe Struktura strony, skrypty, obserwacje sieciowe i zamówione zrzuty ekranu Przeglądarka z rodziny Chrome; analiza w przeglądarce
Zapisane przechwycenia ruchu sieciowego Żądania, odpowiedzi, dostępne dane przesyłane i lokalizacje źródłowe HAR; mitmdump w systemie Linux dla natywnych przechwyceń mitmproxy; przewodnik przechwytywania
Zestawy .NET Metadane, instrukcje CIL, zadeklarowane zależności natywne i porównania kompilacji Analiza statyczna; przewodnik kodu zarządzanego
Pakiety APK dla Androida Deklaracje manifestu, klasy, zdekompilowane metody i odwołania JADX bez interfejsu graficznego i pełny JDK w systemach Linux/macOS/Windows x64; przewodnik Androida
Urządzenia z Androidem Urządzenia, pakiety, procesy, logi, zrzuty, zrzuty ekranu oraz transfery APK/plików adb dostarczony przez wywołującego (emulator lub urządzenie); przewodnik ADB
Projekty JEB Jednostki projektu obsługiwane przez silnik, skróty artefaktów i pseudokod typów/metod Uruchomiony przez wywołującego klient JEB udostępniający MCP, wybrany przez REA_JEB_MCP_URL; przewodnik JEB
Zasoby Androida Zdekodowany manifest, tablice ciągów, języki i informacje o wersji Należący do wywołującego launcher Apktool; przewodnik zasobów
Oprogramowanie układowe Regiony, wyniki wyodrębniania i przekazanie do analizy kodu natywnego Binwalk / Unblob w systemie Linux; przewodnik oprogramowania układowego
Pakiety i zasoby Spisy plików, skróty, pliki plist, struktura pakietów Apple i wyodrębnione zasoby Przewodnik artefaktów i JavaScript, aplikacje Apple
Zachowanie procesów Wyjście terminala, interakcje, obserwacje zakończenia i systemu plików oraz porównania uruchomień Linux/macOS z natywnym PTY; przechwytywanie procesów

Statyczna analiza JavaScript i .NET odczytuje dostarczone pliki bez uruchamiania aplikacji. Przechwytywanie w czasie wykonywania uruchamia wybrany cel lub wchodzi z nim w interakcje z uprawnieniami Twojego użytkownika; skutki opisano w odpowiednich przewodnikach.

Obsługiwane formaty natywne i platformy zależą od dostawcy analizy. Zobacz konfigurację Hoppera i Ghidry, przewodnik IDA oraz eksperymentalną obsługę Ghidry w systemie Windows. Ghidra obsługuje też analizę 16-bitowego DOS-a. Wybór dostawcy opisuje przewodnik CLI. Sprawdź dostępność w wydaniach dla funkcji dodanych po najnowszym wydaniu npm.

Przykłady zastosowań

Ilustracje studiów przypadku panoramowania dźwięku w DX-Ball, mostka schowka w Notion i pierścienia pocisków w TH04

DX-Ball: odtworzenie obliczania panoramy dźwięku

Prześledź wywołanie dźwięku do funkcji pomocniczej przeliczającej pozycję na panoramę, sprawdź instrukcje i przekształć niepełny pseudokod w C. Odtworzona implementacja przechodzi 3 205 przypadków dla oryginalnego x86 i odtwarza wszystkie 63 bajty skompilowanej funkcji.

Przeczytaj studium przypadku · Repozytorium odtworzonej implementacji

Notion: śledzenie mostu schowka w Electron

Znajdź API schowka w procesie renderującym, prześledź je przez preload i IPC do procesu głównego, a następnie sprawdź format schowka wraz z danymi formatowania.

Przeczytaj studium przypadku

TH04: odtworzenie obliczania pierścienia pocisków w DOS-ie

Sprawdź 16-bitowe instrukcje oryginalnej gry na PC-98, odtwórz obliczenia kątów stałych i skierowanych na cel oraz porównaj odtworzony C++ z wynikiem historycznego kompilatora.

Przeczytaj studium przypadku · Repozytorium odtworzonej implementacji

Jeśli użyłeś REA do czegoś ciekawego, chętnie to zobaczymy. Opisz swój przypadek w zgłoszeniu lub pull requeście, podając cel analizy, pytanie, sposób, w jaki REA pomogło, i swoje ustalenia.

FAQ

Którzy agenci mogą korzystać z REA?

Każdy agent obsługujący lokalne serwery MCP. Konfigurator konfiguruje obsługiwanych agentów; inne klienty mogą użyć ręcznej rejestracji MCP.

Czy potrzebuję Hoppera, Ghidry lub IDA?

Dogłębna analiza kodu natywnego używa jednego z nich. Statyczna analiza JavaScript i .NET działa bez silnika analizy natywnej. Konfigurator może zainstalować Hoppera po uzyskaniu zgody; Ghidra i IDA korzystają z istniejących instalacji. Zobacz konfigurację dostawców analizy.

Czy muszę najpierw uruchomić Hoppera?

REA uruchamia Hoppera, gdy wymaga tego operacja. W systemie macOS przy pierwszym uruchomieniu okno dialogowe może poprosić o wybór trybu demonstracyjnego lub aktywację licencji. Zobacz uruchamianie Hoppera i rozwiązywanie problemów.

Co daje zainstalowanie umiejętności z skills.sh?

Umiejętność dostarcza agentowi instrukcje prowadzenia analizy. Użyj npx rea-agents setup, aby zarejestrować serwer MCP REA i zainstalować pasujące instrukcje, a następnie uruchom agenta ponownie. Zobacz instalację samej umiejętności.

Jaki kod zwraca REA?

Analiza kodu natywnego zwraca pseudokod i kod asemblera. Analiza JavaScript/Electron odzyskuje moduły i ich powiązania. Agent wykorzystuje te ustalenia do napisania i przetestowania implementacji; przykłady zastosowań pokazują ten proces w praktyce.

Czy REA przesyła moją aplikację?

REA analizuje cele lokalnie. Twój agent otrzymuje wyniki narzędzi, a dostawca jego modelu ma własną politykę dotyczącą danych.

Co zrobić, gdy napotkam błąd?

Najpierw zaktualizuj REA; najnowsze wydanie mogło już naprawić ten problem.

Dla CLI zainstalowanego przez npm:

rea update

Dla konfiguracji agenta przez npx:

npx rea-agents@latest setup

Jeśli używasz agenta, wykonaj odświeżenie konfiguracji i uruchom go ponownie. Ponów tę samą operację. Jeśli problem pozostaje, otwórz zgłoszenie, podając wersję REA, typ celu analizy, kroki odtworzenia problemu i komunikaty błędu.

Dokumentacja

Zacznij od przewodników z przykładami na stronie internetowej. Dokładne opcje, wymagania wstępne i kontrakty wyników opisano tutaj:

Zgłaszaj podatności zgodnie z SECURITY.md.

Historia gwiazdek

🎉 90 000 gwiazdek na GitHubie — dziękujemy!

Dziękujemy wszystkim, którzy używają REA, zgłaszają błędy, proponują nowe funkcje, testują kompilacje i przesyłają poprawki.

Historia gwiazdek REA na GitHubie

Zastrzeżenie

REA dostarcza narzędzia do zgodnych z prawem badań z zakresu inżynierii wstecznej, analizy i odtwarzania. Odpowiadasz za uzyskanie wymaganych zezwoleń i przestrzeganie obowiązującego prawa. Projekt nie popiera działań nielegalnych ani nieautoryzowanych.

Współtworzenie

Chętnie przyjmiemy Twoją pomoc w rozwoju REA! Otwórz zgłoszenie, aby poinformować o błędzie lub zaproponować funkcję, albo wyślij pull request z ulepszeniami kodu lub dokumentacji.

Zobacz CONTRIBUTING.md, aby poznać konfigurację środowiska programistycznego i kontrole, testowanie, aby poznać ścieżki weryfikacji, oraz mapę architektury, aby poznać strukturę projektu.

Licencja

MIT