Sebuah file .exe tanpa source code, tanpa dokumentasi, tanpa nama fungsi yang berarti. Dulu membedahnya berarti membuka Ghidra, menunggu analisis selesai, lalu berjam-jam membaca pseudo-C sambil menebak bagian mana yang menangani input pengguna.
Pada sebuah demo publik, tugas seperti itu diselesaikan dalam hitungan menit. Yang diminta cuma satu kalimat ke agent: pakai REA, lalu analisa algoritma program ini. Beberapa menit kemudian keluar jawaban lengkap: program itu memproses karakter ASCII lewat mesin virtual kecil dengan delapan register, tabel instruksinya disamarkan XOR, dan aturan konversinya A sampai Z menjadi 100 sampai 125. Agent juga menghasilkan ulang program yang sama dalam Python, dan hasilnya cocok byte per byte dengan binary aslinya untuk 338 input uji.
Itulah REA, singkatan dari reverse engineer anything. Bukan model baru, bukan layanan awan, melainkan penghubung antara agent AI dan alat-alat yang selama ini dipakai manusia untuk membedah software.
Apa itu REA sebenarnya
REA adalah MCP server. Kalau istilah itu masih terdengar jauh, anggap saja sebagai soket standar yang membuat agent bisa memanggil kemampuan di luar dirinya. Selama ini agent hanya bisa membaca berkas teks dan menjalankan perintah shell. Dengan MCP, agent bisa meminta sesuatu yang lebih khusus: buka binary ini, daftar prosedurnya, cari bagian yang memproses input.
Repo morluto/rea menempatkannya sebagai satu MCP untuk reverse engineering lintas binary, aplikasi, dan perilaku runtime. Ditulis dengan TypeScript, berlisensi MIT, dan sudah dipakai luas: 448 ribu bintang dan 110 ribu fork saat artikel ini ditulis. Paketnya ada di npm dengan nama rea-agents.
Alurnya sederhana dan itu yang membuatnya berguna:
- Kamu memasang REA dan mendaftarkannya ke agent (Claude Code, Codex, Cursor, Gemini CLI, atau klien MCP lain).
- Agent memanggil tool REA untuk memeriksa target.
- REA mengembalikan temuan beserta buktinya, bukan kesimpulan jadi.
- Agent memakai temuan itu untuk menjelaskan perilaku, menjawab pertanyaan lanjutan, atau menulis implementasi baru yang bisa diuji.
Pemasangannya satu perintah, dengan syarat Node.js sudah ada:
npx rea-agents setup
Perintah itu menambahkan server MCP dan instruksi kerja yang cocok ke agent pilihanmu, dengan cadangan konfigurasi lama. Setelah agent di-restart, kemampuan REA langsung tersedia. Untuk pemakaian rutin di terminal:
npm install --global rea-agents
rea --help
rea update
Yang bisa dibedah
Ini bagian yang membuat REA lebih dari sekadar pembungkus Ghidra. Target yang didukung cukup lebar, dan sebagian tidak butuh tool reverse engineering sama sekali karena analisisnya statis dan sudah ada di dalam REA.
| Target | Yang dikembalikan |
|---|---|
| Binary native (ELF, PE, Mach-O) | pseudocode, assembly, string, simbol, pemanggilan |
| Aplikasi JavaScript dan Electron | modul, impor, batas antarproses Electron, beserta buktinya |
| Sertifikat PE | entri Authenticode dan identitas penanda tangan |
| Binary Go dan Rust | versi compiler, modul, dependensi yang tertanam |
| Metadata IL2CPP Unity | nama tipe dan metode dari global-metadata.dat |
| Arsip Godot PCK | daftar isi dan ekstraksi aset |
| Berkas model GGUF dan safetensors | metadata, deklarasi tensor, total turunan |
| SQLite, WASM, EVM bytecode, kernel module | struktur, tabel, selector, signature |
Untuk analisis native yang dalam, REA memakai mesin yang sudah dikenal: Ghidra, Hopper, IDA, atau Kuna. Di situ biaya mulai masuk, dan saya bahas di bagian tersendiri.
Kegunaan yang nyata
Dari demo dan dokumentasi resminya, ada beberapa pola pemakaian yang berulang.
Memahami algoritma yang terkubur. Kasus pertama di demo: dua program mirip yang mengubah teks input dengan aturan berbeda. Source code-nya sudah tidak ada, dokumentasi tidak ada, yang tersisa hanya file yang bisa dijalankan. REA memulihkan aturannya, termasuk cara penyamaran tabel instruksinya, lalu agent menulis ulang program yang sama dalam Python.
Triase berkas mencurigakan. Kasus kedua lebih menarik. Enam file .exe di sebuah workspace: tiga berbahaya, tiga tidak. Setelah diminta memberi skor keamanan, agent memeriksa satu per satu, membaca sertifikat PE, membandingkan penanda tangan, lalu menyimpulkan bahwa file bertanda tangan AMD dan Microsoft asli layak dipasang, sementara satu file punya skor nol karena alur kodenya menjalankan pola WannaCry, dan satu lagi skor lima belas karena obfuscation berat.
Audit aplikasi yang kamu pakai sendiri. Aplikasi Electron sering menyimpan logika penting di bundel JavaScript. REA memetakan modul dan batas antarprosesnya tanpa harus membongkar asar secara manual.
Riset dan interoperabilitas. Format berkas lama, plugin, atau protokol yang sudah tidak didokumentasikan bisa dipulihkan perilakunya.
Bahan latihan agent. Repo itu juga menyebut pemakaian REA untuk membangun lingkungan reinforcement learning, tempat agent berlatih memecahkan tugas reverse engineering yang punya kunci jawaban.
Yang membuatnya beda: bukti, bukan jawaban
Bagian ini yang paling menentukan mutu hasilnya, dan sering dilewatkan orang yang cuma melihat demo cepat.
REA tidak mengembalikan satu paragraf kesimpulan. Dia mengembalikan temuan yang menempel pada bukti: potongan pseudocode, string yang relevan, alamat fungsi, hasil pembacaan header. Agent lalu menyusun penjelasan di atas bukti itu. Di demo, hasilnya juga ditulis ke folder analisis berisi berkas JSON dan laporan keamanan per file, jadi bisa diperiksa ulang manusia.
Kenapa ini penting? Karena model bahasa bisa saja mengarang penjelasan yang terdengar masuk akal tentang binary yang tidak pernah benar-benar dia baca. Bukti mentah dari tool membuat klaim bisa diuji. Kalau agent bilang sebuah fungsi memakai XOR dengan kunci tertentu, kamu bisa membuka potongan kode yang dia tunjukkan dan memeriksa sendiri.
Dampak positif
Waktu. Pekerjaan yang dulu berjam-jam jadi beberapa menit untuk kasus yang jelas. Ini bukan percepatan sepuluh persen, ini perubahan urutan besaran untuk tugas yang cocok.
Aksesibilitas. Orang yang bukan spesialis reverse engineering bisa memahami cara kerja software yang dia pakai. Backend developer bisa menelusuri bug di library yang sudah terkompilasi tanpa harus jadi ahli assembly.
Keamanan defensif. Triase malware yang biasanya menunggu analis sekarang bisa jadi langkah pertama yang cepat: mana yang mencurigakan, mana yang layak diperiksa lebih dalam.
Preservasi dan interoperabilitas. Software lama yang sumbernya hilang masih bisa dipahami dan dihidupkan kembali, termasuk untuk berpindah platform.
Dokumentasi yang lahir dari kenyataan. Penjelasan yang dihasilkan menempel pada bukti, jadi bisa disimpan sebagai dokumentasi teknis yang tidak ada sebelumnya.
Dampak negatif dan risikonya
Bagian ini yang paling jarang dibahas di video demo, padahal ini yang menentukan apakah kamu memakai REA dengan aman.
Penyalahgunaan. Alat yang bisa memulihkan algoritma juga bisa dipakai membongkar proteksi lisensi, membuat crack, atau menyalin fitur produk orang. Repo-nya sendiri menegaskan pemakaian yang sah adalah riset, pendidikan, interoperabilitas, preservasi, dan software yang kamu miliki atau berwenang memeriksanya. Batas itu bukan hiasan.
Malware yang bergerak sendiri. Agent bisa menjalankan berkas yang sedang dia analisis. Untuk malware, itu berbahaya. Di demo, semuanya dijalankan di VPS terpisah dengan backup mingguan supaya mesin pribadi tidak jadi korban. Ini bukan kehati-hatian berlebihan, ini syarat.
Agent bisa salah dengan percaya diri. Kesimpulan yang rapi belum tentu benar. Nama keluarga malware yang belum terkonfirmasi tetap ditulis sebagai dugaan, dan itu sikap yang benar. Kalau kamu memakai hasilnya untuk keputusan keamanan, verifikasi tetap wajib.
Data keluar dari mesinmu. Analisis berjalan lokal, tapi hasil tool dikirim ke agent, dan agent berjalan di atas model milik penyedia layanan. Kebijakan data penyedia model berlaku, bukan kebijakan REA. Untuk binary internal perusahaan, ini pertanyaan yang harus dijawab lebih dulu.
Beban review tidak hilang. Kamu tetap harus membaca bukti dan menguji ulang hasilnya. Yang berkurang adalah waktu mencari, bukan tanggung jawab menyimpulkan.
Ketergantungan pada rantai alat. REA bergerak cepat, dan setiap komponen punya versi sendiri: Node, engine native, agent. Semakin banyak lapisan, semakin banyak titik gagal.
Biaya yang harus dibayar
Bagian ini yang biasanya hilang dari pembicaraan soal tool AI gratis. REA-nya sendiri tidak berbayar, tapi rantai di sekitarnya tidak.
| Komponen | Sifat | Catatan |
|---|---|---|
REA (rea-agents) | gratis, MIT | dipasang lewat npm, termasuk pembaruan |
| Node.js dan npm | gratis | wajib versi 22, 24, atau 26 terbaru |
| Ghidra | gratis | mesin analisis native yang paling sering dipakai |
| Hopper, IDA, JEB | berbayar, lisensi vendor | REA tidak memberikan lisensi maupun kunci apa pun |
| Model AI | berbayar sesuai pemakaian | sesi analisis panjang memakan token banyak |
| VPS atau VM terpisah | berbayar bulanan | wajib untuk menguji berkas berbahaya |
| Waktu dan keahlian | tidak berbayar, tapi paling mahal | membaca bukti dan memutuskan tetap pekerjaan manusia |
Dua baris yang perlu digarisbawahi. Pertama, lisensi komersial seperti IDA Pro dan Hopper harus kamu peroleh sendiri secara sah. Dokumentasi REA menyebut dengan tegas bahwa salinan bajakan, kunci curian, dan pembobolan pembatasan lisensi tidak termasuk pemakaian yang diizinkan. Kedua, biaya model biasanya lebih besar dari yang diperkirakan, karena analisis binary berarti banyak potongan kode masuk ke konteks dan sesi bisa berjalan lama.
Untuk lingkungan uji, VPS kecil sudah cukup untuk eksperimen seperti di demo, dan penyedia VPS lokal menawarkan paket 8 GB RAM di kisaran seratus sampai dua ratus ribu rupiah per bulan. Yang penting bukan mereknya, tapi prinsipnya: jangan pernah menjalankan berkas yang belum dikenal di mesin kerja utama.
Sebelum memasang REA, siapkan dulu kotak pasirnya. VM atau VPS terpisah, snapshot sebelum analisis, tanpa kredensial dan tanpa akses ke jaringan internal. Satu file yang salah dijalankan bisa menghapus waktu berhari-hari, dan itu biaya paling nyata dalam daftar di atas.
Cara mulai dengan aman
Urutan yang saya sarankan, dari risiko paling kecil:
- Pasang Node.js versi yang didukung, lalu jalankan
npx rea-agents setupdan pilih agent yang kamu pakai. - Mulai dari target milik sendiri. Aplikasi kecil, library lama, atau binary yang kamu tulis sendiri beberapa tahun lalu. Kamu tahu jawabannya, jadi bisa menilai apakah analisisnya benar.
- Untuk aplikasi Electron atau JavaScript, coba perintah analisis statis lebih dulu karena tidak butuh mesin native:
npx -y rea-agents@latest analyze-javascript-application /jalur/ke/aplikasi --json
- Baru masuk ke binary native setelah memasang Ghidra, dan pilih satu kasus kecil: satu fungsi, satu algoritma.
- Sediakan VM terpisah untuk apa pun yang belum kamu percaya, termasuk hasil unduhan dari internet.
- Simpan folder analisis dan berkas buktinya. Suatu hari kamu akan butuh membandingkan kesimpulan lama dengan perilaku yang baru.
- Kalau memakai hasilnya untuk laporan keamanan, jalankan uji ulang dengan input yang kamu susun sendiri. Klaim tanpa pengujian independen masih berupa dugaan.
Kalau kamu memakai agent coding sehari-hari, pola kerja seperti ini sudah pernah saya tulis di menjalankan Claude Code seperti tech lead: beri agent konteks dan alat yang tepat, lalu perlakukan hasilnya sebagai bahan yang harus diperiksa.
Penutup
REA bukan alat ajaib yang membuat siapa pun bisa membedah software dalam satu klik. Dia adalah penghubung yang rapi antara agent dan mesin analisis yang sudah matang, dengan satu nilai tambah besar: setiap temuan datang bersama buktinya.
Yang membuatnya berguna dan berbahaya adalah hal yang sama. Kemampuan memahami cara kerja software tanpa izin source code tidak memihak. Arah pemakaiannya ditentukan oleh orang yang memegangnya, dan oleh kesediaannya menyiapkan kotak pasir sebelum mencoba sesuatu yang belum dikenal.







