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:
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.
Gunakan REA untuk memeriksa Windows Kalkulator. Mengapa 200 + 10% menghasilkan 220?
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.
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
Aturan awal: mulai dari 6, lalu tingkatkan menjadi 13.
REA mengembalikan
Skrip benar-benar berjalan di halaman. Agen membaca fungsi pembaruan dan pengaturan kecepatannya, lalu menggunakan aturan tersebut di game baru.
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.
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
- 01 * REA Baca skrip game yang sedang berjalanKembalikan kode dan pengaturannya yang sebenarnya ke agen.
- 02 * Agen AndaBangun kembali aturan, tambahkan kontrolGunakan akselerasi yang dipulihkan dalam gim kecil dengan penggeser kecepatan.
- 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.
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
10% dari 200 = 20. Kemudian 200 + 20 = 220.
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.
Gunakan REA untuk memeriksa tombol % Kalkulator Windows. Pulihkan aturan setelah + dan ×
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
-
01 · REA membaca calc.exeIni meluncurkan aplikasi KalkulatorKode terbuka
ms-calculator:. Agen kemudian memilih pustaka aplikasi yang diinstal. -
02 * REA membaca perpustakaanKembalikan kode % handlerFungsi memeriksa operator dan menggunakan konstanta
100. - 03 * Agen Anda menafsirkannyaMenjelaskan dan mereproduksi aturanPeriksa silang cabang dengan sumber Microsoft, lalu coba + dan ×
Lihat kode sebenarnya dan bagaimana jawabannya diperiksa
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
#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.
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.
Gunakan REA untuk memeriksa https://rea.tools/. Mengkloning situs web ini untuk saya.
Ya, yang ini.
Gunakan REA untuk merekonstruksi game ini dari yang dapat dieksekusi. Pulihkan logika gameplay di C dan uji dengan aslinya.
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 mesinJavaScript & Electron
Modul peta, rute, IPC, dan dependensi asli dari folder aplikasi atau arsip ASAR.
Alur kerja aplikasiAktivitas browser & waktu proses
Tangkap browser atau aktivitas proses yang dipilih, lalu bandingkan hasilnya di seluruh proses.
Panduan pengamatan browserAda 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.