---
title: "REA AI untuk Rekayasa Balik: Cara Kerja dan Batas Kinerja"
locale: id
category: knowledge_base
category_name: "Basis Pengetahuan"
translation_status: reviewed
license: cc_by
author: "injoys"
source_url: https://injoys.com/en/articles/rea-ai-reverse-engineering-performance-and-limits
published_at: 2026-10-19T05:55:51+09:00
---

# REA AI untuk Rekayasa Balik: Cara Kerja dan Batas Kinerja

> REA adalah alat yang menghubungkan agen AI dengan alat rekayasa balik untuk menyelidiki cara kerja perangkat lunak. Penjelasan ini membedakan cakupan verifikasi contoh yang dipublikasikan dari keterbatasan analisis server, serta membahas keamanan, hak cipta, dan kemampuan hasil analisis untuk direproduksi.

## Key Points

- REA menghubungkan agen AI agar dapat memanggil alat rekayasa balik melalui MCP.
- Memahami cara kerja berkas yang dapat dieksekusi berbeda dari memulihkan kode sumber aslinya.
- Contoh DX-Ball yang dipublikasikan menunjukkan hasil verifikasi fungsi tertentu, bukan berarti pemulihan seluruh game telah selesai.
- Kode server atau model privat yang tidak disertakan dalam aplikasi tidak dapat diperoleh hanya dengan menganalisis aplikasi.
- Hasil analisis harus menyertakan bukti dan cakupan yang belum diverifikasi, lalu perilakunya dibandingkan dengan versi asli.

REA menghubungkan AI dengan alat rekayasa balik agar AI dapat memanggil alat tersebut untuk menyelidiki cara kerja aplikasi. Kasus yang dipublikasikan menunjukkan bahwa fitur tertentu dapat dianalisis dan berpotensi diimplementasikan ulang. Kasus tersebut sulit dianggap sebagai bukti berakhirnya industri perangkat lunak atau kemampuan menyalin seluruh layanan.

Angka verifikasi DX-Ball mengacu pada catatan perkembangan kasus resmi per 7 Oktober 2026.

## Apa itu REA

REA adalah singkatan dari Reverse Engineer Anything. Ini adalah proyek yang menghubungkan alat analisis perangkat lunak dengan agen AI. REA bukan satu model AI yang melakukan seluruh analisis sendiri.

Rekayasa balik adalah pekerjaan menelusuri struktur dan cara kerja perangkat lunak yang sudah jadi. Tujuannya adalah memahami hal-hal yang diperlukan untuk menjelaskan suatu fungsi atau memastikan kompatibilitas.

Kompilasi adalah proses mengubah kode yang ditulis manusia menjadi bentuk yang dapat dijalankan. Dalam proses ini, komentar dan sebagian informasi nama dapat hilang. Optimalisasi juga dapat mengubah bentuk fungsi atau rumus perhitungan.

Namun, tidak semua aplikasi hanya menyisakan kode mesin tanpa nama. Ada juga paket distribusi yang memuat kode JavaScript atau informasi debugging. Karena itu, metode analisis bergantung pada format berkas dan informasi yang masih tersedia.

| Istilah | Penjelasan sederhana | Hal yang perlu diperhatikan saat membaca hasil |
| --- | --- | --- |
| Disassembly | Menampilkan kode mesin sebagai instruksi assembly | Tujuan instruksi masih perlu ditafsirkan |
| Dekompilasi | Menampilkan kode yang dapat dijalankan dalam bentuk mirip kode sumber | Tidak ada jaminan bentuknya sama dengan kode sumber asli |
| Analisis statis | Memeriksa berkas tanpa menjalankan program | Perlu dibedakan dari alur yang benar-benar dijalankan |
| Analisis dinamis | Mengamati perilaku saat program dijalankan | Perilaku di luar kondisi yang diamati belum terverifikasi |
| Implementasi ulang | Menulis perilaku yang telah dipahami dalam kode baru | Perlu diverifikasi dengan membandingkannya dengan versi asli |

## Bagaimana AI dan Ghidra terhubung

REA meneruskan permintaan analisis dari agen ke alat melalui MCP. MCP adalah spesifikasi koneksi agar AI dan alat eksternal dapat saling mengirim permintaan dan hasil. Ghidra adalah alat rekayasa balik untuk memeriksa berkas yang dapat dijalankan.

README resmi juga menjelaskan integrasi dengan Hopper dan IDA selain Ghidra. Analisis statis JavaScript tidak memerlukan mesin analisis native. Jadi, menjelaskan kemampuan REA hanya sebagai pengoperasian otomatis Ghidra akan mempersempit cakupannya.

Analisis biasanya berlangsung dalam urutan berikut.

1. Tentukan aplikasi dan fitur yang akan diperiksa.
2. Cari bagian terkait melalui string atau pemanggilan fungsi.
3. Telusuri instruksi dan aliran data untuk menafsirkan cara kerjanya.
4. Periksa bukti yang belum cukup dengan memanggil alat tambahan.
5. Bandingkan hasil implementasi ulang dengan perilaku versi asli.

Ghidra sudah memiliki fitur analisis otomatis sebelumnya. REA menghubungkannya agar agen dapat melanjutkan permintaan analisis. Akurasi sebenarnya bergantung pada target, mesin analisis, model, dan metode verifikasi.

## Cakupan analisis menurut kondisi

Apa yang dapat diperiksa dengan REA bergantung pada berkas dan lingkungan eksekusi yang dapat diakses. Aplikasi lokal mungkin memuat kode yang berkomunikasi dengan server. Itu tidak berarti kode tersebut juga memuat implementasi internal server.

| Target analisis | Hal yang dapat diperiksa | Hal yang tidak dapat dipastikan hanya dari analisis |
| --- | --- | --- |
| Berkas lokal yang dapat dijalankan | Rumus perhitungan, string, hubungan antarpemanggilan fungsi | Seluruh komentar asli dan maksud perancangannya |
| Aplikasi JavaScript·Electron | Struktur modul, hubungan antara tampilan dan pemrosesan internal | Logika pemrosesan yang hanya ada di server |
| Halaman web dan catatan komunikasi | Skrip yang diunduh, permintaan dan respons yang diamati | Seluruh kode sumber server dan basis data |
| Berkas model yang disertakan secara lokal | Struktur dan informasi berkas yang dapat diakses | Model privat yang hanya digunakan di server |
| Fitur yang diamati saat berjalan | Perilaku pada input dan lingkungan tersebut | Perilaku pada semua input dan kondisi gangguan |

Implementasi ulang suatu layanan juga memerlukan persyaratan di luar fitur yang diamati. Perilaku seperti hak akses akun dan penanganan kesalahan adalah contohnya. Sekalipun tampilannya bekerja dengan cara yang mirip, seluruh layanannya tidak dapat dianggap sama.

## Cakupan verifikasi eksperimen kalkulator 8 menit 41 detik

Angka 8 menit 41 detik adalah klaim demonstrasi yang catatan aslinya belum terverifikasi. Jumlah pemanggilan alat yang disebutkan bersamanya adalah 17 kali. Klaim bahwa 4 aturan perhitungan ditemukan juga belum dapat diverifikasi secara independen.

Kondisi pengujian perlu diperiksa melalui video asli dan catatan eksekusi. Waktu yang dibutuhkan berbeda menurut model dan ukuran program. Satu keberhasilan saja tidak cukup untuk menilai kecepatan atau akurasi analisis secara umum.

Dalam analisis kalkulator, verifikasi tidak selesai hanya dengan membaca rumus. Urutan penerapan diskon dan kupon dapat mengubah hasil. Pembulatan ke bawah pada pembagian bilangan bulat juga harus diperiksa secara terpisah.

- Urutan penerapan diskon dan kupon
- Jumlah yang menjadi dasar perhitungan pajak
- Tahap pembulatan atau pembulatan ke bawah dalam perhitungan antara
- Keluaran pada nilai batas saat kondisi berubah
- Catatan perbandingan dengan memasukkan input yang sama ke versi asli dan kode implementasi ulang

Untuk membuktikan analisis yang cepat, diperlukan pula catatan selain jawaban yang berhasil. Eksekusi yang gagal dan jumlah percobaan ulang memengaruhi perbandingan. Berdasarkan bukti yang saat ini telah diperiksa, sulit membuat penilaian umum bahwa kemampuannya lebih baik daripada manusia.

## Hasil yang terverifikasi dalam kasus publik

Kasus resmi memperlihatkan alur clipboard Notion dan fungsi perhitungan DX-Ball. Kedua kasus menyebutkan cakupan fitur yang diperiksa. Perlu pula dibedakan bahwa catatan tersebut diterbitkan oleh proyek REA.

| Kasus | Pekerjaan yang terverifikasi dalam dokumen publik | Hal yang tidak boleh ditafsirkan terlalu jauh |
| --- | --- | --- |
| Notion Desktop 7.6.1 | Penelusuran alur dari pemanggilan internal aplikasi hingga clipboard sistem | Penyalinan seluruh layanan Notion |
| DX-Ball 1.07 | Implementasi ulang fungsi yang mengubah posisi di layar menjadi nilai audio kiri dan kanan | Pemulihan seluruh game telah selesai |
| Aplikasi pengganti ringan untuk Razer Synapse | Dalam pemeriksaan ini, catatan verifikasi konkret terhadap versi asli belum ditemukan | Menyatakannya sebagai hasil REA yang telah diverifikasi secara resmi |
| Editor slide terkait Claude | Dalam pemeriksaan ini, target dan cakupan implementasi ulang belum terverifikasi | Menafsirkannya sebagai pemulihan model privat Claude |

Kasus Notion menelusuri proses pemanggilan dari sisi tampilan yang melewati komunikasi internal. Pada akhirnya, alur tersebut terhubung ke fitur penulisan clipboard Electron. Ini adalah contoh yang menjelaskan alur pemrosesan suatu fitur tertentu.

Kasus DX-Ball memeriksa input fungsi dan konstanta perhitungan dari berkas yang dapat dijalankan. Pengujian perbandingan untuk fungsi tersebut berjumlah **3,205 kasus**. Hasil kompilasi yang memperhitungkan penanganan relokasi yang telah ditinjau cocok sepanjang 63 byte.

Catatan ini mendukung implementasi ulang fungsi tertentu. Dokumen resmi menjelaskan bahwa pemulihan seluruh game agar dapat dijalankan masih berlangsung. Verifikasi beberapa fungsi harus dibedakan dari penyelesaian seluruh produk.

## Apa yang dijamin oleh penandaan observasi dan inferensi

Penandaan bukti membantu membedakan asal suatu kesimpulan. Dokumen REA membedakan observasi, inferensi, dan informasi yang belum terverifikasi. Namun, tidak semua alat menggunakan empat label yang sama.

Dokumen resmi memakai status dan cara menyatakan tingkat keyakinan yang berbeda menurut jenis analisis. Saat membacanya, pemisahan makna berikut dapat membantu. Kategori dalam tabel ini disajikan untuk mempermudah pemahaman.

| Kategori | Makna | Hal yang perlu diperiksa |
| --- | --- | --- |
| Observasi | Diperiksa langsung dari berkas atau hasil eksekusi | Versi target dan lokasi bukti |
| Hasil turunan | Kesimpulan yang dihitung dari nilai dan hubungan yang diamati | Proses perhitungan dan asumsi |
| Perkiraan | Tafsiran yang memerlukan pemeriksaan tambahan | Kemungkinan penjelasan lain |
| Belum terverifikasi | Bagian yang belum memiliki bukti | Cakupan pemeriksaan dan alasan verifikasi gagal |

DISCLAIMER.md resmi menyatakan keterbatasan hasil analisis.

> Decompilation, reconstruction, heuristics, and AI-assisted analysis may be incomplete or incorrect.
>
> Sumber: REA DISCLAIMER.md

Artinya, dekompilasi dan analisis AI mungkin tidak lengkap atau keliru. Label observasi pun tidak menghilangkan kemungkinan kesalahan alat. Nilai penandaan bukti terletak pada tersedianya lokasi yang dapat diperiksa kembali.

## Kesalahan yang umum terjadi

Kesalahpahaman yang paling umum adalah menganggap hasil yang dapat dijelaskan sudah selesai diverifikasi. Kode yang mudah dibaca mungkin berperilaku berbeda dari versi asli. Alur yang belum diperiksa harus dicatat secara terpisah.

| Kesalahpahaman | Tafsiran yang lebih tepat |
| --- | --- |
| Dekompilasi mengembalikan kode sumber asli | Sering kali yang diperoleh adalah bentuk yang mirip kode sumber |
| Karena ada alurnya dalam kode, alur itu pasti pernah dijalankan | Keterhubungan statis berbeda dari pengamatan saat eksekusi |
| Karena tidak ditemukan, fitur itu tidak ada | Cakupan pemeriksaan atau dukungan alat mungkin belum memadai |
| Karena alat selesai dengan status berhasil, analisisnya lengkap | Hasil yang berhasil pun mungkin masih menyisakan hal yang belum terverifikasi |
| Karena hasilnya disertai bukti, tidak ada halusinasi | Bukti dan penafsirannya perlu diperiksa bersama |

Dokumen CLI REA juga membedakan status berhasil saat selesai dari kelengkapan analisis. Meski pekerjaan selesai, beberapa bukti atau pertanyaan mungkin tetap belum terjawab. Periksalah batasan hasil, bukan hanya pesan selesai.

## Catatan yang memungkinkan hasil analisis diverifikasi ulang

Analisis yang dapat direproduksi perlu menyimpan kondisi saat kesimpulan diperoleh. Kode dapat berubah setelah pembaruan meskipun nama aplikasinya sama. Jika hanya alamat fungsi yang dicatat, target akan sulit ditemukan pada versi lain.

Catatan Evidence REA menyimpan informasi identitas target dan lokasi bukti. Snapshot adalah fitur untuk menggunakan kembali hasil analisis jika kondisinya sesuai. Hasil yang tersimpan tidak berarti sudah diverifikasi untuk versi terbaru.

Untuk menyimpan catatan verifikasi, ikuti urutan berikut.

1. Catat versi dan hash berkas target.
2. Catat versi REA dan mesin analisis.
3. Hubungkan setiap kesimpulan dengan lokasi berkas atau alamat fungsi.
4. Simpan bersama input dan output dari versi asli dan kode implementasi ulang.
5. Catat secara terpisah kondisi yang tidak dapat diperiksa dan pengujian yang gagal.

Hash adalah nilai pengenal untuk membandingkan apakah berkasnya sama. Dengan menyimpannya, kita dapat menelusuri paket distribusi mana yang menjadi dasar penjelasan. Cakupan penerapannya juga dapat dibedakan ketika AI mengutip hasil tersebut di kemudian hari.

## Analisis lokal dan pengiriman data ke luar

Melakukan analisis secara lokal tidak berarti seluruh pekerjaan bebas dari pengiriman data ke luar. Menurut README resmi, analisis target oleh REA berlangsung secara lokal. Hasil dari alat diterima oleh agen AI yang terhubung.

Jika model eksternal digunakan, hasil analisis mungkin dikirim kepada penyedia model. Kebijakan data yang berlaku bergantung pada layanan yang dihubungkan. Untuk aplikasi perusahaan atau berkas privat, periksalah terlebih dahulu jalur pengiriman datanya.

- Cakupan kode dan string yang dikirim ke model
- Informasi akun dan token akses yang terdapat dalam log
- Data pribadi yang terdapat dalam catatan komunikasi
- Lokasi penyimpanan hasil analisis dan kebijakan retensinya

Pemeriksaan berkas statis juga harus dibedakan dari menjalankan program. Pengamatan saat program berjalan dapat memengaruhi keadaan berkas atau akun. Tangani program yang tidak tepercaya dalam lingkungan pengujian yang terpisah.

## Keamanan dan hak yang perlu diperiksa pengembang

Informasi rahasia yang dimasukkan ke aplikasi dapat terungkap melalui rekayasa balik. OWASP menjelaskan masalah penyertaan informasi sensitif dalam paket distribusi. Risiko ini sudah ada sebelum REA muncul.

Khususnya, kunci API rahasia yang memiliki hak akses server tidak boleh disertakan dalam aplikasi. OWASP menganjurkan agar nilai rahasia yang tetap disimpan di sisi server. Obfuscation dapat mempersulit ekstraksi, tetapi tidak menjamin kerahasiaan.

- Periksa kata sandi dan kunci rahasia yang disertakan dalam berkas distribusi.
- Batasi hak akses dan masa berlaku token autentikasi.
- Verifikasi hak akses peminta di server.
- Ganti kredensial yang telah terungkap.

Cakupan rekayasa balik yang diizinkan berbeda menurut negara, kontrak, dan pekerjaan yang dilakukan. Tidak dapat dipastikan bahwa semua tindakan diperbolehkan hanya karena tujuannya kompatibilitas. Analisis serta distribusi ulang kode dan gambar harus ditinjau secara terpisah.

Lisensi MIT REA tidak memberikan hak atas perangkat lunak yang dianalisis. Prinsip penggunaan proyek dapat diperiksa dalam DISCLAIMER.md resmi. Periksalah cakupan yang benar-benar diizinkan berdasarkan hukum yang berlaku dan ketentuan perangkat lunak target.

## Perubahan apa yang terjadi pada industri perangkat lunak

REA menunjukkan kemungkinan turunnya biaya untuk memahami fitur yang sudah ada. Ini adalah prospek yang dapat ditarik dari kasus analisis yang dipublikasikan. Belum ada angka terverifikasi mengenai besarnya penghematan biaya di seluruh industri.

Mengetahui cara beberapa fitur diimplementasikan berbeda dari kemampuan mengoperasikan layanan. Kualitas data dan penanganan gangguan tidak dapat disalin hanya dengan menganalisis berkas yang dapat dijalankan. Karena itu, kemudahan meniru fitur dan daya saing bisnis harus dinilai secara terpisah.

| Unsur bisnis | Implikasi yang ditarik dari cakupan analisis REA |
| --- | --- |
| Satu fitur internal aplikasi | Kemungkinan berkurangnya beban untuk menyelidiki cara implementasi dan mengimplementasikannya ulang |
| Pemrosesan yang hanya ada di server | Sulit diperoleh hanya melalui analisis klien |
| Data dan hak akses | Perlu diperoleh dan dikelola secara terpisah dari pemahaman kode |
| Stabilitas dan kepercayaan operasional | Pengujian, pemeliharaan, dan penanganan gangguan tetap diperlukan |
| Pelestarian perangkat lunak lama | Pemulihan dapat dilakukan mulai dari fitur kecil sambil menyimpan bukti |

Kasus publik REA menunjukkan perubahan dalam cara memahami perangkat lunak. Kasus tersebut bukan bukti bahwa kebutuhan akan pengembangan akan hilang. Setelah suatu fitur diimplementasikan ulang, kompatibilitas dan kualitas operasionalnya tetap harus diverifikasi.

## FAQ

### Apakah REA merupakan model AI tersendiri?
REA adalah proyek yang menghubungkan agen AI dengan alat analisis perangkat lunak. Permintaan analisis dan hasilnya dapat disampaikan melalui MCP.

### Apakah Ghidra wajib digunakan untuk memakai REA?
Tergantung pada objek yang dianalisis. Analisis native menggunakan mesin seperti Ghidra. Analisis statis JavaScript dapat dilakukan tanpa mesin analisis native.

### Apakah REA memulihkan kode sumber asli persis seperti semula?
Tidak ada jaminan bahwa hasil pemulihannya identik dengan kode sumber asli. Komentar atau informasi nama dapat hilang selama proses kompilasi. Hasil dekompilasi harus dibaca sebagai representasi untuk memahami cara kerjanya.

### Jika menganalisis aplikasi, apakah kode server juga bisa diperoleh?
Kode server yang tidak disertakan dalam aplikasi tidak dapat diperoleh hanya dengan menganalisis aplikasi. Permintaan dan respons komunikasi dapat diamati. Catatan tersebut tidak menunjukkan seluruh implementasi internal server.

### Apakah program lain juga bisa dianalisis dalam 8 menit 41 detik?
Tidak ada dasar untuk menggeneralisasikannya. Catatan asli demonstrasi kalkulator tersebut juga belum dapat kami verifikasi. Waktu yang diperlukan berbeda-beda menurut ukuran objek, model, dan lingkungan analisis.

### Apakah REA menghilangkan halusinasi AI?
Halusinasi tidak hilang. Menunjukkan bukti dan bagian yang belum diverifikasi memudahkan peninjauan ulang kesimpulan. Hasil dari alat dan interpretasi AI harus diverifikasi secara terpisah.

### Apakah kasus DX-Ball merupakan hasil pemulihan seluruh game?
Angka yang dikutip merupakan hasil verifikasi fungsi perhitungan suara tertentu. Kasus resmi tersebut menjelaskan 3,205 uji perbandingan. Disebutkan bahwa pemulihan seluruh game agar dapat dijalankan masih berlangsung.

### Apakah seluruh analisis REA diproses secara offline?
Analisis objek oleh REA dilakukan secara lokal. Agen yang menerima hasil dari alat dapat menggunakan model eksternal. Cakupan keseluruhan pengiriman data harus diperiksa pada layanan yang terhubung.

### Bolehkah kode yang dianalisis dengan REA dimasukkan ke dalam produk komersial?
Memperoleh hasil analisis saja tidak otomatis memberikan hak untuk menggunakannya. Hak dan lisensi perangkat lunak yang dianalisis harus diperiksa. Tinjau juga hukum yang berlaku dan ketentuan penggunaan alat analisis.

### Jika REA bersifat sumber terbuka, apakah biaya analisisnya juga gratis?
Lisensi kode REA dan biaya keseluruhan pekerjaan adalah dua hal yang berbeda. Model yang terhubung atau alat analisis komersial dapat menimbulkan biaya. Periksa besarannya dalam daftar tarif dan ketentuan penggunaan masing-masing penyedia.

### Apa yang perlu dicatat untuk mengutip hasil analisis?
Catat versi objek yang dianalisis, hash file, dan lokasi bukti. Versi alat analisis dan hasil uji perbandingan juga diperlukan. Dengan mencatat kondisi yang belum diverifikasi, Anda dapat membedakan cakupan keberlakuan kesimpulan.

## Sources

- [README repositori resmi REA: cara kerja, cakupan dukungan, analisis lokal, dan kebijakan data model](https://github.com/morluto/rea)
- [Dokumen pelatihan resmi Ghidra: Introduction to Ghidra](https://ghidra.re/ghidra_docs/GhidraClass/Beginner/Introduction_to_Ghidra_Student_Guide.html)
- [Studi kasus resmi REA: analisis jalur papan klip Electron di Notion](https://rea.tools/showcase/notion/)
- [Studi kasus resmi REA: implementasi ulang perhitungan posisi suara DX-Ball dan verifikasi melalui perbandingan](https://rea.tools/showcase/dx-ball/)
- [REA Tool Design: pembedaan antara pengamatan, hasil penurunan, inferensi, dan batasan](https://github.com/morluto/rea/blob/main/docs/tool-design.md)
- [REA JavaScript Application Graph: bukti, status, tingkat kepercayaan, dan lokasi target](https://github.com/morluto/rea/blob/main/docs/javascript-application-graph.md)
- [REA JavaScript Application Workflows: pembedaan antara hubungan statis dan verifikasi melalui eksekusi](https://github.com/morluto/rea/blob/main/docs/javascript-application-workflows.md)
- [REA CLI and Evidence: penyimpanan catatan, snapshot, dan status keluar](https://raw.githubusercontent.com/morluto/rea/main/docs/cli.md)
- [REA Disclaimer: batasan analisis, izin penggunaan, dan hak atas hasil](https://raw.githubusercontent.com/morluto/rea/main/DISCLAIMER.md)
- [OWASP MASWE-0004: informasi sensitif dalam paket aplikasi dan cara menanganinya](https://mas.owasp.org/MASWE-0004/)

## Images

![Pengembang membandingkan dua tablet dengan uji bola dan pemukul di samping laptop.](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mjk5NzksInB1ciI6ImJsb2JfaWQifX0=--2b1213d9736d5cae1ff35ed8e5e7db570784612e/ai-ab7036b9.webp)
![Seorang teknisi bersweter abu-abu gelap mencabut kabel jaringan biru dari komputer kecil.](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mjk5ODUsInB1ciI6ImJsb2JfaWQifX0=--1f2adeb39e8cbbe1342eb9e3c6b1d619bea6e20f/ai-ccb48b79.webp)