Inżynieria odwrotna z twoim agentem kodującym
Dowiedz się,
jak działa oprogramowanie.
REA daje Twojemu agentowi programistycznemu narzędzia do zbadania programu i wyjaśnienia jego działania.
Znasz już RE? Przejdź do poradników analizy →
Chcesz wejść głębiej? Czytaj Blog →
Skonfiguruj REA
Wklej to polecenie do swojego agenta programistycznego:
Zainstaluj REA i połącz je z tym agentem programistycznym za pomocą npx rea-agents@latest setup. Najpierw pokaż plan zmian i poczekaj na moją zgodę. Potem sprawdź instalację.
Albo uruchom to polecenie w terminalu:
npx rea-agents@latest setup
Sprawdź i zatwierdź plan zmian, a następnie uruchom agenta ponownie.
Pierwszy raz lub zaginiony Node.js a może Agent kodujący? Postępuj zgodnie z instrukcją konfiguracji krok po kroku →
Czym jest inżynieria wsteczna?
Poznawaniem działania oprogramowania przez badanie samego programu.
Cel: zrozumieć funkcję wystarczająco dobrze, aby wyjaśnij to, zmień to lub Odbuduj to.
Na przykład: dlaczego kalkulator zwraca 220 dla 200 + 10%?
Przed REA · Badasz program samodzielnie
Oryginalny x64 * wybrane instrukcje
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10
Dekodujesz instrukcje, postępujesz zgodnie z wywołaniami funkcji i rekonstruujesz obliczenia.
Z REA · Pytasz swojego agenta
Wystarczy jedno polecenie.
Zadaj agentowi pytanie zwykłymi słowami.
Użycie REA aby sprawdzić Windows Kalkulator. Dlaczego 200 + 10% daje 220?
Po +, przycisk % trwa procent pierwszej liczby.
10% of 200 = 20200 + 20 = 220
- REA dostarcza
- Instrukcje obsługi, zdekompilowany kod i połączenia.
- Twój agent wyjaśnia
- Która gałąź ma zastosowanie, co oblicza i jak ją odbudować.
Spróbujmy dwóch przykładów. Zmień szybkość gry, a następnie wróć do kalkulatora i odbuduj przycisk%.
Przykład 01 * gra dinozaurów Chrome
Dlaczego dinozaur przyspiesza?
- Gol
- Odbuduj grę za pomocą regulowana prędkość.
- Dlaczego reverse engineer it?
- Aby odtworzyć jego przyspieszenie, potrzebujemy reguła w grze biegowej: jak szybko się zaczyna, jak bardzo się zwiększa i kiedy się zatrzymuje.
Zagraj w odtworzoną wersję
Pierwotna zasada: zacznij od 6, a następnie zwiększ do 13.
REA zwróciło
Skrypt faktycznie działa na stronie. Agent odczytuje swoją funkcję aktualizacji i ustawienia prędkości, a następnie używa tej reguły w nowej grze.
Użyj REA, aby sprawdzić tę grę dinozaurów. Dlaczego robi się szybciej? Pokaż regułę prędkości, a następnie zbuduj małą wersję z regulowaną prędkością.
Sprawdzony cel: wayou ' s Chromium-wersja przeglądarki pochodnej.
if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}
Zacznij od 6. Dodaj 0.001 każda aktualizacja bez kolizji, podczas gdy prędkość jest poniżej 13.
Otwórz speed labCo robi każda część
- 01 * REA Przeczytaj skrypt uruchomionej gryZwróć jego rzeczywisty kod i ustawienia do agenta.
- 02 * Twój agentOdbuduj regułę, Dodaj formantUżyj odzyskanego przyspieszenia w małej grze z suwakiem prędkości.
- 03 * TyZmień prędkość i grajWypróbuj oryginalne przyspieszenie, a następnie wybierz własne tempo.
Zobacz skrypt, kontrole i jak wypróbować analizę
REA sprawdził wersję przeglądarki HTTP poprzez lokalne połączenie debugowania i zwrócił załadowany index.js, w tym jego źródło i trawienie.
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6
Nazwaliśmy funkcję aktualizacji oryginalnej gry w kontrolowanym sprawdzeniu przeglądarki, z wyłączonymi przeszkodami i automatycznym planowaniem. Po 4000 aktualizacjach prędkość wynosiła 10,0; po 10 000 było to 13,0, zaokrąglone do jednego miejsca po przecinku.
Nowa mini-gra zachowuje tę zasadę prędkości. Jego rysunek, skoki i Kod kolizji są małą implementacją nauczania. Otwórz laboratorium aby zobaczyć nowy kod i uruchomić tę samą kontrolę prędkości.
Aby samodzielnie sprawdzić cel, postępuj zgodnie z kroki połączenia przeglądarki używanie strona dinozaurów. Podaj agentowi ten adres URL strony i lokalny punkt końcowy debugowania, a następnie skopiuj powyższy monit.
Przykład 02 * Kalkulator Windows
Odtwórz przycisk % kalkulatora.
Widzieliśmy dlaczego 200 + 10% daje 220. Teraz odzyskajmy reguły zarówno dla+, jak i × i wypróbuj je.
- Gol
- Zbuduj mały kalkulator, który obsługuje zarówno+, jak i × poprawnie.
- Dlaczego reverse engineer it?
- Ten sam przycisk używa różne zasady PO + i ×. Sprawdzamy zainstalowaną aplikację, aby dowiedzieć się, do której liczby zastosowany jest procent.
Wypróbuj obliczenia
10% z 200 = 20. Następnie 200 + 20 = 220.
REA zwróciło
Jedna gałąź dzieli się przez 100. Drugi również mnoży się przez pierwszą liczbę. Agent używa obu do odtworzenia przycisku%.
Dla tego przykładu, previous = 200 oraz current = 10.
Użyj REA, aby sprawdzić przycisk % kalkulatora Windows. Odzyskaj reguły po + I×, a następnie zbuduj mały kalkulator, który używa obu.
if (operation == multiply || operation == divide) {
percent = current / 100;
} else {
percent = current * previous / 100;
}
- Z +
-
Weź 10% pierwszej liczby.
10% of 200 = 20 → 200 + 20 = 220 - Z ×
-
Zamień 10% na 0,1.
200 × 0.1 = 20
Z zainstalowanej aplikacji do działającego przycisku %
-
01 · REA czyta calc.exeUruchamia aplikację KalkulatorKod otwiera się
ms-calculator:. Następnie agent wybiera bibliotekę zainstalowanej aplikacji. -
02 * REA odczytuje bibliotekęZwróć kod % obsługiFunkcja sprawdza operatora i używa stałej
100. - 03 * Twój agent to interpretujeWyjaśnij i Odtwórz ZASADYSprawdź gałąź za pomocą źródła Microsoft, a następnie wypróbuj + i × powyżej.
Zobacz prawdziwy kod i sposób sprawdzenia odpowiedzi
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
#define IDC_MUL 92 // 0x5c
#define IDC_DIV 91 // 0x5b
#define IDC_PERCENT 118 // 0x76
0x64 = 100
Sprawdzone za pomocą REA 4.1.0: Kalkulator Windows 11.2508.4.0, x64. Czytelne podsumowanie wykorzystuje nazwy z publicznego źródła firmy Microsoft, aby wyjaśnić odzyskaną gałąź.
Procentowa realizacja · Przypadki testowe Microsoftu · Natywny Przewodnik konfiguracji
Twoje pierwsze śledztwo
Wypróbuj REA w małej aplikacji.
Pobierz nasz przykład notatek, prześledź eksport CSV i sprawdź jedno zmienione wejście.
Chcesz dowiedzieć się więcej?
Powiedz swojemu agentowi, co chcesz zrozumieć lub zbudować. Z REA, można pracować razem na wszystko z klonowanie tej strony do rekonstrukcja gry z jej pliku wykonywalnego.
Użyj REA do sprawdzenia https://reverseengineeranything.app/. Sklonuj dla mnie tę stronę.
Tak, ten.
Użyj REA, aby zrekonstruować tę grę z jej pliku wykonywalnego. Odzyskaj logikę rozgrywki w C i przetestuj ją przeciwko oryginałowi.
Aby wykonać kroki konfiguracji i analizy, wybierz cel:
Programy do kodu maszynowego
Sprawdzaj funkcje, ciągi znaków, odwołania i relacje wywołania funkcji w plikach wykonywalnych i bibliotekach.
Analiza programów kodu maszynowego przewodnikJavaScript & Electron
Mapuj Moduły, trasy, IPC i natywne zależności z folderu aplikacji lub archiwum ASAR.
Przepływy pracy aplikacjiAktywność przeglądarki i środowiska wykonawczego
Przechwyć wybraną aktywność przeglądarki lub procesu, a następnie porównaj wyniki w różnych przebiegach.
Przewodnik obserwacji przeglądarkiMasz pytania?
Przeczytaj FAQ, porozmawiaj z nami na Discord , lub otwórz problem GitHub dla błędów i żądań funkcji.
Dołącz do społeczności
Udostępniaj dochodzenia i uzyskaj pomoc od innych użytkowników REA na Discord . Śledź REA na X dla aktualizacji projektu.