---
title: 'REA: Αντίστροφη μηχανική για τον βοηθό προγραμματισμού σας'
url: https://rea.tools/el/
---

Αντίστροφη μηχανική, με τον βοηθό προγραμματισμού σας

# Μάθετε πώς λειτουργεί το λογισμικό.

Ρωτήστε τον βοηθό προγραμματισμού σας για μια εφαρμογή, ένα παιχνίδι ή έναν ιστότοπο. Το REA τού δίνει τα εργαλεία για να εξετάσει τον κώδικα που εξηγεί την απάντηση.

[Ξεκινήστε](https://rea.tools/get-started/)
[Δείτε ένα παράδειγμα ↓](https://rea.tools/el/#dinosaur)

## Ρύθμιση του REA

Αντιγράψτε το παρακάτω στον βοηθό προγραμματισμού σας:

Ο βοηθός προγραμματισμού σας

Εγκατάστησε το REA και σύνδεσέ το με αυτόν τον βοηθό προγραμματισμού χρησιμοποιώντας την εντολή npx rea-agents@latest setup. Δείξε μου το σχέδιο ρύθμισης για έγκριση και, στη συνέχεια, επαλήθευσε την εγκατάσταση.

Ή εκτελέστε την παρακάτω εντολή στο τερματικό σας:

`npx rea-agents@latest setup`

Εγκρίνετε το σχέδιο ρύθμισης και, στη συνέχεια, επανεκκινήστε τον βοηθό σας.


Επιλογές ρύθμισης


Άλλοι τρόποι εγκατάστασης: [curl →](https://rea.tools/get-started/#curl-installation)

Είναι η πρώτη σας φορά ή σας λείπει το Node.js ή ένας βοηθός προγραμματισμού; [Ακολουθήστε τον αναλυτικό οδηγό ρύθμισης →](https://rea.tools/get-started/)

[Δημιουργία περιβαλλόντων RL →](https://rea.tools/el/#rl-environments)

Καταγράψτε μια εφαρμογή ιστού για εκπαίδευση και δοκιμή πρακτόρων.

[Μελέτες →](https://rea.tools/el/showcase/)

Διερευνήσεις και διαδραστικά παραδείγματα.

[Ιστολόγιο →](https://rea.tools/el/blog/)

Μέθοδοι και σημειώσεις ανακατασκευής.

## Πώς λειτουργεί

Αντίστροφη μηχανική σημαίνει να μαθαίνετε πώς λειτουργεί το λογισμικό εξετάζοντας το ίδιο το πρόγραμμα. Με το REA, ο βοηθός σας μπορεί να ακολουθήσει τον κώδικα, να εξηγήσει μια λειτουργία και να σας βοηθήσει να την ανακατασκευάσετε.

1. ### Ρωτήστε για μία λειτουργία

   Δώστε στον βοηθό σας ένα πρόγραμμα ή μια σελίδα και μια ερώτηση.
2. ### Εξετάστε το πρόγραμμα

   Το REA βοηθά τον πράκτορά σας να διαβάσει τον κώδικα και να δει τι κάνει το πρόγραμμα κατά την εκτέλεσή του.
3. ### Εξηγήστε το και δοκιμάστε μια αλλαγή

   Ο βοηθός σας χρησιμοποιεί τα ευρήματα για να εξηγήσει ή να ανακατασκευάσει τη λειτουργία.

Δείτε ολόκληρη τη διερεύνηση του Calculator

Γιατί το Calculator δίνει 220 για το 200 + 10%;

### Ακολουθήστε τις εντολές βήμα προς βήμα

Αρχικός κώδικας x64 · επιλεγμένες εντολές 

```
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 · Ποια διακλάδωση;

«**0x5b; 0x5c;** Δύο άλματα στο ίδιο σημείο. Σε ποιους τελεστές αντιστοιχούν;»

Βρείτε τα αναγνωριστικά εντολών και προσδιορίστε τη διακλάδωση.

0x5b
:   Διαίρεση ÷

0x5c
:   Πολλαπλασιασμός ×

02 · Τι κάνουν οι κλήσεις;

«Το 100 είναι σαφές. Οι κλήσεις είναι απλώς διευθύνσεις. **Ποια εκτελεί τη διαίρεση; Ποια τιμή δέχεται;**»

Εξετάστε τις βοηθητικές συναρτήσεις και ιχνηλατήστε τις αποθηκευμένες τιμές.

0x64
:   100

…123190
:   Διαίρεση

03 · Ποιος είναι ο κανόνας;

«Αυτή η διαδρομή πολλαπλασιάζει με την άλλη είσοδο. Άρα, μετά το +, **το 10% σημαίνει 10% του 200**.»

Προσδιορίστε τους τελεστέους και ελέγξτε και τις δύο διαδρομές τελεστών.

200 × 10 / 100
**20**

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

Ενδεικτικός συλλογισμός αναλυτή

**Αποκωδικοποιείτε τις εντολές, ακολουθείτε τις κλήσεις και ανακατασκευάζετε τον υπολογισμό.**

Κάντε την ίδια ερώτηση στον βοηθό σας

Παράδειγμα prompt · Calculator

Χρησιμοποίησε το REA για να εξετάσεις το Windows Calculator. Γιατί το 200 + 10% δίνει 220;

Παράδειγμα απάντησης · βάσει των ευρημάτων

Μετά το +, το κουμπί % υπολογίζει **ένα ποσοστό του πρώτου αριθμού.**

`10% of 200 = 20`**200 + 20 = 220**

Το REA παρέχει
:   Τις εντολές του χειριστή, τον απομεταγλωττισμένο κώδικα και τις κλήσεις.

Ο βοηθός σας εξηγεί
:   Ποια διακλάδωση εφαρμόζεται, τι υπολογίζει και πώς μπορεί να ανακατασκευαστεί.

Επιλεγμένος κώδικας assembly από το εγκατεστημένο DLL του Calculator. Οι σκέψεις και η απάντηση παρουσιάζουν τα ευρήματα. [Συνεχίστε με το παράδειγμα του Calculator ↓](https://rea.tools/el/#calculator)

Ας δοκιμάσουμε δύο παραδείγματα: αλλάζουμε την ταχύτητα ενός παιχνιδιού και έπειτα ανακατασκευάζουμε το κουμπί % του Calculator.

Παράδειγμα 01 · Το παιχνίδι με τον δεινόσαυρο του Chrome

## Γιατί επιταχύνει ο δεινόσαυρος;

Το παιχνίδι επιταχύνει όσο τρέχετε. Για να το ανακατασκευάσουμε με ρυθμιστικό ταχύτητας, πρέπει πρώτα να βρούμε πώς αλλάζει η ταχύτητα.

### 1. Ρωτήστε για την ταχύτητα

Παράδειγμα ερώτησης · Παιχνίδι με τον δεινόσαυρο

Χρησιμοποίησε το REA για να εξετάσεις αυτό το παιχνίδι με τον δεινόσαυρο. Γιατί επιταχύνει; Δείξε τον κανόνα ταχύτητας και έπειτα κατασκεύασε μια μικρή έκδοση με ρυθμιζόμενη ταχύτητα.

### 2. Βρείτε τον κανόνα ταχύτητας

Το REA επιτρέπει στον βοηθό να διαβάσει τον κώδικα του παιχνιδιού που εκτελείται. Η ταχύτητα ξεκινά από το 6 και αυξάνεται λίγο σε κάθε ενημέρωση όσο παραμένει κάτω από το 13.

### 3. Παίξτε το αποτέλεσμα

Ανακατασκευάσαμε αυτόν τον κανόνα στο παρακάτω μικρό παιχνίδι και προσθέσαμε ρυθμιστικό ταχύτητας. Πατήστε Έναρξη και έπειτα επιλέξτε τη δική σας ταχύτητα.

Ταχύτητα 6.0
 Χρήση του ανακτημένου κανόνα επιτάχυνσης

Αρχικός κανόνας: εκκίνηση από 6 και σταδιακή αύξηση προς το 13.

Μετακινήστε το ρυθμιστικό για να ορίσετε τη δική σας ταχύτητα. Πατήστε Space ή Άλμα για να περάσετε έναν κάκτο.



Ενεργοποιήστε τη JavaScript για να παίξετε. Μπορείτε πάντως να διαβάσετε τον κανόνα και να ανοίξετε τον παρακάτω πηγαίο κώδικα.

[Ανοίξτε το εργαστήριο ταχύτητας →](https://rea.tools/el/examples/dino-lab/)

Δείτε το script, τους ελέγχους και τον τρόπο εκτέλεσης της ανάλυσης

Στόχος που εξετάστηκε: [η έκδοση του wayou για προγράμματα περιήγησης, η οποία προέρχεται από το Chromium](https://wayou.github.io/t-rex-runner/).

REA · φόρτωσε το index.js · επιλεγμένες γραμμές

```
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}
```

Ξεκινήστε από το 6. Προσθέστε 0.001 σε κάθε ενημέρωση χωρίς σύγκρουση, όσο η ταχύτητα παραμένει κάτω από το 13.

Τι κάνει κάθε μέρος

1. 01 · REA

   Διαβάζει το script του παιχνιδιού που εκτελείται

   Επιστρέφει στον βοηθό τον πραγματικό κώδικα και τις ρυθμίσεις του.
2. 02 · Ο βοηθός σας

   Ανακατασκευάζει τον κανόνα και προσθέτει ένα στοιχείο ελέγχου

   Χρησιμοποιεί την ανακτημένη επιτάχυνση σε ένα μικρό παιχνίδι με ρυθμιστικό ταχύτητας.
3. 03 · Εσείς

   Αλλάζετε την ταχύτητα και παίζετε

   Δοκιμάστε την αρχική επιτάχυνση και έπειτα επιλέξτε τον δικό σας ρυθμό.

Το REA εξέτασε την έκδοση HTTP για πρόγραμμα περιήγησης μέσω τοπικής σύνδεσης αποσφαλμάτωσης και επέστρεψε το φορτωμένο `index.js`, μαζί με τον πηγαίο κώδικα και το ψηφιακό αποτύπωμά του.

Επιλεγμένες ρυθμίσεις από το script που εξετάστηκε

```
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6
```

Καλέσαμε τη συνάρτηση ενημέρωσης του αρχικού παιχνιδιού σε ελεγχόμενη δοκιμή προγράμματος περιήγησης, με απενεργοποιημένα τα εμπόδια και τον αυτόματο προγραμματισμό. Μετά από 4.000 ενημερώσεις, η ταχύτητα ήταν 10.0· μετά από 10.000, ήταν 13.0, με στρογγυλοποίηση στο πρώτο δεκαδικό ψηφίο.

Το νέο μίνι παιχνίδι διατηρεί αυτόν τον κανόνα ταχύτητας. Ο κώδικας σχεδίασης, άλματος και σύγκρουσης αποτελεί μια μικρή εκπαιδευτική υλοποίηση. [Ανοίξτε το εργαστήριο](https://rea.tools/el/examples/dino-lab/) για να δείτε τον νέο κώδικα και να εκτελέσετε τον ίδιο έλεγχο ταχύτητας.

Για να εξετάσετε μόνοι σας τον στόχο, ακολουθήστε τα [βήματα σύνδεσης με το πρόγραμμα περιήγησης](https://rea.tools/el/guides/browser/#prepare) χρησιμοποιώντας [τη σελίδα του δεινοσαύρου](https://wayou.github.io/t-rex-runner/). Δώστε στον βοηθό τη διεύθυνση URL αυτής της σελίδας και το τοπικό endpoint αποσφαλμάτωσης και έπειτα αντιγράψτε την παραπάνω οδηγία.

[Κώδικας ταχύτητας που εξετάστηκε](https://github.com/wayou/t-rex-runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571) · [Chromium Authors · Άδεια BSD](https://rea.tools/assets/licenses/dinosaur.txt)

Παράδειγμα 02 · Windows Calculator

## Ανακατασκευάστε το κουμπί % του Calculator.

Το κουμπί % κάνει διαφορετικά πράγματα μετά το + και το ×. Ας βρούμε τους δύο κανόνες και ας τους δοκιμάσουμε σε μια μικρή αριθμομηχανή.

### 1. Ρωτήστε για το κουμπί %

Παράδειγμα ερώτησης · Calculator

Χρησιμοποίησε το REA για να εξετάσεις το κουμπί % του Windows Calculator. Ανάκτησε τους κανόνες μετά το + και το × και έπειτα κατασκεύασε μια μικρή αριθμομηχανή που χρησιμοποιεί και τους δύο.

### 2. Βρείτε και τους δύο κανόνες

Το REA βοηθά τον βοηθό προγραμματισμού να διαβάσει τον κώδικα πίσω από το κουμπί %. Το κουμπί εφαρμόζει δύο διαφορετικούς κανόνες:

Με +
:   Υπολογίστε το 10% του πρώτου αριθμού.`10% of 200 = 20 → 200 + 20 = 220`

Με ×
:   Μετατρέψτε το 10% σε 0.1.`200 × 0.1 = 20`

### 3. Δοκιμάστε το κουμπί %

Αναπαραγάγαμε και τους δύο κανόνες παρακάτω. Επιλέξτε + ή ×, πατήστε % και έπειτα =.

200 +
**20**

Το 10% του 200 είναι 20. Έπειτα, 200 + 20 = 220.

Διαδραστική απεικόνιση του κανόνα ποσοστού που εξετάστηκε.

Δείτε τον πραγματικό κώδικα και πώς ελέγχθηκε η απάντηση

Σε αυτό το παράδειγμα, `previous = 200` και `current = 10`.

Ευανάγνωστη σύνοψη του χειριστή του %

```
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
```

Από την εγκατεστημένη εφαρμογή σε ένα λειτουργικό κουμπί %

1. 01 · Το REA διαβάζει το calc.exe

   Εκκινεί την εφαρμογή Calculator

   Ο κώδικας ανοίγει το `ms-calculator:`. Έπειτα, ο βοηθός επιλέγει τη βιβλιοθήκη της εγκατεστημένης εφαρμογής.
2. 02 · Το REA διαβάζει τη βιβλιοθήκη

   Επιστρέφει τον κώδικα του χειριστή του %

   Η συνάρτηση ελέγχει τον τελεστή και χρησιμοποιεί τη σταθερά `100`.
3. 03 · Ο βοηθός σας τον ερμηνεύει

   Εξηγεί και αναπαράγει τους κανόνες

   Διασταυρώνει τη διακλάδωση με τον πηγαίο κώδικα της Microsoft και έπειτα δοκιμάζει το + και το × παραπάνω.

REA · επιλεγμένες εντολές του αρχικού κώδικα

```
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
```

Αναγνωριστικά τελεστών · Πηγαίος κώδικας της Microsoft

```
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100
```

Εξετάστηκε με το REA 4.1.0: Windows Calculator 11.2508.4.0, x64. Η ευανάγνωστη σύνοψη χρησιμοποιεί ονόματα από τον δημόσιο πηγαίο κώδικα της Microsoft για να εξηγήσει την ανακτημένη διακλάδωση.

[Υλοποίηση ποσοστού](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111) · [Περιπτώσεις δοκιμής της Microsoft](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370) · [Οδηγός ρύθμισης ανάλυσης κώδικα μηχανής](https://rea.tools/guides/native/)

## Μελέτες περίπτωσης του REA.

Εξερευνήστε μια λειτουργία σε μια κυκλοφορημένη εφαρμογή ή ένα παιχνίδι, με κώδικα και ελεγμένα αποτελέσματα.

[Μελέτες →](https://rea.tools/el/showcase/)

Android · Ανάλυση APK

### Πώς μια εφαρμογή ελέγχου ταυτότητας δημιουργεί κωδικό σύνδεσης

Ακολουθήστε τον εξαψήφιο κωδικό σύνδεσης του Aegis μέσα από το APK που έχει κυκλοφορήσει και έπειτα μετακινήστε το ρολόι του παραδείγματος για να δείτε γιατί αλλάζει κάθε 30 δευτερόλεπτα.

[Διαβάστε τη μελέτη περίπτωσης Android](https://rea.tools/showcase/aegis/)

Electron · Ιχνηλάτηση λειτουργίας

### Πώς το Notion αντιγράφει κείμενο και HTML

Ακολουθήστε τη JavaScript του πακέτου Notion μέχρι το πρόχειρο του συστήματος και δείτε πώς η αντιγραφή διατηρεί τα πλούσια δεδομένα των μπλοκ.

[Διαβάστε τη μελέτη περίπτωσης Notion](https://rea.tools/el/showcase/notion/)

Κώδικας μηχανής · Ανακατασκευή

### Ο υπολογισμός στερεοφωνικής τοποθέτησης ήχου του DX-Ball

Ανακτήστε πώς η θέση μιας μπάλας μετατρέπεται σε ήχο αριστερά/δεξιά σε ένα παιχνίδι Windows του 1996.

[Διαβάστε τη μελέτη περίπτωσης DX-Ball](https://rea.tools/el/showcase/dx-ball/)

## Δημιουργία περιβαλλόντων RL

Μετατρέψτε μια καταγεγραμμένη συνεδρία εφαρμογής ιστού σε εκτελέσιμο περιβάλλον για εκπαίδευση και δοκιμή πρακτόρων AI.

Ο πράκτοράς σας καταγράφει τα αιτήματα του προγράμματος περιήγησης και τις απαντήσεις της εφαρμογής. Το REA χρησιμοποιεί αυτά τα δεδομένα για να δημιουργήσει ένα τοπικό περιβάλλον όπου οι πράκτορες μπορούν να εξασκούνται σε εργασίες χωρίς να εκτελούν την αρχική εφαρμογή.

Για να υποστηρίζεται η διαγραφή φακέλων, η καταγραφή πρέπει να δείχνει τον φάκελο πριν από τη διαγραφή και να επιβεβαιώνει ότι δεν υπάρχει πια μετά από αυτήν.

[Οδηγός δημιουργίας περιβάλλοντος](https://rea.tools/guides/rl-environments/) · [Δείτε το demo στο X](https://x.com/reatools/status/2112574822584918075?s=20)

Ρυθμίστε το REA στον πράκτορά σας και προσαρμόστε το URL και τις εργασίες φακέλων του παραδείγματος:

Ο βοηθός προγραμματισμού σας

Χρησιμοποίησε το REA για να δημιουργήσεις περιβάλλον RL από τη δοκιμαστική εφαρμογή μου: `http://127.0.0.1:3000` Κάλυψε προβολή, δημιουργία, μετονομασία και διαγραφή φακέλων. Μπορείς να δημιουργείς και να αφαιρείς δοκιμαστικούς φακέλους, αλλά μην αλλάξεις τα υπάρχοντα δεδομένα. Αποθήκευσέ το σε φάκελο `my-env`, έλεγξε τις διαθέσιμες λειτουργίες και πες μου πώς εκτελείται.

Παράδειγμα προτροπής. Προσαρμόστε το URL και τις εργασίες φακέλων.

Η πρώτη σας διερεύνηση

## Δοκιμάστε το REA σε μια μικρή εφαρμογή.

Κατεβάστε το παράδειγμα Notes, ιχνηλατήστε την εξαγωγή CSV και ελέγξτε μία τροποποιημένη είσοδο.

[Δοκιμάστε το καθοδηγούμενο παράδειγμα](https://rea.tools/el/first-investigation/)

## Επιλέξτε τον στόχο σας.

Αυτοί οι οδηγοί καλύπτουν τη ρύθμιση και μια πρώτη διερεύνηση για κάθε είδος λογισμικού.

### Δυαδικά αρχεία με κώδικα μηχανής

Εξετάστε συναρτήσεις, συμβολοσειρές, αναφορές και σχέσεις κλήσεων σε εκτελέσιμα αρχεία και βιβλιοθήκες.

[Οδηγός ανάλυσης κώδικα μηχανής](https://rea.tools/guides/native/)

### JavaScript και Electron

Ακολουθήστε τον κώδικα μέσα σε μια εφαρμογή επιφάνειας εργασίας γραμμένη σε JavaScript.

[Ροές εργασίας εφαρμογών](https://rea.tools/guides/javascript/)

### Δραστηριότητα προγράμματος περιήγησης και χρόνου εκτέλεσης

Καταγράψτε επιλεγμένη δραστηριότητα προγράμματος περιήγησης ή διεργασίας και έπειτα συγκρίνετε τα αποτελέσματα μεταξύ εκτελέσεων.

[Οδηγός παρατήρησης προγράμματος περιήγησης](https://rea.tools/el/guides/browser/)

Δοκιμάστε ένα μεγαλύτερο έργο

Παράδειγμα prompt · Ιστότοπος

Χρησιμοποίησε το REA για να εξετάσεις το https://rea.tools/. Κλωνοποίησε αυτόν τον ιστότοπο για εμένα.

Ναι, αυτόν εδώ.

Παράδειγμα prompt · Ανακατασκευή παιχνιδιού

Χρησιμοποίησε το REA για να ανακατασκευάσεις αυτό το παιχνίδι από το εκτελέσιμο αρχείο του. Ανάκτησε τη λογική του παιχνιδιού σε C και έλεγξέ τη συγκρίνοντάς τη με το αρχικό.

[Δείτε τη μελέτη περίπτωσης DX-Ball →](https://rea.tools/el/showcase/dx-ball/)

## Έχετε απορίες;

[Διαβάστε τις συχνές ερωτήσεις](https://rea.tools/el/faq/) για βοήθεια με τη ρύθμιση και απαντήσεις σε συνηθισμένες απορίες.

[Μπείτε στο Discord](https://discord.gg/GkcryMnJDM) για να ζητήσετε βοήθεια και να συζητήσετε τις αναλύσεις σας.

Αναφέρετε ένα σφάλμα ή ζητήστε μια λειτουργία στα [GitHub issues](https://github.com/morluto/rea/issues/new/choose).
