Na tej stronie

Inżynieria odwrotna z twoim agentem kodującym

Dowiedz się,
jak działa oprogramowanie.

Zapytaj swojego agenta programistycznego o aplikację, grę lub stronę. REA daje mu narzędzia do zbadania kodu stojącego za odpowiedzią.

Skonfiguruj REA

Wklej to polecenie do swojego agenta programistycznego:

Twój agent kodowania

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.

Inne sposoby instalacji: curl →

Pierwszy raz lub zaginiony Node.js a może Agent kodujący? Postępuj zgodnie z instrukcją konfiguracji krok po kroku →

Jak to działa

Inżynieria wsteczna polega na poznawaniu działania oprogramowania przez badanie samego programu. Z REA twój agent może śledzić kod, wyjaśnić funkcję i pomóc ją odtworzyć.

  1. Zapytaj o jedną funkcję

    Przekaż agentowi program lub stronę i zadaj pytanie.

  2. Zbadaj program

    REA zwraca kod, odwołania i obserwacje z działania programu.

  3. Zrozum, a potem wypróbuj zmianę

    Agent wykorzystuje wyniki, aby wyjaśnić lub odtworzyć funkcję.

Zobacz całe badanie Kalkulatora

Dlaczego 200 + 10% daje 220 w Kalkulatorze?

Śledź instrukcje krok po kroku

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.

Zadaj agentowi to samo pytanie

Przykładowy monit * Kalkulator

Użycie REA aby sprawdzić Windows Kalkulator. Dlaczego 200 + 10% daje 220?

Przykładowa odpowiedź · na podstawie ustaleń

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ć.
Wybrany zespół z zainstalowanego kalkulatora DLL. Myśli i odpowiedzi ilustrują ustalenia. Kontynuuj z przykładem kalkulatora ↓

Wypróbujmy dwa przykłady: zmieńmy prędkość gry, a potem odtwórzmy przycisk % Kalkulatora.

Przykład 01 * gra dinozaurów Chrome

Dlaczego dinozaur przyspiesza?

Gra przyspiesza w miarę biegu. Aby odtworzyć ją z regulacją prędkości, najpierw musimy ustalić, jak zmienia się prędkość.

1. Zapytaj o prędkość

Przykładowe pytanie · Gra z dinozaurem

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ą.

2. Znajdź regułę prędkości

REA pozwala agentowi czytać kod działającej gry. Prędkość zaczyna się od 6 i rośnie nieco przy każdej aktualizacji, dopóki jest mniejsza niż 13.

3. Zagraj w odtworzoną grę

Odtworzyliśmy tę regułę w minigrze poniżej i dodaliśmy suwak prędkości. Uruchom grę, a potem wybierz własne tempo.

6 → 10 → 13

Pierwotna zasada: zacznij od 6, a następnie zwiększ do 13.

Przesuń suwak, aby ustawić własną prędkość. Przestrzeń lub skok usuwa kaktusa.
Otwórz speed lab
Zobacz skrypt, kontrole i jak wypróbować analizę

Sprawdzony cel: wayou ' s Chromium-wersja przeglądarki pochodnej.

REA * załadowany index.js * wybrane linie
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.

Co robi każda część

  1. 01 * REA Przeczytaj skrypt uruchomionej gryZwróć jego rzeczywisty kod i ustawienia do agenta.
  2. 02 * Twój agentOdbuduj regułę, Dodaj formantUżyj odzyskanego przyspieszenia w małej grze z suwakiem prędkości.
  3. 03 * TyZmień prędkość i grajWypróbuj oryginalne przyspieszenie, a następnie wybierz własne tempo.

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.

Wybrane ustawienia z kontrolowanego skryptu
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.

Sprawdzony kod prędkości · Chromium autorzy * licencja BSD

Przykład 02 * Kalkulator Windows

Odtwórz przycisk % kalkulatora.

Przycisk % działa inaczej po + i ×. Znajdźmy obie reguły i wypróbujmy je w małym kalkulatorze.

1. Zapytaj o przycisk %

Przykładowe pytanie · Kalkulator

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.

2. Znajdź obie reguły

REA pomaga agentowi czytać kod przycisku %. Kod stosuje dwie różne reguły:

Z +
Weź 10% pierwszej liczby.10% of 200 = 20 → 200 + 20 = 220
Z ×
Zamień 10% na 0,1.200 × 0.1 = 20

3. Wypróbuj przycisk %

Odtworzyliśmy obie reguły poniżej. Wybierz + lub ×, naciśnij %, a następnie =.

200 + 20

10% z 200 = 20. Następnie 200 + 20 = 220.

Interaktywna ilustracja kontrolowanej reguły procentowej.
Zobacz prawdziwy kod i sposób sprawdzenia odpowiedzi

Dla tego przykładu, previous = 200 oraz current = 10.

Czytelne podsumowanie % obsługi
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}

Z zainstalowanej aplikacji do działającego przycisku %

  1. 01 · REA czyta calc.exeUruchamia aplikację KalkulatorKod otwiera się ms-calculator:. Następnie agent wybiera bibliotekę zainstalowanej aplikacji.
  2. 02 * REA odczytuje bibliotekęZwróć kod % obsługiFunkcja sprawdza operatora i używa stałej 100.
  3. 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.
REA * wybrane oryginalne 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
Identyfikatory operatora * Źródło Microsoft
#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

REA case studies.

Poznaj funkcję wydanej aplikacji lub gry wraz z kodem i sprawdzonymi wynikami.

Gabloty →

Android * analiza APK

Jak authenticator generuje kod logowania

Prześledź sześciocyfrowy kod logowania Aegis w wydanym APK, a potem przesuń zegar demonstracyjny, aby zobaczyć, dlaczego kod zmienia się co 30 sekund.

Przeczytaj studium przypadku Androida

Electron * śledzenie funkcji

Jak Notion kopiuje tekst i HTML

Prześledź JavaScript w pakiecie Notion aż do schowka systemowego i zobacz, jak kopiowanie zachowuje bogate dane bloków.

Przeczytaj studium przypadku Notion

Natywna * Rekonstrukcja

DX-Ball obliczenie lewej / prawej pozycji dźwięku

Odtwórz, jak pozycja piłki zmienia się w dźwięk z lewej lub prawej strony w grze Windows z 1996 roku.

Przeczytaj studium przypadku DX-Ball

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.

Wypróbuj przykład z przewodnikiem

Wybierz cel.

Te przewodniki opisują konfigurację i pierwsze badanie dla każdego rodzaju oprogramowania.

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 przewodnik

JavaScript & Electron

Mapuj Moduły, trasy, IPC i natywne zależności z folderu aplikacji lub archiwum ASAR.

Przepływy pracy aplikacji

Aktywność 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ądarki
Wypróbuj większy projekt
Przykładowy monit * strona internetowa

Użyj REA do sprawdzenia https://rea.tools/. Sklonuj dla mnie tę stronę.

Tak, ten.

Przykładowy monit * rekonstrukcja gry

Użyj REA, aby zrekonstruować tę grę z jej pliku wykonywalnego. Odzyskaj logikę rozgrywki w C i przetestuj ją przeciwko oryginałowi.

Zobacz studium przypadku DX-Ball →

Masz pytania?

Top