Punya build aplikasi lama tetapi tidak tahu lagi bagaimana fiturnya bekerja? REA membantu agen AI menelusuri artefak software dan menyajikan bukti yang dapat diperiksa. Panduan ini membahas setup, sampel Electron resmi, dan lab binary buatan sendiri.
Panduan ini tidak berafiliasi dengan proyek REA maupun kreator video yang ditautkan. Dokumentasi yang dirujuk dikunci ke commit bertanggal 13 Oktober 2026; periksa kecocokannya dengan rilis yang kamu pakai.
REA TIDAK dijalankan dalam lab atau sesi baru ini. Pemanggilan alat REA ditolak oleh izin sesi; tidak ada upaya bypass. Perintah REA di sini adalah instruksi dokumentasi, bukan hasil pengujian. Hasil lab yang tercatat berasal dari tool standar Linux dan pemeriksaan kode sampel, bukan eksekusi REA.
- Resmi: klaim dokumentasi proyek, bukan hasil uji mandiri.
- Dijalankan: hasil pengujian tool standar yang tercatat pada 13 Oktober 2026 dalam evidence yang menjadi dasar panduan; bukan pengujian ulang saat penerbitan.
- Inferensi: tafsiran penulis yang harus ditopang bukti.
- Unknown: hal yang belum dapat dipastikan.
1. Apa itu REA, dan apa yang bukan
Resmi. README menggambarkan REA sebagai “One MCP for reverse engineering across binaries, applications, and runtime behavior”. REA menghubungkan agen AI (misalnya Claude Code, Codex, Cursor, Gemini CLI) ke alat untuk memeriksa binary native, aplikasi JavaScript dan Electron, assembly .NET, dan website. Alat yang sama tersedia lewat CLI rea. README menyatakan analisis berjalan lokal dan hasilnya membawa evidence serta batasan di balik tiap kesimpulan.
Tiga koreksi ekspektasi:
- REA bukan dekompiler ajaib. Untuk binary native, REA memakai mesin analisis yang kamu pasang sendiri: Hopper, Ghidra, atau IDA. REA menjembatani agen ke mesin itu dan merapikan hasilnya menjadi evidence. FAQ resmi menyebut analisis native mengembalikan pseudocode dan assembly, bukan source code asli.
- REA adalah alat analisis, bukan daftar bacaan. Server MCP dan CLI menjalankan analisis melalui alat yang tersedia.
- Rekonstruksi punya batas izin. Memahami perilaku tidak otomatis memberi hak menyalin implementasi. Batasi target pada software milik sendiri atau yang berwenang kamu periksa. Lihat bagian 6 dan 12.
2. Cara kerja dan cara membaca hasilnya
Resmi. Alurnya menurut README: agen memanggil REA lewat MCP untuk memeriksa target dan menelusuri kode yang relevan. REA mengembalikan temuan beserta evidence. Agen memakai temuan itu untuk bertanya lanjut, menjelaskan perilaku, atau menulis dan menguji implementasi. Perintah CLI memakai alur kerja yang sama.
Empat jenis pernyataan
Dokumen CLI resmi menyebut rekaman evidence menyimpan identitas artefak, lokasi sumber, observasi, inferensi, dan temuan yang belum terselesaikan. Saya memakai empat kategori ini untuk membaca jawaban agen apa pun:
| Kategori | Artinya | Contoh dari lab bagian 8 |
|---|---|---|
| Evidence | Artefak yang bisa diidentifikasi ulang: hash, path, alamat, baris | SHA-256 binary, alamat fungsi 0x1189 |
| Observasi | Apa yang alat lihat langsung pada artefak itu | Instruksi cmp rdi,0x249ef |
| Inferensi | Tafsiran dari observasi | “Ongkir gratis bila subtotal di atas 149999” |
| Unknown | Yang tidak bisa dipastikan dari bukti yang ada | Nama variabel asli pada binary stripped |
Aturan dari dokumen reconstruction readiness layak ditiru: status fail, unknown, unsupported, truncated, dan skipped tidak pernah digabung menjadi pass. Kosong bukan berarti aman.
Statis vs runtime
- Statis membaca berkas tanpa menjalankannya. Menurut README, inspeksi JavaScript statis dan .NET membaca berkas tanpa menjalankan aplikasi.
- Runtime menjalankan atau berinteraksi dengan target. README menyatakan runtime capture memakai izin pengguna kamu. Artinya target bisa menulis berkas, membuka jaringan, atau melakukan apa pun yang bisa dilakukan akunmu.
Inferensi: hasil statis tidak membuktikan perilaku runtime, dan hasil runtime hanya membuktikan jalur yang benar-benar dilewati pada run itu.
3. Identitas repo resmi (terverifikasi)
Repo resmi adalah github.com/morluto/rea. Cocokkan tautan repository pada paket npm rea-agents dengan situs proyek. Snapshot dokumentasi yang dipakai panduan ini bertanggal 13 Oktober 2026.
| Data | Nilai | Catatan |
|---|---|---|
| Lisensi | MIT, “Copyright (c) 2026 morluto” | LICENSE identik di main dan di tag 6.4.0 |
| Rilis acuan | rea-agents 6.4.0 | Terbit 11 Oktober 2026, 03:58 UTC |
| npm saat audit | 6.4.0 | Dipublikasikan 11 Oktober 2026, 04:02 UTC |
Commit main yang dipakai panduan ini |
a0317cf732b3addefad5ac3b234db1e044e3351d |
13 Oktober 2026, 08:16 UTC |
| Node.js yang didukung | 22.x (>=22.19), 24.x (>=24.11), atau 26+ | README dan engines npm 6.4.0 cocok |
Dokumentasi main dapat mendahului rilis npm. Fitur pada commit dokumentasi belum tentu tersedia di 6.4.0. Cocokkan versi rilis dengan npm view rea-agents dist-tags.latest; pastikan nama paket persis rea-agents.
4. Apa saja yang bisa dianalisis
Ringkasan tabel “What you can analyze” di README a0317cf (resmi). Kolom kanan adalah prasyarat tambahan di luar Node.js dan npm.
| Target | Yang dikembalikan | Prasyarat tambahan |
|---|---|---|
| Binary native | Pseudocode, assembly, string, simbol, call, referensi | Hopper, Ghidra, atau IDA |
| Binary Go | Versi compiler, modul, build settings | Tidak perlu Go |
| JavaScript / Electron | Modul, impor, source map, route, IPC | Tidak ada |
| Website | Struktur halaman, skrip, observasi jaringan | Browser keluarga Chrome |
| .NET | Metadata, instruksi CIL | Tidak ada, statis saja |
| APK Android | Manifest, kelas, metode terdekompilasi | JADX headless dan JDK penuh |
| Perangkat Android | Paket, proses, log, tangkapan layar | adb |
| Firmware | Region, hasil ekstraksi | Binwalk atau Unblob di Linux |
| SQLite | Tabel, kolom, indeks, baris terpilih | Node.js 24.15+ atau 26+ |
| Perilaku proses | Output terminal, exit, observasi filesystem | Linux atau macOS dengan PTY |
README juga mendaftar ELF offline, WASM, bytecode EVM, crash Linux terekam, tangkapan jaringan (HAR), paket jaringan, sinyal logika, proyek JEB, resource Android, dan aplikasi Flutter, masing-masing dengan alat pelengkapnya.
Catatan penyedia native (resmi, dari dokumen instalasi dan IDA):
- Hopper adalah software komersial terpisah dengan lisensinya sendiri. Setup bisa menawarkan pemasangannya setelah persetujuan terpisah.
- Ghidra memakai instalasimu sendiri: Ghidra 12.1.x dengan JDK 21 atau lebih baru, di Linux x64/arm64, macOS x64/arm64, atau Windows x64 yang masih eksperimental (P0). REA tidak mengunduh atau memasang Ghidra dan Java.
- IDA dipakai lewat server MCP pihak lain (
mrexodia/ida-pro-mcp) atau jembatan native opsional. REA tidak memasang, mengaktifkan, atau melisensikan IDA. - README menegaskan: kamu wajib memperoleh dan berwenang memakai alat komersial seperti IDA, Hopper, dan JEB sesuai lisensinya. Salinan bajakan dan kunci curian tidak diizinkan.
Jalur paling ringan untuk pemula: JavaScript dan Electron, karena tidak butuh mesin analisis native.
5. Instalasi: lihat rencananya dulu
Saya tidak menjalankan setup untuk panduan ini, karena setup mengubah konfigurasi agen. Semua langkah di bagian ini adalah instruksi dokumentasi (resmi), ditambah saran kehati-hatian (inferensi).
5.1 Cek prasyarat dan metadata paket
node --version # harus 22.19+ di seri 22, 24.11+ di seri 24, atau 26+
npm --version
npm view rea-agents dist-tags.latest # versi rilis yang akan dipasang npx
npm view rea-agents repository.url # harus menunjuk ke github.com/morluto/rea
Node.js 23, 25, dan versi prarilis tidak didukung menurut dokumen instalasi.
5.2 Lihat rencana setup tanpa menerapkannya
Dokumen instalasi menyebut opsi --dry-run yang mengembalikan rencana berstatus planned dengan exit code 0, tanpa menulis apa pun:
npx rea-agents@latest setup --client claude_code --dry-run
Catatan: npx tetap mengunduh paket ke cache npm sebelum menjalankannya. Persetujuan unduhan npm dan persetujuan setup REA adalah dua hal terpisah. Ganti claude_code dengan ID klien agenmu, misalnya codex, cursor, atau gemini_cli.
5.3 Setup sungguhan
npx rea-agents@latest setup
Menurut dokumen instalasi, setup:
- menawarkan daftar agen; klien yang baru terdeteksi tidak otomatis dipilih;
- menampilkan path dan perubahan persis sebelum menulis berkas;
- membuat cadangan
.rea.backupdan menulis konfigurasi secara atomik; - memasang skill alur kerja REA kecuali kamu memakai
--skill=false; - menawarkan pemasangan Hopper sebagai pilihan terpisah yang butuh persetujuan sendiri;
- bisa dibatalkan di prompt mana pun; menolak atau Ctrl-C tidak mengubah apa pun.
Setelah selesai, mulai ulang agen yang disebut di pesan penutup.
Hindari --yes sampai kamu paham cakupannya. Dokumen menyebut --yes tanpa flag cakupan hanya menyentuh registrasi REA yang sudah ada, tetapi --yes --all-detected mengonfigurasi semua klien yang terdeteksi. Baca rencananya dulu.
5.4 Cek kesiapan, pembaruan, dan pencopotan
rea doctor --client claude_code --json # read-only menurut dokumentasi
rea doctor --provider ghidra --json # cek satu mesin analisis
rea update # hanya untuk instalasi global npm/Bun
rea uninstall # hapus registrasi dan skill milik REA
rea uninstall --purge-data # juga hapus cache dan state di ~/.rea
Kalau memakai npx, ganti rea dengan npx -y rea-agents@latest. Uninstall mempertahankan Hopper, Node.js, berkas Evidence, dan server MCP lain.
6. Aturan main sebelum mulai
Lisensi MIT hanya mengatur kode REA, bukan target yang kamu analisis. README menyebut REA untuk riset sah, pendidikan, interoperabilitas, preservasi software, dan analisis software yang kamu miliki atau berwenang periksa.
Target yang cocok untuk berlatih:
- program buatanmu sendiri, seperti lab di bagian 8;
- software open source dengan lisensi yang jelas;
- sampel latihan resmi seperti
notes-example; - artefak lain dengan izin tertulis dari pemiliknya.
Di luar cakupan panduan ini: software proprietary tanpa izin, game komersial, malware, bypass lisensi, DRM, anti-cheat, atau kontrol akses, dan ekstraksi kredensial.
7. Tutorial pada sampel resmi notes-example
Status bagian ini: langkah 1, 3, dan 4 dijalankan (unduh, cek hash, baca kode, uji formatter). Langkah 2 adalah instruksi dokumentasi; REA tidak dijalankan.
Sampelnya adalah aplikasi Electron enam berkas dari halaman first investigation, dengan tombol Export notes. Aplikasinya tidak perlu dijalankan.
Langkah 1: unduh ke folder terpisah (dijalankan)
mkdir -p ~/latihan-rea && cd ~/latihan-rea
curl -LO https://rea.tools/examples/notes-example.zip
sha256sum notes-example.zip
unzip notes-example.zip -d extracted
ls extracted/notes-example
Hasil saya pada 13 Oktober 2026: SHA-256 zip 646ec1ee476278e839e033a931ddc8e4a3b7956ba22c1bfd28668bcbd04ed904, berisi csv.js, index.html, main.js, package.json, preload.js, renderer.js (total 63 baris). Kalau hash-mu berbeda, sampel mungkin sudah diperbarui.
Langkah 2: tanya lewat agen (instruksi dokumentasi)
Prompt diadaptasi dari halaman resmi, dengan tambahan pemisahan bukti:
Gunakan REA untuk menganalisis /path/absolut/ke/extracted/notes-example secara
statis. Cari apa yang terjadi saat tombol Export notes diklik. Tunjukkan di mana
notes.csv ditulis, field apa yang ditulis, serta berkas dan barisnya.
Pisahkan jawaban menjadi: EVIDENCE (dari hasil REA, dengan ID atau lokasi),
INFERENSI (kesimpulanmu dari membaca kode), dan UNKNOWN (yang tidak bisa
dipastikan). Jangan menjalankan aplikasinya.
Jalur CLI tanpa agen, menurut README:
npx -y rea-agents@latest analyze-javascript-application /path/absolut/ke/extracted/notes-example --json > evidence.json
Langkah 3: cocokkan dengan kode (dijalankan, membaca berkas)
Jawaban yang diharapkan menurut halaman resmi: tombol mengirim pesan notes:export, proses utama menulis notes.csv di folder Downloads, kolomnya id dan title. Saya memeriksa sendiri berkasnya:
renderer.jsbaris 1 sampai 4: klik#exportmemanggilwindow.notes.exportCsv().preload.jsbaris 3 sampai 5:exportCsvmemanggilipcRenderer.invoke("notes:export").main.jsbaris 8 sampai 12: handlernotes:exportmenyusun pathapp.getPath("downloads")+notes.csv, laluwriteFileSync(destination, toCsv(notes), "utf8").csv.jsbaris 1 sampai 9: headerid,title, judul dibungkus kutip dan tanda kutip digandakan.
Halaman resmi sendiri menyatakan: analisis statis REA memasangkan pesan dengan handler-nya, sedangkan tujuan berkas dibaca dari kode. Jadi bagian “Downloads/notes.csv” adalah hasil membaca kode, bukan sesuatu yang dibuktikan REA.
Video independen opsional, tylerlaceby. Konsep IPC pada 1:09, invoke/handle pada 4:02. Tutorial lama ini mendukung pemahaman konsep, bukan otoritas keamanan Electron terkini. Bukan video resmi REA; tidak ada afiliasi.
Langkah 4: uji prediksi (dijalankan)
Prediksi: judul Hello, "REA" tetap satu kolom, setiap tanda kutip digandakan.
cd extracted/notes-example
node -e 'process.stdout.write(require("./csv.js").toCsv([{id:1,title:"Hello, \"REA\""}]))'
Keluaran saya (Node.js v24.15.0), sama dengan yang tertulis di halaman resmi:
id,title
1,"Hello, ""REA"""
8. Lab milik sendiri: membongkar fungsi ongkir dengan tool standar
Status: dijalankan. Penting: ini bukan run REA. Lab ini memakai gcc, file, sha256sum, strings, nm, readelf, dan objdump untuk mempraktikkan pola pikir yang sama: evidence, observasi, inferensi, uji. Menurut dokumentasi, REA dengan Ghidra atau Hopper dapat memberi pseudocode dan evidence terstruktur; tool standar hanya memberi bahan mentahnya.
Targetnya lab/ongkir.c, program 40-an baris yang saya tulis untuk lab ini. Fungsinya menghitung ongkos kirim fiktif dengan aturan yang sengaja “disembunyikan” di binary.
Reproduksi
cd /path/ke/proyek-lab
bash lab/run-lab.sh # jalankan skrip lab milikmu; exit 0 bila semua PASS
Perintah berikut memerlukan source lab/ongkir.c dan skrip uji milikmu; panduan ini tidak menyediakan paket lab untuk diunduh. Ini rekaman langkah build, bukan reproduksi mandiri tanpa source:
gcc -O1 -Wall -Wextra -fno-asynchronous-unwind-tables -o lab/build/ongkir lab/ongkir.c
strip -o lab/build/ongkir.stripped lab/build/ongkir
sha256sum lab/build/ongkir lab/build/ongkir.stripped
file lab/build/ongkir
strings -n 6 lab/build/ongkir | grep -E 'ONGKIR|pemakaian|subtotal'
nm -C lab/build/ongkir | grep -E ' [Tt] '
objdump -d --no-show-raw-insn -M intel --disassemble=hitung_ongkir lab/build/ongkir
Evidence dari pengujian tool standar
- Host: Linux x86_64, gcc 13.3.0 (Ubuntu), GNU objdump 2.42, file 5.45.
- SHA-256 source:
75f5489c342cff81fa66ba97c6f3e4bb3281c7ed8a8763dc8d2c6c31906fa05c. - SHA-256 binary:
45ce0584166183583231ea737a955df4802a1b657da65c5cf1c71e257fa12206(16.144 byte). Build kedua identik byte per byte. - SHA-256 stripped:
1cef3311a05edd482405b1d47978bbdbc27752ac58696187aabae2e046d9530d(14.472 byte). file: ELF 64-bit LSB pie executable, x86-64, dynamically linked, not stripped.
Hash binary hanya berlaku untuk toolchain yang sama. Di mesin lain dengan versi gcc berbeda, hash-nya hampir pasti berbeda; yang harus sama adalah hasil uji perilaku.
Observasi
nm menunjukkan simbol hitung_ongkir di alamat 0x1189. Pada salinan stripped, nm menjawab no symbols. Disassembly fungsinya:
1189: endbr64
118d: mov eax,0x0
1192: cmp rdi,0x249ef
1199: jg 11b9
119b: cmp rsi,0x1
119f: jle 11b4
11a1: sub rsi,0x1
11a5: imul rsi,rsi,0x9c4
11ac: lea rax,[rsi+0x2328]
11b3: ret
11b4: mov eax,0x2328
11b9: ret
Inferensi
Dengan konvensi pemanggilan System V x86-64, argumen pertama ada di rdi (subtotal) dan kedua di rsi (berat).
0x249ef= 149999. Bila subtotal lebih dari 149999, fungsi mengembalikan 0: gratis ongkir mulai 150000.- Bila berat 1 kg atau kurang, hasilnya
0x2328= 9000. - Selain itu, hasilnya 9000 + (berat - 1) x
0x9c4(= 2500).
Uji prediksi dengan input aman
| Input (subtotal, berat) | Prediksi | Hasil |
|---|---|---|
| 150000, 5 | 0 | PASS |
| 149999, 1 | 9000 | PASS |
| 50000, 0 | 9000 | PASS |
| 50000, 2 | 11500 | PASS |
| 50000, 5 | 19000 | PASS |
| 50000, 5 pada binary stripped | 19000 | PASS |
| tanpa argumen | exit 2 dan pesan pemakaian | Teramati: exit 2 |
| formatter CSV (bagian 7) | judul tetap satu kolom, tanda kutip digandakan | PASS |
Ringkasan evidence yang disediakan: FAILS=0. Enam kasus output ongkir dan uji formatter CSV pada bagian 7 tercatat sebagai tujuh hasil PASS. Kasus tanpa argumen juga mencatat exit 2 sesuai prediksi, tetapi bukan baris PASS otomatis dalam skrip asli. Hasil ini bukan pengujian REA dan tidak dijalankan ulang saat penerbitan.
Unknown yang tersisa
- Nama variabel dan konstanta asli (
AMBANG_GRATIS,BIAYA_PER_KG) tidak ada di binary. Saya tahu namanya hanya karena menulis source-nya. - Perilaku untuk berat negatif atau angka di luar jangkauan
longtidak diuji. - Pada binary stripped, nama
hitung_ongkirhilang. Menemukan fungsinya akan butuh penelusuran darimainatau dari string format.
9. Prompt siap pakai
Prompt ini memaksa agen memisahkan bukti, tafsiran, dan ketidaktahuan. Ganti bagian dalam kurung siku.
Kamu membantu investigasi reverse engineering yang sah pada [TARGET], yang
[saya miliki / berlisensi open source X / saya punya izin tertulis untuk menganalisisnya].
Pertanyaan: [satu perilaku sempit, misalnya "bagaimana tombol Export menulis berkas"].
Aturan:
1. Mulai dengan analisis statis. Jangan menjalankan target atau runtime capture
tanpa meminta izin saya dulu.
2. Jawab dalam empat bagian:
EVIDENCE: hanya hal yang dikembalikan alat, masing-masing dengan berkas dan
baris, alamat, hash, atau ID evidence.
INFERENSI: kesimpulanmu, masing-masing menyebut evidence mana yang mendasarinya.
UNKNOWN: apa yang tidak bisa dipastikan, termasuk unknown dan limitations
yang dilaporkan alat.
UJI: satu atau dua perintah kecil yang bisa saya jalankan untuk menguji
inferensi terpenting, beserta keluaran yang kamu prediksi.
3. Jangan menyebut sesuatu "tidak ada" hanya karena tidak ditemukan.
4. Jangan menyalin kode target ke luar ringkasan seperlunya.
Prompt lanjutan setelah jawaban pertama:
Dari daftar UNKNOWN tadi, mana yang paling dekat dengan pertanyaan saya?
Apa yang dibutuhkan untuk menyelesaikannya, dan apakah itu memerlukan runtime?
Prompt untuk audit jawaban agen:
Periksa ulang jawabanmu. Untuk setiap kalimat di INFERENSI, tunjukkan evidence
persisnya. Pindahkan kalimat yang tidak punya evidence ke UNKNOWN.
10. Kasus praktis yang sah
- Aplikasi sendiri yang dokumentasinya hilang. Kamu punya build lama tetapi lupa bagaimana fitur ekspor bekerja. Analisis statis atas build itu, lalu cocokkan dengan source yang masih ada.
- Proyek warisan. Tim mewarisi aplikasi Electron internal tanpa dokumentasi. Telusuri jalur IPC dari tombol ke handler seperti tutorial di bagian 7.
- Interoperabilitas dengan open source. Membaca format berkas atau protokol dari software open source yang lisensinya membolehkan, untuk membuat alat yang kompatibel.
- Debugging dan insiden internal. Membandingkan dua versi build milik perusahaanmu untuk mencari perubahan perilaku. Dokumentasi CLI menyebut perintah
rea compareuntuk membandingkan dua bundle evidence. - Artefak dengan izin tertulis. Audit keamanan atau pemeriksaan vendor dengan surat kuasa yang jelas cakupannya.
Yang tidak saya sarankan: “mengkloning” aplikasi komersial orang lain. Memahami cara kerja tidak otomatis memberi hak untuk menyalin implementasinya.
11. Kalau macet
| Gejala | Kemungkinan penyebab | Langkah |
|---|---|---|
npx gagal atau Node ditolak |
Versi Node di luar rentang | node --version, pakai 22.19+, 24.11+, atau 26+ |
| Agen tidak melihat alat REA | Agen belum dimulai ulang, registrasi basi | Restart agen, doctor --client ID --json, lalu setup ulang untuk klien itu |
| Fitur di dokumentasi tidak ada | Dokumentasi main lebih baru dari rilis npm |
Cek npm view rea-agents dist-tags.latest dan daftar alat yang benar-benar terhubung |
capability_unavailable pada binary native |
Penyedia tidak terpasang atau ambigu | Ikuti details.selection_reason, pilih --provider |
| Ghidra gagal mulai | Versi Ghidra atau JDK tidak cocok, dekompiler native tidak ada | Ghidra 12.1.x, JDK 21+, cek folder Decompiler/os/<platform>/ |
| Hopper di macOS diam | Dialog demo atau lisensi pertama belum dijawab | Buka Hopper sekali secara manual |
| Binary besar time out | Batas waktu startup penyedia | REA_GHIDRA_STARTUP_TIMEOUT_MS atau REA_HOPPER_STARTUP_TIMEOUT_MS |
| Hasil penuh unknown | Kode dinamis | Normal. Minta agen menjelaskan unknown terdekat dengan pertanyaanmu |
| Evidence terlalu besar | Aplikasi nyata bisa ratusan MB | Simpan ke berkas, pakai inspect-analysis-view dengan view summary |
| Exit code 1 | Operasi tidak selesai | Baca keluaran terstruktur; aktifkan set -o pipefail saat memakai jq |
Laporan pengguna di diskusi #1406 menyebut analisis JavaScript yang lama dan boros memori pada REA 6.3.0 di Windows. Anggap itu pengalaman individu, bukan spesifikasi.
12. Privasi, keamanan, dan hukum
- Lokal bukan berarti privat. FAQ resmi: REA menganalisis target di mesinmu, tetapi agen menerima hasilnya dan kebijakan data penyedia model berlaku. Potongan kode, string, dan path ikut masuk ke konteks model. Jangan arahkan agen ke folder berisi kredensial, data pelanggan, atau data pribadi.
- REA bukan sandbox. SECURITY.md menyatakan batas keamanannya bukan sandbox dan tidak melindungi dari proses jahat yang berjalan sebagai pengguna yang sama. Membuka binary tak tepercaya menyerahkan parsing ke penyedia lokal dengan izin penggunamu.
- Inferensi: pakai VM untuk apa pun yang belum kamu percaya. VM atau container terpisah, tanpa kredensial, dengan snapshot sebelum mulai, dan tanpa runtime capture kecuali kamu memang perlu. Panduan ini tidak membahas analisis malware.
- Runtime memakai izinmu. Runtime capture menjalankan target sebagai kamu. Perlakukan seperti menjalankan program itu langsung.
- Hukum. Saya bukan penasihat hukum dan ini bukan nasihat hukum. Aturan reverse engineering, interoperabilitas, dan lisensi berbeda di tiap yurisdiksi dan tiap perjanjian lisensi. Memiliki salinan software tidak otomatis memberi hak untuk menyalin atau mendistribusikan isinya. Untuk kasus nyata, tanyakan penasihat hukum yang memahami yurisdiksimu.
- Clean-room. Bila tujuanmu membuat implementasi yang kompatibel, praktik yang sering dibicarakan adalah memisahkan orang yang membaca target dan menulis spesifikasi dari orang yang menulis kode baru. Itu praktik, bukan jaminan hukum, dan bukan fitur REA.
13. Batasan yang perlu diingat
- Bukan pemulihan source asli. Contoh resmi bersifat sempit. Catatan evidence DX-Ball menyebut satu fungsi 63 byte, REA 4.1.0 dengan Ghidra 12.1.4, dan 3.205 kasus uji; halaman situsnya memakai ulang hasil tersimpan. Catatan Notion menyebut observasinya
ast-static-analysis, bukan graf IPC otomatis penuh. - Statis bukan runtime, dan runtime hanya membuktikan jalur yang dilewati.
- Tidak ditemukan bukan berarti tidak ada.
- Logika di server tidak ikut terbaca (inferensi): REA membaca artefak lokal.
- Proyek bergerak cepat. Lima rilis mayor dan minor terbit 8 sampai 11 Oktober 2026 (6.0.0 sampai 6.4.0). Perintah dan angka di sini bisa basi.
- Panduan ini tidak menjalankan REA. Lihat catatan pembuka.
14. Checklist
- Target milikku, open source berlisensi jelas, sampel resmi, atau ada izin tertulis.
- Repo
morluto/readan paketrea-agentssudah kucocokkan. - Versi Node.js sesuai; versi rilis npm sudah kucek.
- Rencana setup sudah kubaca (
--dry-rundulu), lalu agen dimulai ulang. - Mulai dari analisis statis; runtime hanya dengan sadar dan di lingkungan terisolasi.
- Prompt memisahkan EVIDENCE, INFERENSI, UNKNOWN, dan UJI.
- Setiap klaim agen kucocokkan dengan berkas, baris, atau alamat yang disebut.
- Prediksi terpenting kuuji dengan perintah kecil.
- Unknown dan limitations sudah kubaca.
- Tidak ada kredensial atau data pribadi di folder yang dibaca agen.
- Tidak ada hasil analisis software orang lain yang kudistribusikan.
Sumber
Resmi (berkas repo dikunci ke commit a0317cf, dicek 13 Oktober 2026):
- Repo morluto/rea, README, LICENSE, SECURITY.md
- Instalasi, CLI dan Evidence, Penyedia IDA, Reconstruction readiness
- Rilis rea-agents 6.4.0, paket npm rea-agents
- rea.tools, first investigation, FAQ
- Catatan evidence showcase pada commit
29d2624: DX-Ball, Notion
Video independen dan komunitas:
