Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi AI

REA Diselidiki: Bagaimana Reverse Engineering Berbantuan AI Bekerja

Apa itu REA—dan mengapa orang memperhatikannya?

Anda dapat menggunakan aplikasi setiap hari tanpa mengetahui cara kerja fitur-fiturnya di balik layar. REA memberi asisten AI cara untuk menyelidiki perilaku tersebut—bahkan ketika kode sumber asli tidak tersedia.

Person using a magnifying glass to investigate something closely

REA (Reverse Engineer Anything) adalah proyek open-source di morluto/rea yang menghubungkan agen AI ke alur kerja analisis perangkat lunak. Ini mengekspos operasi analisis melalui antarmuka baris perintah—perintah terminal yang diketik—dan server alat untuk aplikasi AI yang kompatibel. Sebuah agen adalah aplikasi AI yang dapat menggunakan alat di seluruh tugas multi-langkah. REA menyediakan akses ke alat analisis, bukan model AI yang mendasarinya.

Perbedaannya penting: menyelidiki aplikasi yang sudah selesai, menulis implementasi serupa, dan memulihkan kode sumbernya yang asli adalah pencapaian yang berbeda. Kegunaan REA tergantung pada bukti yang dikumpulkan, pemeriksaan yang diterapkan, dan tanggung jawab yang tetap ada. “Anything” adalah nama proyek, bukan jaminan bahwa setiap produk dapat dikreasi ulang dengan setia.

Reverse engineering: pembelajaran dari program yang sudah jadi

Reverse engineering berarti mempelajari cara kerja sesuatu dengan memeriksa hasil akhirnya. Bayangkan sebuah mesin tanpa gambar desain aslinya: memeriksa bagian-bagiannya dan perilakunya dapat mendukung desain baru, tetapi tidak memberikan gambar desain asli desainer. Demikian pula, memahami perilaku software tidak memulihkan kode sumber yang ditulis oleh pengembangnya.

Person using a wrench to investigate something closely

Untuk native executable, bentuk program yang siap diproses oleh processor, compiler menerjemahkan kode sumber menjadi instruksi mesin. Ini adalah operasi yang dipahami processor. Kompilasi juga dapat mengoptimalkan program, mengatur ulang atau menggabungkan pekerjaan sambil mempertahankan perilaku yang dimaksudkan. Hasilnya adalah software yang dapat dieksekusi, bukan arsip terkompresi dari proyek sumber.

Disassembly menyajikan instruksi mesin sebagai assembly yang dapat dibaca. Decompilation melangkah lebih jauh, menyimpulkan logika tingkat lebih tinggi yang mirip sumber yang disebut pseudocode. Tools seperti Ghidra menyediakan kedua tampilan:

1) Forward production path:
Original source
       ↓
Compile / optimize
       ↓
Native executable
2) Separate analysis path:
Native executable
       ↓
Disassembly / decompilation
       ↓
Assembly / inferred pseudocode
  Original names, comments and structure may be missing
       ↓
Behavior to verify

Kasus native-code: kompilasi menghasilkan executable; analisis menyimpulkan tampilan yang dapat dibaca dan perilaku untuk verifikasi. Tidak ada jalur balik yang dijamin ke file sumber asli.

Kehilangan informasi tidak merata. Komentar dan banyak nama dapat hilang, sementara string teks, beberapa nama, dan metadata deskriptif tetap ada. Optimasi dapat membuat struktur sumber yang familiar sulit dikenali. Implementasi sumber yang berbeda juga dapat menghasilkan perilaku mesin yang serupa, jadi rekonstruksi yang masuk akal tidak perlu cocok dengan ekspresi asli programmer.

Tidak setiap aplikasi adalah native machine code. JavaScript yang dikemas dapat berisi sumber yang dapat dibaca atau kode minified, diperpendek untuk distribusi. Membaca materi mirip sumber yang sudah ada dalam paket berbeda dari menyimpulkan pseudocode dari instruksi mesin. Apa yang bertahan menentukan pertanyaan apa yang dapat dijawab analisis.

Bagaimana REA mengubah pertanyaan menjadi loop bukti

Investigasi DX-Ball proyek dimulai dengan pertanyaan praktis: bagaimana posisi horizontal brick di layar menentukan panning suara, keseimbangan antara audio kiri dan kanan? Tampilan decompiler pertama menunjukkan panggilan yang mengonversi angka, tetapi meninggalkan input dan perhitungan di baliknya. Itu tidak cukup untuk menjelaskan posisi suara.

Tampilan instruksi mengungkapkan input dan aritmatika yang hilang. Menginspeksi fungsi yang memanggilnya menunjukkan bahwa input adalah koordinat layar brick. Membaca nilai yang disimpan memberikan angka tetap perhitungan dan pengaturan yang menskalakan panning.

Hasilnya adalah aturan konkret: pada skala biasa, pusat layar memetakan ke panning terpusat, sementara posisi di kedua sisi menggeser keseimbangan ke kiri atau kanan. Proyek rekonstruksi kemudian dapat menulis aturan itu dalam C dan membandingkannya dengan fungsi asli.

Presenter explaining a software workflow with connected process blocks

Empat peran membuat investigasi itu mungkin.

  • Anda menetapkan pertanyaan yang diotorisasi.
  • Agen memilih tindak lanjut dan menginterpretasi hasil.
  • REA menyediakan akses alat dan mengembalikan bukti.
  • Mesin analisis atau parser menginspeksi artefak target—file atau paket yang diperiksa.

Mesin native mencakup Ghidra, Hopper, dan IDA.

Koneksi menggunakan Model Context Protocol (MCP), cara standar untuk aplikasi AI menjangkau alat dan sistem eksternal. Server MCP REA adalah perangkat lunak yang mengekspos operasi tersebut, bukan mesin yang harus Anda sewa. Skill menyediakan instruksi investigasi untuk agen; server menyediakan akses ke operasi itu sendiri. Pertukaran inti terlihat seperti ini:

Your feature question
         ↓
Agent
         ↕ MCP
REA tool server
         ↕
Analysis engine / parser
         ↕
Target software

Permintaan berjalan menuju target; bukti kembali ke agen, yang menggunakannya untuk memilih pertanyaan berikutnya. Pertukaran berulang saat investigasi berkembang.

Agen mengoordinasikan tindak lanjut tersebut dan menghubungkan kode dan referensi yang dikembalikan ke dalam penjelasan. Catatan bukti mengidentifikasi file dan lokasi kode, memisahkan pengamatan dari inferensi dan temuan yang belum terselesaikan. Reviewer dapat melacak penjelasan kembali ke materi pendukungnya. Agen juga dapat menyusun kode kandidat dan tes, sebagai langkah terpisah dari menetapkan apa yang dilakukan asli.

Untuk target apa pun, bedakan inspeksi statis, yang membaca artefak tanpa menjalankan program, dari pengamatan atau interaksi runtime, yang memeriksanya saat berjalan. Di mana inspeksi itu terjadi juga terpisah dari di mana model memproses temuannya. Jika agen menggunakan model yang dihosting, hasil yang dikembalikan dapat meninggalkan mesin analisis.

Jenis software apa yang dapat diinspeksi REA?

Visibilitas tergantung pada target. Electron mengemas software desktop menggunakan teknologi web, sementara .NET dan Android mewakili keluarga aplikasi yang berbeda dengan jalur analisis yang berbeda. Masing-masing mengekspos informasi yang berbeda, seperti yang ditunjukkan tabel:

TargetApa yang dapat diungkapkanKondisi atau batas
⚙️ Native binariesInstruksi, pseudocode yang disimpulkan, string yang dipertahankan, panggilan, dan referensiAnalisis mendalam menggunakan engine seperti Ghidra, Hopper, atau IDA; output bukan source asli.
📦 JavaScript / ElectronModul yang dikemas, impor, hubungan aplikasi, dan source maps yang menghubungkan kode yang didistribusikan ke source saat adaInspeksi statis bawaan; minifikasi dan hubungan yang tidak terselesaikan dapat membatasi interpretasi.
📱 .NET / AndroidMetadata .NET dan instruksi lebih dekat ke source daripada kode mesin native; deklarasi paket Android dan metode yang dikompilasi ulangInspeksi .NET dasar bawaan dan statis; analisis metode Android dapat memerlukan tooling tambahan seperti JADX.
🌐 Browser-visible websitesStruktur halaman yang dikirimkan, skrip, dan permintaan/respons yang diamatiObservasi yang diotorisasi biasanya tidak mengungkapkan implementasi backend pribadi.

REA mendokumentasikan cakupan artefak yang lebih luas di luar kategori ini. Periksa gambaran target resmi dan dokumentasi terkini: persyaratan bervariasi menurut engine, platform host, target, dan rilis. Ini menjelaskan alur kerja inspeksi yang tersedia, bukan rekonstruksi terverifikasi dari setiap target.

Demo yang meyakinkan bukan rekonstruksi yang terverifikasi

Demonstrasi publik memberikan gambaran yang lebih konkret tentang apa yang dapat dilakukan REA. Dalam satu rekreasi kalkulator yang dibagikan online, analisis berbantuan AI menghasilkan versi Python dari GNOME Calculator. Bersama rekreasi yang terlihat seperti ini, proyek yang lebih sempit membandingkan perhitungan yang dibangun kembali secara langsung dengan yang asli.

Demonstrasi publik — dilaporkan dari sumber kedua
Rekreasi menyerupai GNOME Calculator dan cocok dengan hasil aritmatika dasar. Masalah pengubahan ukuran yang dilaporkan mengungkapkan ketidaksesuaian yang terlihat yang tidak akan ditangkap oleh pemeriksaan aritmatika yang berhasil.

Rekonstruksi fungsi yang dilaporkan proyek
Pameran DX-Ball melaporkan 3.205 kasus perbandingan x86 asli untuk satu fungsi pan suara ke posisi, ditambah byte yang dikompilasi yang cocok menggunakan kompiler historis.

Kalkulator mendemonstrasikan rekreasi yang terlihat; DX-Ball mendokumentasikan pemeriksaan perhitungan spesifik. Setiap hasil menjawab pertanyaan yang berbeda.

Illustration of a person circling the first item on a large verification checklist

Untuk DX-Ball, perbandingan mencakup posisi layar dan beberapa kekuatan panning. Mereka memeriksa nilai pengembalian fungsi C terhadap nilai yang dihasilkan dari menjalankan instruksi asli. Mengompilasi C itu dengan kompiler historis juga mereproduksi byte fungsi. Ini adalah dua pemeriksaan yang berbeda: persetujuan pada output yang diuji dan persetujuan pada fungsi yang dikompilasi, tanpa memerlukan teks sumber asli programmer.

GNOME Calculator juga memiliki kemampuan lanjutan, keuangan, dan pemrograman. Perbandingan aritmatika sederhana meninggalkan fitur-fitur tersebut tidak dinilai, daripada menunjukkan apakah fitur-fitur tersebut berfungsi atau gagal dalam rekreasi. Sumbernya bersifat publik, jadi tinjauan sumber mungkin merupakan titik awal yang lebih langsung ketika menjawab pertanyaan pemeliharaan Anda. Perkembangan yang berguna adalah dari kesamaan visual ke pemeriksaan perilaku yang dipilih, kemudian perbandingan sistematis untuk perilaku yang Anda butuhkan.

Di mana janji “apa pun” mencapai batasnya

Konteks sumber yang hilang dapat membuat komponen sulit diinterpretasikan. Optimisasi dapat mengaburkan logikanya, sementara obfuscation dengan sengaja membuat kode lebih sulit dipahami. Dependensi eksternal menciptakan celah lain: beberapa jalur eksekusi memerlukan input, layanan, atau kondisi yang tidak tersedia selama investigasi. Bahkan analisis yang cermat dapat meninggalkan kasus tepi yang tidak terselesaikan ketika fitur bergantung pada perilaku di luar komponen yang diperiksa.

Penyeimbang independen berasal dari laporan Ishank Choudhary tanggal 14 Oktober 2026, mencakup REA 6.4.0. Dia menemukan struktur aplikasi Electron yang berguna tetapi melewatkan koneksi preload: kode jembatan yang menghubungkan halaman Electron dengan kemampuan sisi desktop. Dia menguji alat statis tanpa mesin agen atau analisis native; temuan menyangkut rilis dan alur kerja tersebut, bukan setiap versi saat ini.

Robot beside a warning symbol illustrating the limits of AI-assisted tools

Laporan juga menggambarkan hubungan yang dihilangkan dari ringkasan aplikasi karena anggaran hasil—batas pada output yang dipertahankan. Beberapa fakta tetap pada tingkat file tanpa koneksi mereka muncul dalam ringkasan. Pemindaian yang selesai tanpa kecocokan oleh karena itu berarti analisis yang dipertahankan tidak menemukan hubungan, bukan bahwa fitur tidak ada. Batas cakupannya menjelaskan ketinggalan.

Upaya dimulai dengan menyiapkan mesin analisis dan menyediakan kekuatan pemrosesan dan memori yang dibutuhkannya. Penggunaan model membawa pertimbangan tersendiri: konteks menentukan berapa banyak materi yang dapat dipertimbangkannya sekaligus, sementara token adalah unit teks yang diproses. Kueri berulang menambah upaya, diikuti dengan pengujian dan perbaikan manusia setelah output pertama. Tagihan aktual, kebutuhan perangkat keras, dan waktu penyelesaian bergantung pada target dan pertanyaan. Mengukur kontribusi REA sendiri terhadap kecepatan atau kualitas akan memerlukan perbandingan terkontrol.

Aplikasi berguna di luar menyalin aplikasi

Untuk pengembang, self-hoster, dan tim migrasi, nilainya sering terletak pada menjawab pertanyaan pemeliharaan atau kompatibilitas tertentu. Skenario berikut bersifat ilustratif, bukan penyebaran yang diuji atau hasil dari penerbit ini.

🛠️ Pengembang / pengelola

Seorang pengelola yang membandingkan dua versi resmi dari utilitas warisan mungkin bertanya mengapa hasil impor berubah. REA dapat membantu menemukan logika penguraian dan memandu pemeriksaan regresi. Jika sumber lengkap sudah menjawab pertanyaan itu, mulai dari sana; jika tidak, validasi penyebab yang disimpulkan terhadap perilaku yang berubah.

🏠 Self-hoster

Seorang self-hoster yang bekerja dengan format file lokal lama mungkin menggunakan REA untuk memahami bidangnya. Temuan tersebut dapat membantu mendefinisikan jembatan kompatibilitas yang diimplementasikan secara independen. Pengganti drop-in yang sah untuk ketergantungan proprietary masih memerlukan pengujian kasus yang tidak terdokumentasi dan pemeriksaan hak yang berlaku.

💼 Bisnis / tim migrasi

Tim migrasi mungkin perlu mengetahui apakah perilaku ekspor yang diperlukan dapat didukung sebelum memesan implementasi. REA dapat membantu membangun kelayakan teknis dan mengklarifikasi apa yang perlu dibangun. Temuan itu dapat menginformasikan keputusan investasi, sementara perkiraan pengiriman, komitmen dukungan, dan kompatibilitas penuh memerlukan penilaian lebih lanjut.

Pendidikan dan penelitian keamanan yang resmi dapat menggunakan pendekatan yang sama. Sebelum beralih dari penjelasan ke tindakan lebih lanjut, tentukan apa yang dapat diperiksa, dijalankan, atau dibagikan. Ruang lingkup itu mengatur investigasi bahkan ketika pertanyaan teknis tampak sederhana.

Akses teknis tidak menyelesaikan otorisasi, privasi, atau kepercayaan

Izin untuk memeriksa file dapat berbeda dari izin untuk menjalankannya, mengamati lalu lintasnya, menerbitkan temuan, atau menggunakan kembali materi yang dilindungi. Hak tergantung pada hukum yang berlaku dan kontrak: hak interoperabilitas bersyarat, termasuk yang ada di AS, bukan aturan di seluruh dunia, dan memiliki salinan tidak mengotorisasi setiap operasi.

Person beside a rules document and a warning sign

Lisensi MIT REA mencakup kode yang ditulis REA, bukan aplikasi target, aset yang dilindungi, atau output yang dihasilkan secara otomatis. Mesin analisis komersial memerlukan lisensi mereka sendiri. Penafian penggunaan yang bertanggung jawab mendefinisikan penggunaan yang dimaksudkan dan batas dukungan komunitas tanpa mengubah MIT; kode sumber yang dipulihkan tidak secara otomatis menjadi sumber terbuka atau dapat didistribusikan kembali.

⚠️ Peringatan: Risiko privasi dan eksekusi

Analisis lokal dapat mengirimkan temuan—termasuk kode, kredensial, atau data pribadi—ke penyedia model agen. Periksa data keluar dan syarat penyedia sebelum menganalisis target rahasia. REA bukan sandbox: penguraian statis dapat mengekspos kerentanan alat, sementara menjalankan atau berinteraksi dengan target dapat mengubah file atau mempengaruhi akun dan layanan. Tinjau operasi aktual dan penahanan, bukan hanya tempat alat berjalan.

Gunakan paket resmi dan sumber pembaruan, tetapi juga tinjau dependensi, output yang dihasilkan, kepemilikan pemeliharaan, dan bagaimana perbaikan tiba. Terapkan pengawasan yang sama terhadap perangkat lunak vendor, proyek sumber terbuka, dan alternatif yang dihasilkan AI: asal resmi, harga, ketersediaan sumber, atau membangun dari sumber tidak dapat menggantikan riwayat asal dan tinjauan yang jelas.

Apa yang REA berarti untuk kepemilikan perangkat lunak dan cloud

Developer presenting a code window connected to an API cloud

Merekonstruksi perangkat lunak sekali saja tidak mendanai masa depannya. Seseorang harus terus menambal kerentanan dan menjaga kompatibilitas. Mendukung pengguna dan mengembangkan produk juga memerlukan pekerjaan berkelanjutan. Investigasi yang lebih mudah diakses dapat melengkapi pekerjaan ahli; contoh-contoh ini tidak menunjukkan pengembang atau perangkat lunak berbayar menjadi usang. Pembaruan yang dapat diandalkan dan dukungan yang akuntabel tetap menjadi alasan untuk memilih produk, bahkan ketika implementasinya menjadi lebih mudah dipahami.

Vendor dapat merespons dengan memindahkan lebih banyak fungsionalitas ke pengiriman jarak jauh saja, tetapi bukti di sini tidak membuktikan tren yang didorong REA. Perbedaan teknis adalah klien versus server: browser menerima kode antarmuka dan respons, sementara implementasi sisi server biasanya tetap bersama operator.

Browser / client: delivered UI and scripts
Inspectable to the extent delivered / authorized
                   ↕
           Requests / responses
                   ↕
Server: application logic and database
Behavior observed ≠ exact private source revealed

Batas visibilitas, bukan batas keamanan lengkap: sumber daya dan respons browser dapat diperiksa; kode backend biasanya tetap jarak jauh. Data yang terekspos dan masalah keamanan lainnya tetap mungkin terjadi.

Respons API tersebut—data yang ditukar dengan layanan—mungkin mengungkapkan cukup tentang perilaku fitur untuk menginformasikan implementasi baru. Rute itu bergantung pada input dan output yang dapat diamati daripada akses ke kode backend. Menjaga kode tetap jarak jauh juga tidak menghilangkan bug, data yang terekspos, atau kemungkinan investigasi yang berwenang.

Dengan SaaS, perangkat lunak sebagai layanan, vendor mengoperasikan aplikasi.

  • Self-hosting aplikasi yang berwenang memberi Anda kontrol lebih besar atas penyebaran. Anda kemudian bertanggung jawab untuk menambal dan mengelola akses.
  • Cadangan, pemantauan, dan pemulihan juga menjadi bagian dari menjaga aplikasi tetap berjalan.

AlexHost Ubuntu VPS adalah salah satu opsi infrastruktur untuk aplikasi yang ditinjau atau jembatan kompatibilitas. Akses root penuh memberi Anda kontrol atas sistem operasi tamu. Ini tidak mengamankan aplikasi secara otomatis atau membuat pemrosesan model eksternal menjadi pribadi.

Kesimpulannya: investigasi yang lebih mudah, bukan pemulihan otomatis

Jendela kalkulator yang dapat dikenali dapat menjadi hasil pertama yang menjanjikan. Pertanyaan berikutnya adalah apakah perilaku yang Anda butuhkan telah diperiksa dan siapa yang akan memeliharanya. REA membantu menyelidiki perilaku tersebut; implementasi, verifikasi, dan operasi yang dapat diandalkan tetap menjadi pekerjaan terpisah.

Untuk membaca lebih lanjut, mulai dengan proyek REA resmi dan showcase DX-Ball-nya. Fokus pada satu pertanyaan kecil yang sah dan bukti di balik jawabannya. Itu adalah titik awal yang lebih berguna daripada menanyakan apakah AI dapat menyalin seluruh produk.