Di halaman ini

Rekayasa balik, dengan agen pengkodean Anda

Cari tahu bagaimana
perangkat lunak bekerja.

REA menyediakan alat bagi agen pemrograman Anda untuk memeriksa program dan menjelaskan cara kerjanya.

Sudah tahu RE? Lewati ke panduan analisis →

Ingin lebih dalam? Baca Blognya →

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.

Pertama kali, atau hilang Node.js atau agen pengkodean? Ikuti panduan penyiapan langkah demi langkah →

Apa itu rekayasa balik?

Memahami cara kerja perangkat lunak dengan memeriksa program itu sendiri.

Tujuannya: memahami fitur dengan cukup baik untuk jelaskan, ubahlah atau bangun kembali.

Contohnya: mengapa Kalkulator menghasilkan 220 untuk 200 + 10%?

Sebelum REA · Anda menyelidikinya sendiri

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

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

Dengan REA · Anda bertanya kepada agen Anda

Cukup satu prompt.

Tanyakan kepada agen Anda dengan bahasa sehari-hari.

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 = 20200 + 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 ↓

Mari kita coba dua contoh. Ubah kecepatan permainan, lalu kembali ke Kalkulator dan buat kembali tombol % - nya.

Contoh 01 * Game dinosaurus Chrome

Mengapa dinosaurus semakin cepat?

Tujuan
Bangun kembali game dengan kecepatan yang dapat disesuaikan.
Mengapa merekayasa baliknya?
Untuk mereproduksi percepatannya, kita membutuhkan aturan dalam permainan lari: seberapa cepat dimulai, seberapa banyak meningkat dan kapan berhenti.

Mainkan hasil rekonstruksi

6 → 10 → 13

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

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

REA mengembalikan

Skrip benar-benar berjalan di halaman. Agen membaca fungsi pembaruan dan pengaturan kecepatannya, lalu menggunakan aturan tersebut di game baru.

Contoh prompt * 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.

Target yang diperiksa: edisi peramban turunan Chromium wayou.

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.

Buka lab kecepatan →

Apa yang dilakukan setiap bagian

  1. 01 * REA Baca skrip game yang sedang berjalanKembalikan kode dan pengaturannya yang sebenarnya ke agen.
  2. 02 * Agen AndaBangun kembali aturan, tambahkan kontrolGunakan akselerasi yang dipulihkan dalam gim kecil dengan penggeser kecepatan.
  3. 03 * KamuMengubah kecepatan dan bermainCoba akselerasi asli, lalu pilih kecepatan Anda sendiri.
Lihat skrip, cek, dan cara mencoba analisisnya

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 untuk melihat kode baru dan menjalankan pemeriksaan kecepatan yang sama.

Untuk memeriksa target sendiri, ikuti langkah-langkah koneksi browser menggunakan halaman dinosaurus. Berikan URL halaman tersebut kepada agen Anda dan titik akhir debugging lokal Anda, lalu salin perintah di atas.

Kode kecepatan yang diperiksa · Penulis Chromium * Lisensi BSD

Contoh 02 * Kalkulator Windows

Buat ulang tombol % Kalkulator.

Kami melihat alasannya 200 + 10% memberi 220. Sekarang mari kita pulihkan aturan untuk + dan ×

Tujuan
Buat kalkulator kecil yang menangani keduanya + dan ×
Mengapa merekayasa baliknya?
Tombol yang sama menggunakan aturan berbeda setelah + dan × Kami memeriksa aplikasi yang diinstal untuk menemukan angka persentase yang diterapkan.

Coba perhitungannya

200 + 20

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

Ilustrasi interaktif dari aturan persentase yang diinspeksi.

REA mengembalikan

Satu cabang dibagi dengan 100. Yang lain juga dikalikan dengan angka pertama. Agen menggunakan keduanya untuk membuat ulang tombol%.

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

Contoh prompt * Bangun kembali tombol %

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

Ringkasan yang dapat dibaca dari % handler
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
Dengan +
Ambil 10% dari angka pertama.10% of 200 = 20 → 200 + 20 = 220
Dengan ×
Ubah 10% menjadi 0,1.200 × 0.1 = 20

Dari aplikasi yang diinstal ke tombol % yang berfungsi

  1. 01 · REA membaca calc.exeIni meluncurkan aplikasi KalkulatorKode terbuka ms-calculator:. Agen kemudian memilih pustaka aplikasi yang diinstal.
  2. 02 * REA membaca perpustakaanKembalikan kode % handlerFungsi memeriksa operator dan menggunakan konstanta 100.
  3. 03 * Agen Anda menafsirkannyaMenjelaskan dan mereproduksi aturanPeriksa silang cabang dengan sumber Microsoft, lalu coba + dan ×
Lihat kode sebenarnya dan bagaimana jawabannya diperiksa
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 · Kasus uji Microsoft · Panduan penyiapan asli

Investigasi pertamamu

Coba REA di aplikasi kecil.

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

Coba contoh terpandu

Ingin mempelajari lebih lanjut?

Beri tahu agen Anda apa yang ingin Anda pahami atau bangun. Dengan REA, Anda dapat bekerja sama dalam segala hal mulai dari mengkloning situs web ini untuk merekonstruksi game dari executable-nya.

Contoh prompt * Situs web

Gunakan REA untuk memeriksa https://reverseengineeranything.app/. 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 →

Untuk langkah penyiapan dan analisis, pilih target Anda:

Program kode mesin

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

Analisis panduan program kode mesin

JavaScript & Electron

Modul peta, rute, IPC, dan dependensi asli dari folder aplikasi atau arsip ASAR.

Alur kerja aplikasi

Aktivitas browser & waktu proses

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

Panduan pengamatan browser

Ada pertanyaan?

Baca FAQ, ngobrol dengan kami di Discord , atau buka masalah GitHub untuk bug dan permintaan fitur.

Gabung komunitas

Bagikan investigasi dan dapatkan bantuan dari pengguna REA lainnya di Discord . Ikuti REA di X untuk pembaruan proyek.

Atas