Antonius Felix
AI & EngineeringREA (rea-agents)

Bongkar Alur Software Lama dengan REA: Dari Setup sampai Evidence yang Bisa Dicek

Oct 13, 2026/20 min read/REA, Reverse Engineering, MCP, Claude Code, Electron, Analisis Kode
Judul 'Bongkar alur software lama dengan REA' di atas empat langkah: pasang, tanya, cek evidence, uji sendiri

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:

  1. 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.
  2. REA adalah alat analisis, bukan daftar bacaan. Server MCP dan CLI menjalankan analisis melalui alat yang tersedia.
  3. 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.

Alur dari izin target, setup, analisis statis, pembacaan evidence sampai pengujian hipotesis
Visual penjelasan orisinal. Alur investigasi menurut dokumentasi REA; bukan rekaman eksekusi sesi ini. Bukan tangkapan layar alat.

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.

Tangga evidence, observasi, inferensi, unknown, dan uji prediksi
Visual penjelasan orisinal. Kategori ini membantu memisahkan bukti alat dari tafsiran agen. Bukan tangkapan layar alat.
Video independen

Periksa jawaban agen terhadap source

Kreator: Berzaf | AI Automation. Bukan video resmi REA; tidak ada afiliasi. ID: 7BPcsq3kq5w.

Berzaf membandingkan Heynote v2.9.1 dengan dan tanpa REA. Menurut penilaian kreator, kedua run mendapat 9/9 fakta utama, tetapi run REA lebih lama dan menambah satu klaim salah. Ini satu kasus kehati-hatian, bukan benchmark akurasi atau kecepatan. Pemeriksaan source mulai 6:06; verdict 6:50.

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.backup dan 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.

Video independen

Setup REA, Claude Code, dan Ghidra

Kreator: Sumit Paul. Bukan video resmi REA; tidak ada afiliasi. ID: nFKJ85U6T94.

Demonstrasi pada program latihan milik kreator sendiri. Video memakai --yes; tetap baca rencana --dry-run sebelum menyetujui perubahan. Demonstrasi satu binary kecil tidak membuktikan kemampuan pada semua aplikasi. Analisis hanya target yang kamu miliki atau berwenang periksa.

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.js baris 1 sampai 4: klik #export memanggil window.notes.exportCsv().
  • preload.js baris 3 sampai 5: exportCsv memanggil ipcRenderer.invoke("notes:export").
  • main.js baris 8 sampai 12: handler notes:export menyusun path app.getPath("downloads") + notes.csv, lalu writeFileSync(destination, toCsv(notes), "utf8").
  • csv.js baris 1 sampai 9: header id,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.

Jalur Export notes dari renderer melalui preload ke handler main dan formatter CSV
Visual penjelasan orisinal. Pemetaan kode sampel notes-example yang dibaca dengan tool standar, bukan hasil run REA. Bukan tangkapan layar alat.

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.

Video independen

Membaca Ghidra pada challenge PicoCTF

Kreator: John Hammond. Bukan video resmi REA; tidak ada afiliasi. ID: oTD_ki86c9I.

Ini tutorial Ghidra, bukan REA. Berisi spoiler solusi challenge PicoCTF. Pelajari impor binary, listing, pseudocode, penamaan fungsi, hipotesis dan verifikasi. Decompiler dan renaming mulai 10:39. Gunakan challenge latihan yang diizinkan, bukan software pihak lain tanpa izin.

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).
Instruksi hitung_ongkir, nilai heksadesimal dan aturan ongkir yang diuji
Visual penjelasan orisinal. Disassembly dari lab tool standar; aturan ongkir adalah inferensi yang diuji, bukan keluaran REA. Bukan tangkapan layar alat.

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 long tidak diuji.
  • Pada binary stripped, nama hitung_ongkir hilang. Menemukan fungsinya akan butuh penelusuran dari main atau 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 compare untuk 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/rea dan paket rea-agents sudah kucocokkan.
  • Versi Node.js sesuai; versi rilis npm sudah kucek.
  • Rencana setup sudah kubaca (--dry-run dulu), 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):

Video independen dan komunitas:

More Toolkits & Guides
Based in Jakarta
Digital Business research and collaboration

Let's build it as one system.