---
title: REA-Rekayasa Balik untuk Agen Pengkodean Anda
url: https://rea.tools/id/
---

Rekayasa balik, dengan agen pengkodean Anda

# Cari tahu bagaimana perangkat lunak bekerja.

Tanyakan kepada agen pemrograman Anda tentang aplikasi, game, atau situs web. REA menyediakan alat untuk memeriksa kode di balik jawabannya.

[Mulai](https://rea.tools/get-started/)
[Lihat contoh ↓](https://rea.tools/id/#dinosaur)

## Siapkan REA

Tempel prompt ini ke agen pemrograman Anda:

Agen pengkodean Anda

Pasang REA dan hubungkan ke agen pemrograman ini menggunakan npx rea-agents@latest setup. Tampilkan rencana perubahan dan tunggu persetujuan saya sebelum menjalankannya. Setelah itu, verifikasi pemasangan.

Atau jalankan perintah ini di terminal:

`npx rea-agents@latest setup`

Periksa dan setujui rencana perubahan, lalu mulai ulang agen Anda.


Opsi pengaturan


Pilihan instalasi lain: [curl →](https://rea.tools/get-started/#curl-installation)

Pertama kali, atau hilang Node.js atau agen pengkodean? [Ikuti panduan penyiapan langkah demi langkah →](https://rea.tools/get-started/)

[Membangun lingkungan RL →](https://rea.tools/id/#rl-environments)

Rekam aplikasi web untuk melatih dan menguji agen.

[Menampilkan →](https://rea.tools/id/showcase/)

Penyelidikan dan demo interaktif.

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

Metode dan catatan rekonstruksi.

## Cara kerjanya

Rekayasa balik berarti memahami cara kerja perangkat lunak dengan memeriksa program itu sendiri. Dengan REA, agen Anda dapat menelusuri kode, menjelaskan fitur, dan membantu membuatnya kembali.

1. ### Tanyakan satu fitur

   Berikan program atau halaman beserta pertanyaan kepada agen Anda.
2. ### Periksa programnya

   REA membantu agen Anda membaca kode dan melihat apa yang dilakukan program saat berjalan.
3. ### Pahami, lalu coba perubahan

   Agen Anda menggunakan temuan untuk menjelaskan atau membuat ulang fitur tersebut.

Lihat seluruh penyelidikan Kalkulator

Mengapa 200 + 10% menghasilkan 220 di Kalkulator?

### Ikuti instruksi langkah demi langkah

x64 asli \* instruksi yang dipilih 

```
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 \* Cabang mana?

“**0x5b? 0x5c?** Dua lompatan ke tempat yang sama. Operator mana ini?”

Cari ID perintah, lalu beri label pada cabang.

0x5b
:   Membagi ÷

0x5c
:   Kalikan ×

02 · Apa yang dilakukan fungsi yang dipanggil?

"100 sudah jelas. Panggilan itu hanya alamat. **Yang mana yang membelah? Nilai mana yang masuk?**”

Periksa fungsi pembantu dan lacak nilai yang disimpan.

0x64
:   100

…123190
:   Membagi

03 · Apa aturannya?

"Jalur ini dikalikan dengan masukan lainnya. Jadi **10% berarti 10% dari 200** setelah +.”

Beri nama operan dan periksa kedua jalur operator.

200 × 10 / 100
**20**

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

Penalaran ahli ilustratif

**Anda memecahkan kode instruksi, mengikuti pemanggilan fungsi, dan merekonstruksi perhitungannya.**

Ajukan pertanyaan yang sama kepada agen Anda

Contoh prompt \* Kalkulator

Gunakan REA untuk memeriksa Windows Kalkulator. Mengapa 200 + 10% menghasilkan 220?

Contoh jawaban \* berdasarkan temuan

Setelah +, tombol % mengambil **persentase dari angka pertama.**

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

REA menyediakan
:   Instruksi pawang, kode yang didekompilasi, dan panggilan.

Agen Anda menjelaskan
:   Cabang mana yang berlaku, apa yang menghitungnya, dan bagaimana membangunnya kembali.

Rakitan yang dipilih dari Kalkulator DLL yang diinstal. Pemikiran dan balasannya menggambarkan temuan tersebut. [Lanjutkan dengan contoh Kalkulator ↓](https://rea.tools/id/#calculator)

Mari coba dua contoh: ubah kecepatan permainan, lalu buat ulang tombol % Kalkulator.

Contoh 01 \* Game dinosaurus Chrome

## Mengapa dinosaurus semakin cepat?

Permainan makin cepat saat kamu terus berlari. Untuk membuatnya ulang dengan pengatur kecepatan, kita perlu tahu dulu bagaimana kecepatannya berubah.

### 1. Tanyakan tentang kecepatan

Contoh pertanyaan · Permainan dinosaurus

Gunakan REA untuk memeriksa game dinosaurus ini. Mengapa menjadi lebih cepat? Tampilkan aturan kecepatan, lalu buat versi kecil dengan kecepatan yang dapat disesuaikan.

### 2. Temukan aturan kecepatannya

REA memungkinkan agen membaca kode permainan yang sedang berjalan. Kecepatan dimulai dari 6 dan naik sedikit setiap pembaruan selama masih di bawah 13.

### 3. Mainkan hasilnya

Kami membuat ulang aturan itu dalam permainan kecil di bawah dan menambahkan penggeser kecepatan. Mulai bermain, lalu pilih kecepatanmu.

Kecepatan 6.0
 Gunakan aturan akselerasi yang dipulihkan

Aturan awal: mulai dari 6, lalu tingkatkan menjadi 13.

Gerakkan penggeser untuk mengatur kecepatan Anda sendiri. Ruang atau Lompatan membersihkan kaktus.



Aktifkan JavaScript untuk bermain. Kamu tetap bisa membaca aturan dan membuka kode sumber di bawah.

[Buka lab kecepatan →](https://rea.tools/id/examples/dino-lab/)

Lihat skrip, cek, dan cara mencoba analisisnya

Target yang diperiksa: [edisi peramban turunan Chromium wayou](https://wayou.github.io/t-rex-runner/).

REA \* dimuat index.js \* baris yang dipilih

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

Mulai dari 6. Tambahkan 0.001 setiap pembaruan tanpa tabrakan, sementara kecepatan di bawah 13.

Apa yang dilakukan setiap bagian

1. 01 \* REA

   Baca skrip game yang sedang berjalan

   Kembalikan kode dan pengaturannya yang sebenarnya ke agen.
2. 02 \* Agen Anda

   Bangun kembali aturan, tambahkan kontrol

   Gunakan akselerasi yang dipulihkan dalam gim kecil dengan penggeser kecepatan.
3. 03 \* Kamu

   Mengubah kecepatan dan bermain

   Coba akselerasi asli, lalu pilih kecepatan Anda sendiri.

REA memeriksa edisi browser HTTP melalui koneksi debugging lokal dan mengembalikan yang dimuat `index.js`, termasuk sumber dan intisarinya.

Pengaturan yang dipilih dari skrip yang diinspeksi

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

Kami menyebut fungsi pembaruan game asli dalam pemeriksaan browser yang terkontrol, dengan hambatan dan penjadwalan otomatis dinonaktifkan. Setelah 4.000 pembaruan, kecepatannya menjadi 10,0; setelah 10.000, kecepatannya menjadi 13,0, dibulatkan menjadi satu desimal.

Mini-game baru mempertahankan aturan kecepatan itu. Kode menggambar, melompat, dan bertabrakan adalah implementasi pengajaran yang kecil. [Buka labnya](https://rea.tools/id/examples/dino-lab/) untuk melihat kode baru dan menjalankan pemeriksaan kecepatan yang sama.

Untuk memeriksa target sendiri, ikuti [langkah-langkah koneksi browser](https://rea.tools/id/guides/browser/#prepare) menggunakan [halaman dinosaurus](https://wayou.github.io/t-rex-runner/). Berikan URL halaman tersebut kepada agen Anda dan titik akhir debugging lokal Anda, lalu salin perintah di atas.

[Kode kecepatan yang diperiksa](https://github.com/wayou/t-rex-runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571) ·  [Penulis Chromium \* Lisensi BSD](https://rea.tools/assets/licenses/dinosaur.txt)

Contoh 02 \* Kalkulator Windows

## Buat ulang tombol % Kalkulator.

Tombol % bekerja berbeda setelah + dan ×. Mari temukan kedua aturan dan mencobanya dalam kalkulator kecil.

### 1. Tanyakan tentang tombol %

Contoh pertanyaan · Kalkulator

Gunakan REA untuk memeriksa tombol % Kalkulator Windows. Pulihkan aturan setelah + dan ×

### 2. Temukan kedua aturan

REA membantu agen membaca kode di balik tombol %. Kode ini menerapkan dua aturan berbeda:

Dengan +
:   Ambil 10% dari angka pertama.`10% of 200 = 20 → 200 + 20 = 220`

Dengan ×
:   Ubah 10% menjadi 0,1.`200 × 0.1 = 20`

### 3. Coba tombol %

Kami membuat ulang kedua aturan di bawah. Pilih + atau ×, tekan %, lalu tekan =.

200 +
**20**

10% dari 200 = 20. Kemudian 200 + 20 = 220.

Ilustrasi interaktif dari aturan persentase yang diinspeksi.

Lihat kode sebenarnya dan bagaimana jawabannya diperiksa

Untuk contoh ini, `previous = 200` dan `current = 10`.

Ringkasan yang dapat dibaca dari % handler

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

Dari aplikasi yang diinstal ke tombol % yang berfungsi

1. 01 · REA membaca calc.exe

   Ini meluncurkan aplikasi Kalkulator

   Kode terbuka `ms-calculator:`. Agen kemudian memilih pustaka aplikasi yang diinstal.
2. 02 \* REA membaca perpustakaan

   Kembalikan kode % handler

   Fungsi memeriksa operator dan menggunakan konstanta `100`.
3. 03 \* Agen Anda menafsirkannya

   Menjelaskan dan mereproduksi aturan

   Periksa silang cabang dengan sumber Microsoft, lalu coba + dan ×

REA \* instruksi asli yang dipilih

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

ID Operator \* Sumber Microsoft

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

0x64 = 100
```

Diperiksa dengan REA 4.1.0: Kalkulator Windows 11.2508.4.0, x64. Ringkasan yang dapat dibaca menggunakan nama dari sumber publik Microsoft untuk menjelaskan cabang yang dipulihkan.

[Implementasi persentase](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111) · [Kasus uji Microsoft](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370) · [Panduan penyiapan asli](https://rea.tools/guides/native/)

## Studi kasus REA.

Jelajahi fitur dalam aplikasi atau game yang telah dirilis, lengkap dengan kode dan hasil yang diperiksa.

[Menampilkan →](https://rea.tools/id/showcase/)

Android \* Analisis APK

### Cara autentikator membuat kode masuk

Telusuri kode login enam digit Aegis dalam APK yang dirilis, lalu gerakkan jam demo untuk melihat mengapa kodenya berubah setiap 30 detik.

[Baca studi kasus Android](https://rea.tools/showcase/aegis/)

Electron \* Penelusuran fitur

### Bagaimana Notion menyalin teks dan HTML

Telusuri JavaScript dalam paket Notion hingga papan klip sistem dan lihat bagaimana penyalinan mempertahankan data blok yang kaya.

[Baca studi kasus Notion](https://rea.tools/id/showcase/notion/)

Asli \* Rekonstruksi

### Perhitungan posisi suara kiri/kanan DX-Ball

Temukan bagaimana posisi bola menjadi suara kiri atau kanan dalam game Windows tahun 1996.

[Baca studi kasus DX-Ball](https://rea.tools/id/showcase/dx-ball/)

## Membangun lingkungan RL

Ubah rekaman sesi aplikasi web menjadi lingkungan yang dapat dijalankan untuk melatih dan menguji agen AI.

Agen Anda merekam permintaan browser dan respons aplikasi. REA menggunakan data tersebut untuk membuat lingkungan lokal tempat agen dapat berlatih mengerjakan tugas tanpa menjalankan aplikasi aslinya.

Untuk mendukung penghapusan folder, rekaman harus menunjukkan folder sebelum dihapus dan memastikan folder tersebut sudah tidak ada setelahnya.

[Panduan membangun lingkungan](https://rea.tools/guides/rl-environments/) · [Tonton demo di X](https://x.com/reatools/status/2112574822584918075?s=20)

Setelah menyiapkan REA di agen, ganti URL contoh dan tugas folder di bawah sesuai aplikasi Anda:

Agen pengkodean Anda

Gunakan REA untuk membuat lingkungan RL dari aplikasi web uji saya di `http://127.0.0.1:3000`. Cakup daftar, pembuatan, penggantian nama, dan penghapusan folder. Boleh membuat dan menghapus folder uji, tetapi jangan ubah data yang sudah ada. Simpan dalam folder bernama `my-env`, periksa operasi yang berfungsi, dan beri tahu cara menjalankannya.

Contoh prompt. Ganti URL dan tugas folder sesuai aplikasi Anda.

Investigasi pertamamu

## Coba REA di aplikasi kecil.

Unduh contoh Catatan kami, lacak ekspor CSV - nya, dan periksa satu input yang diubah.

[Coba contoh terpandu](https://rea.tools/id/first-investigation/)

## Pilih target Anda.

Panduan ini membahas penyiapan dan penyelidikan pertama untuk setiap jenis perangkat lunak.

### Program kode mesin

Periksa fungsi, string, referensi, dan hubungan pemanggilan fungsi di executable dan pustaka.

[Analisis panduan program kode mesin](https://rea.tools/guides/native/)

### JavaScript & Electron

Telusuri kode di dalam aplikasi desktop JavaScript.

[Alur kerja aplikasi](https://rea.tools/guides/javascript/)

### Aktivitas browser & waktu proses

Tangkap browser atau aktivitas proses yang dipilih, lalu bandingkan hasilnya di seluruh proses.

[Panduan pengamatan browser](https://rea.tools/id/guides/browser/)

Coba proyek yang lebih besar

Contoh prompt \* Situs web

Gunakan REA untuk memeriksa https://rea.tools/. Mengkloning situs web ini untuk saya.

Ya, yang ini.

Contoh prompt \* Rekonstruksi game

Gunakan REA untuk merekonstruksi game ini dari yang dapat dieksekusi. Pulihkan logika gameplay di C dan uji dengan aslinya.

[Lihat studi kasus DX-Ball →](https://rea.tools/id/showcase/dx-ball/)

## Ada pertanyaan?

[Baca FAQ](https://rea.tools/id/faq/) untuk bantuan penyiapan dan jawaban atas pertanyaan umum.

[Bergabunglah di Discord](https://discord.gg/GkcryMnJDM) untuk mendapatkan bantuan dan mendiskusikan analisis Anda.

Laporkan bug atau ajukan fitur melalui [GitHub Issues](https://github.com/morluto/rea/issues/new/choose).
