---
title: REA - inżynieria odwrotna dla Twojego agenta kodującego
url: https://rea.tools/pl/
---

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

[Pierwsze kroki](https://rea.tools/get-started/)
[Zobacz przykład ↓](https://rea.tools/pl/#dinosaur)

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


Opcje konfiguracji


Inne sposoby instalacji: [curl →](https://rea.tools/get-started/#curl-installation)

Pierwszy raz lub zaginiony Node.js a może Agent kodujący? [Postępuj zgodnie z instrukcją konfiguracji krok po kroku →](https://rea.tools/get-started/)

[Tworzenie środowisk RL →](https://rea.tools/pl/#rl-environments)

Nagraj aplikację internetową do trenowania i testowania agentów.

[Gabloty →](https://rea.tools/pl/showcase/)

Badania i interaktywne demonstracje.

[Blog →](https://rea.tools/pl/blog/)

Metody i notatki o odtwarzaniu oprogramowania.

## 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 pomaga agentowi czytać kod i sprawdzać, co program robi podczas działania.
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
```



01 \* która gałąź?

“**0x5b? 0x5c?** Dwa skoki w to samo miejsce. Którzy to operatorzy?”

Wyszukaj identyfikatory poleceń, a następnie oznacz gałąź.

0x5b
:   Podziel ÷

0x5c
:   Mnożenie ×

02 · Co robią wywoływane funkcje?

"100 jest jasne. Rozmowy to tylko adresy. **Który dzieli? Która wartość wchodzi?**”

Sprawdź funkcje pomocnicze i prześledź zapisane wartości.

0x64
:   100

…123190
:   Divide

03 \* Jaka jest reguła?

"Ta ścieżka mnoży się przez inne dane wejściowe. Więc **10% oznacza 10% z 200** po +.”

Nazwij operandy i sprawdź obie ścieżki operatora.

200 × 10 / 100
**20**

![](https://rea.tools/assets/localized/pl/figures/analyst-thinking.svg)

Ilustrujące rozumowanie eksperta

**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 = 20`**200 + 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 ↓](https://rea.tools/pl/#calculator)

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.

Prędkość 6.0
 Użyj reguły odzyskiwania przyspieszenia

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.



Włącz JavaScript, aby grać. Nadal możesz przeczytać regułę i otworzyć kod źródłowy poniżej.

[Otwórz speed lab](https://rea.tools/pl/examples/dino-lab/)

Zobacz skrypt, kontrole i jak wypróbować analizę

Sprawdzony cel: [wayou ' s Chromium-wersja przeglądarki pochodnej](https://wayou.github.io/t-rex-runner/).

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 gry

   Zwróć jego rzeczywisty kod i ustawienia do agenta.
2. 02 \* Twój agent

   Odbuduj regułę, Dodaj formant

   Użyj odzyskanego przyspieszenia w małej grze z suwakiem prędkości.
3. 03 \* Ty

   Zmień prędkość i graj

   Wypró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](https://rea.tools/pl/examples/dino-lab/) 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](https://rea.tools/pl/guides/browser/#prepare) używanie [strona dinozaurów](https://wayou.github.io/t-rex-runner/). Podaj agentowi ten adres URL strony i lokalny punkt końcowy debugowania, a następnie skopiuj powyższy monit.

[Sprawdzony kod prędkości](https://github.com/wayou/t-rex-runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571) ·  [Chromium autorzy \* licencja BSD](https://rea.tools/assets/licenses/dinosaur.txt)

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

   Uruchamia aplikację Kalkulator

   Kod otwiera się `ms-calculator:`. Następnie agent wybiera bibliotekę zainstalowanej aplikacji.
2. 02 \* REA odczytuje bibliotekę

   Zwróć kod % obsługi

   Funkcja sprawdza operatora i używa stałej `100`.
3. 03 \* Twój agent to interpretuje

   Wyjaśnij i Odtwórz ZASADY

   Sprawdź 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](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111) · [Przypadki testowe Microsoftu](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370) · [Natywny Przewodnik konfiguracji](https://rea.tools/guides/native/)

## REA case studies.

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

[Gabloty →](https://rea.tools/pl/showcase/)

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](https://rea.tools/showcase/aegis/)

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](https://rea.tools/pl/showcase/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](https://rea.tools/pl/showcase/dx-ball/)

## Tworzenie środowisk RL

Zamień nagraną sesję aplikacji internetowej w gotowe do uruchomienia środowisko do trenowania i testowania agentów AI.

Agent rejestruje żądania przeglądarki i odpowiedzi aplikacji. REA wykorzystuje te dane do utworzenia lokalnego środowiska, w którym agenci mogą ćwiczyć zadania bez uruchamiania oryginalnej aplikacji.

Aby obsługiwać usuwanie folderów, zapis musi przedstawiać folder przed usunięciem i potwierdzać, że po usunięciu już go nie ma.

[Przewodnik tworzenia środowiska](https://rea.tools/guides/rl-environments/) · [Obejrzyj demo w X](https://x.com/reatools/status/2112574822584918075?s=20)

Skonfiguruj REA w agencie, a następnie zastąp przykładowy URL i zadania dotyczące folderów własnymi:

Twój agent kodowania

Za pomocą REA zbuduj środowisko RL z mojej testowej aplikacji internetowej: `http://127.0.0.1:3000` Uwzględnij wyświetlanie listy folderów, tworzenie, zmianę nazwy i usuwanie. Możesz tworzyć i usuwać foldery testowe. Nie zmieniaj istniejących danych. Zapisz w folderze `my-env`, sprawdź dostępne operacje i powiedz mi, jak uruchomić środowisko.

Przykładowy prompt. Zastąp URL i zadania dotyczące folderów własnymi.

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](https://rea.tools/pl/first-investigation/)

## 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](https://rea.tools/guides/native/)

### JavaScript & Electron

Prześledź kod aplikacji komputerowej napisanej w JavaScript.

[Przepływy pracy aplikacji](https://rea.tools/guides/javascript/)

### 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](https://rea.tools/pl/guides/browser/)

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 →](https://rea.tools/pl/showcase/dx-ball/)

## Masz pytania?

[Przeczytaj FAQ](https://rea.tools/pl/faq/), aby uzyskać pomoc w konfiguracji i odpowiedzi na częste pytania.

[Dołącz do Discorda](https://discord.gg/GkcryMnJDM), aby uzyskać pomoc i porozmawiać o swoich analizach.

Zgłoś błąd lub zaproponuj funkcję w [GitHub Issues](https://github.com/morluto/rea/issues/new/choose).
