Kenalan dengan REA: Reverse Engineer Anything untuk Agent AI

Abd. Asis
Kenalan dengan REA: Reverse Engineer Anything untuk Agent AI

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:

  1. Kamu memasang REA dan mendaftarkannya ke agent (Claude Code, Codex, Cursor, Gemini CLI, atau klien MCP lain).
  2. Agent memanggil tool REA untuk memeriksa target.
  3. REA mengembalikan temuan beserta buktinya, bukan kesimpulan jadi.
  4. 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:

BashBASH
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:

BashBASH
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.

TargetYang dikembalikan
Binary native (ELF, PE, Mach-O)pseudocode, assembly, string, simbol, pemanggilan
Aplikasi JavaScript dan Electronmodul, impor, batas antarproses Electron, beserta buktinya
Sertifikat PEentri Authenticode dan identitas penanda tangan
Binary Go dan Rustversi compiler, modul, dependensi yang tertanam
Metadata IL2CPP Unitynama tipe dan metode dari global-metadata.dat
Arsip Godot PCKdaftar isi dan ekstraksi aset
Berkas model GGUF dan safetensorsmetadata, deklarasi tensor, total turunan
SQLite, WASM, EVM bytecode, kernel modulestruktur, 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.

KomponenSifatCatatan
REA (rea-agents)gratis, MITdipasang lewat npm, termasuk pembaruan
Node.js dan npmgratiswajib versi 22, 24, atau 26 terbaru
Ghidragratismesin analisis native yang paling sering dipakai
Hopper, IDA, JEBberbayar, lisensi vendorREA tidak memberikan lisensi maupun kunci apa pun
Model AIberbayar sesuai pemakaiansesi analisis panjang memakan token banyak
VPS atau VM terpisahberbayar bulananwajib untuk menguji berkas berbahaya
Waktu dan keahliantidak berbayar, tapi paling mahalmembaca 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:

  1. Pasang Node.js versi yang didukung, lalu jalankan npx rea-agents setup dan pilih agent yang kamu pakai.
  2. 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.
  3. Untuk aplikasi Electron atau JavaScript, coba perintah analisis statis lebih dulu karena tidak butuh mesin native:
BashBASH
npx -y rea-agents@latest analyze-javascript-application /jalur/ke/aplikasi --json
  1. Baru masuk ke binary native setelah memasang Ghidra, dan pilih satu kasus kecil: satu fungsi, satu algoritma.
  2. Sediakan VM terpisah untuk apa pun yang belum kamu percaya, termasuk hasil unduhan dari internet.
  3. Simpan folder analisis dan berkas buktinya. Suatu hari kamu akan butuh membandingkan kesimpulan lama dengan perilaku yang baru.
  4. 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.

Abd. Asis
Ditulis oleh
Abd. Asis

Software Developer dari Madura. Menulis tentang PHP, Laravel, dan pengembangan web modern dalam Bahasa Indonesia.

Artikel Terkait

Tulisan lain yang mungkin menarik buatmu.

AI Tidak Menghapus Developer, Dia Mengubah Bentuknya
aikarier

AI Tidak Menghapus Developer, Dia Mengubah Bentuknya

Empat ratus baris diff saya setujui, tes hijau, tapi satu pengecekan null hilang. Yang rusak bukan pengetahuan saya, melainkan otot membaca kode.

Abd. Asis
Saat AI yang Menulis Kode, Programmer Harus Ngapain?
aikarier

Saat AI yang Menulis Kode, Programmer Harus Ngapain?

Produktivitas dari AI membuat banyak programmer malah burnout: semua dikerjakan sekaligus, konteks hilang, review jadi asal. Ini dua pekerjaan yang jauh lebih layak dilakukan sementara agent berjalan.

Abd. Asis
Lima Kebiasaan Prompting Claude yang Sudah Kedaluwarsa
claudeprompt-engineering

Lima Kebiasaan Prompting Claude yang Sudah Kedaluwarsa

Sebagian trik prompting yang dulu membuat Claude lebih patuh sekarang malah mengganggu. Ini lima kebiasaan yang perlu dilonggarkan atau justru diperketat, beserta alasan di baliknya.

Abd. Asis
Menjalankan Claude Code Seperti Tech Lead, Bukan Senior Engineer
claude-codeai

Menjalankan Claude Code Seperti Tech Lead, Bukan Senior Engineer

Empat sesi Claude Code berjalan bersamaan mengubah cara kerja: dari pair programming menjadi memimpin tim agent. Ini alur kerja, batas, dan kebiasaan yang membedakannya.

Abd. Asis
VibeUI: Library Prompt UI untuk Vibe Coder
aijavascript

VibeUI: Library Prompt UI untuk Vibe Coder

VibeUI menyediakan 92 prompt UI siap pakai untuk vibe coder — tinggal copy, paste ke AI tool, dan hasilkan komponen dengan struktur yang presisi.

Abd. Asis
Caveman: Hemat Token AI 65%
aiproductivity

Caveman: Hemat Token AI 65%

Caveman adalah plugin Claude Code yang memangkas output token hingga 65% tanpa mengorbankan akurasi teknis. Pelajari cara install dan pakai di berbagai AI agent.

Abd. Asis