Reverse engineering (rekayasa balik) adalah seni membongkar sesuatu yang sudah jadi untuk memahami cara kerjanya, tanpa punya cetak birunya. Dulu pekerjaan ini identik dengan ahli yang berjam-jam menatap kode assembly. Kini model bahasa besar (LLM) mulai ikut duduk di meja yang sama: menjelaskan fungsi, menamai ulang variabel, bahkan menjalankan alat analisis sendiri. Artikel ini membahas apa yang sebenarnya bisa dikerjakan AI, alat yang dipakai, contoh hasil nyata, batas dan risikonya, serta cara memulai secara etis.
Apa itu reverse engineering?
Targetnya beragam, dan kata "anything" di judul memang pantas dipertanyakan: tiap target punya teknik berbeda.
| Target | Yang dicari | Alat umum |
|---|---|---|
| Program biner (.exe, ELF, APK) | Logika program, alur data, perilaku malware | Ghidra, IDA, Binary Ninja, radare2 |
| API dan protokol jaringan | Format permintaan/respons, alur autentikasi | Wireshark, mitmproxy, DevTools browser |
| Firmware perangkat | Sistem file, kredensial tertanam, celah | binwalk, Ghidra, emulator QEMU |
| Format file | Struktur byte dan makna tiap field | Hex editor, Kaitai Struct |
| Game lawas | Source code C yang menghasilkan biner yang sama persis | Kompilator asli, asm-differ, Ghidra |
Kegunaan yang sah sangat banyak: menganalisis malware, mencari celah keamanan sebelum penjahat menemukannya, interoperabilitas (membuat software kompatibel dengan format lama), pelestarian software dan game yang sudah tidak dijual, serta belajar bagaimana kompilator bekerja.
Di mana AI membantu?
Bagian paling melelahkan dari reverse engineering bukan satu "momen ajaib", tetapi ribuan fungsi bernama FUN_00401a30 dan variabel bernama local_28. Di sinilah LLM berguna:
- Menjelaskan kode. Tempelkan hasil dekompilasi sebuah fungsi, dan model menjelaskan maksudnya dalam bahasa manusia ("fungsi ini memvalidasi header file lalu membaca panjang data").
- Menamai ulang. Model mengusulkan nama fungsi dan variabel yang bermakna, seperti
parse_headerdanbuffer_len. - Dekompilasi saraf. Model dilatih khusus untuk mengubah assembly kembali menjadi kode sumber.
- Bekerja sebagai agen. Model tidak hanya menjawab, tetapi memanggil alat: membuka fungsi, mengikuti referensi silang, mengganti nama, lalu mengulang sampai paham.
- Membaca log dan lalu lintas jaringan. Untuk API, model membantu mengenali pola endpoint, parameter, dan struktur JSON dari hasil tangkapan trafik yang sah milik sendiri.
Alat yang dipakai
Ghidra + MCP
Ghidra adalah kerangka reverse engineering sumber terbuka yang dikembangkan NSA. Model Context Protocol (MCP) adalah standar untuk menghubungkan LLM ke alat luar. Proyek GhidraMCP (lisensi Apache-2.0) menggabungkan keduanya: plugin di dalam Ghidra membuka server HTTP lokal, lalu server MCP berbasis Python meneruskannya ke klien seperti VS Code atau Claude Code. Dengan begitu model dapat mendekompilasi fungsi, melihat daftar import/export, dan mengganti nama method serta data, tanpa Anda menyalin-tempel satu per satu. Ada pula varian lain seperti GhydraMCP.
Model lokal
Menganalisis biner yang sensitif atau malware sering tidak boleh diunggah ke layanan cloud. Seorang praktisi mendokumentasikan penyiapan Ghidra, GhidrAssist, dan GhidraMCP dengan model lokal lewat Ollama. Temuannya jujur: fitur "Explain" yang menjelaskan fungsi di bawah kursor paling berguna, tetapi fitur penggantian nama otomatis jarang berjalan, dan beberapa model lokal (misalnya DeepSeek-R1 pada pengujiannya) belum mendukung pemanggilan alat MCP dengan baik.
Model khusus dekompilasi
Makalah LLM4Decompile (EMNLP 2024) merilis rangkaian model terbuka berukuran 1,3 miliar hingga 33 miliar parameter. Ada dua pendekatan: model end-to-end yang menerjemahkan assembly langsung menjadi kode C, dan model refined yang memperbaiki keluaran Ghidra. Para penulis melaporkan model mereka mengungguli GPT-4o dan Ghidra pada tolok ukur HumanEval dan ExeBench dalam hal re-executability (kode hasil dekompilasi bisa dikompilasi ulang dan menghasilkan keluaran yang sama). Catatan penting dari makalah yang sama: kinerja turun tajam pada kode yang diobfuskasi.
Contoh nyata
1. Mencari celah di SQLite
Pada Oktober 2024, tim Big Sleep (Google Project Zero dan Google DeepMind) melaporkan bahwa agen LLM menemukan stack buffer underflow yang dapat dieksploitasi di SQLite, tepatnya pada fungsi seriesBestIndex. Celah ditemukan sebelum rilis resmi dan diperbaiki pengembang pada hari yang sama, sehingga pengguna tidak terdampak. Metodenya variant analysis: agen mulai dari sebuah commit terbaru lalu mencari bug serupa yang belum diperbaiki. Para penulisnya sendiri menekankan hasil ini "sangat eksperimental" dan fuzzer khusus target kemungkinan sama efektifnya. Lihat tulisan resmi Project Zero.
2. Mengembalikan source code game lawas
Komunitas matching decompilation berusaha menulis ulang game konsol lama menjadi kode C yang, saat dikompilasi dengan kompilator aslinya, menghasilkan biner identik byte demi byte. Panduan AI-Assisted Decompilation for Retro Games menjelaskan alurnya: agen AI menulis kandidat kode C, kompilator asli membangunnya, alat pembanding seperti asm-differ menunjukkan selisih instruksi, lalu agen merevisi sampai cocok. Salah satu proyek yang dirujuk, BFM-decomp, melaporkan 218 biner yang identik byte demi byte.
Pelajaran terpentingnya ada pada verifikasi. Kode yang "tampak benar" tidak cukup. Pencocokan byte menjadi hakim yang tidak bisa dibohongi, sehingga halusinasi model langsung ketahuan. Prinsip ini bisa Anda tiru di bidang lain: selalu sediakan cara otomatis untuk menguji klaim model.
Batas dan risiko
- Halusinasi. Model bisa menjelaskan fungsi dengan sangat meyakinkan tetapi keliru. Perlakukan setiap penjelasan sebagai hipotesis, lalu uji dengan debugger atau eksekusi.
- Obfuskasi. Kode yang sengaja dikacaukan (control-flow flattening, packing) masih menjadi musuh besar, seperti yang diakui makalah LLM4Decompile.
- Konteks terbatas. Biner besar tidak muat dalam satu percakapan. Hasil bergantung pada seberapa baik alat memecah pekerjaan.
- Serangan terhadap agen analisis. Makalah "Automatically Attacking Software Reverse Engineering AI Agents" (Mei 2026) menunjukkan bahwa penyerang dapat menyisipkan prompt injection di string dalam program. Saat agen mendekompilasi dan membaca string itu, laporan analisisnya bisa dibelokkan tanpa mengubah perilaku program. Artinya: biner yang tidak tepercaya adalah masukan tidak tepercaya, termasuk bagi AI yang membacanya. Jalankan analisis di mesin virtual terisolasi dan jangan beri agen izin yang berlebihan.
- Privasi. Mengirim biner atau kode milik perusahaan ke layanan cloud bisa melanggar kebijakan. Pertimbangkan model lokal.
Etika dan hukum
Reverse engineering itu sah dalam banyak konteks, tetapi bukan tanpa batas. Perjanjian lisensi (EULA) sering melarangnya, dan hukum hak cipta di tiap negara punya pengecualian yang berbeda untuk interoperabilitas, riset keamanan, dan pelestarian. Aturan umum yang aman:
- Hanya bongkar software, perangkat, atau layanan milik Anda sendiri, atau yang Anda punya izin tertulis untuk diuji (program bug bounty, lab CTF, proyek sumber terbuka).
- Jangan memakai hasilnya untuk membajak, menghindari perlindungan lisensi, atau menyerang sistem orang lain.
- Untuk API pihak ketiga, baca syarat layanannya. Menangkap trafik aplikasi Anda sendiri berbeda dengan mengakses data orang lain.
- Jika menemukan celah, laporkan secara bertanggung jawab kepada vendor.
Ini informasi umum, bukan nasihat hukum. Jika ragu pada kasus tertentu, konsultasikan dengan ahli hukum.
Cara memulai
- Kuasai dasarnya dulu. Pahami cara kerja memori, pointer, dan bahasa C. Tanpa itu, Anda tidak bisa menilai apakah penjelasan AI benar. Mulai dari dasar-dasar pemrograman.
- Pasang Ghidra dan bongkar program kecil buatan Anda sendiri yang dikompilasi dari C. Anda tahu jawabannya, jadi mudah memeriksa tebakan AI.
- Latihan di lingkungan legal: tantangan CTF kategori reversing dan crackme yang memang disediakan untuk belajar.
- Tambahkan AI secara bertahap. Minta model menjelaskan fungsi yang sudah Anda pahami, bandingkan, baru lanjut ke fungsi asing.
- Selalu verifikasi. Uji hipotesis dengan debugger, eksekusi, atau perbandingan keluaran.
Pola pikir ini sejalan dengan bahasan Masih Relevankah Belajar Coding di Era AI?: AI mempercepat pekerjaan, tetapi pemahaman dan tanggung jawab tetap di tangan manusia.
Kesimpulan
AI belum bisa "membongkar apa saja" dengan sekali klik. Yang nyata terjadi adalah pergeseran: pekerjaan membosankan seperti menamai fungsi dan membaca ribuan baris dekompilasi dapat didelegasikan, sementara manusia fokus pada hipotesis, pengujian, dan keputusan. Hasil terbaik muncul ketika AI dipasangkan dengan verifikasi yang ketat, seperti pencocokan byte atau kompilasi ulang. Dan karena AI sendiri bisa ditipu oleh biner yang dirancang jahat, kewaspadaan tetap wajib. Karena bidang ini bergerak cepat, selalu cek sumber resminya untuk versi dan kemampuan terbaru.
Sumber
- GitHub: LaurieWired/GhidraMCP, MCP server untuk reverse engineering dengan Ghidra
- GitHub: starsong-consulting/GhydraMCP
- GitHub: NationalSecurityAgency/ghidra
- arXiv 2403.05286: LLM4Decompile: Decompiling Binary Code with Large Language Models (EMNLP 2024)
- Google Project Zero: From Naptime to Big Sleep (1 November 2024)
- arXiv 2605.30667: Automatically Attacking Software Reverse Engineering AI Agents (Mei 2026)
- Retro Reversing: AI-Assisted Decompilation for Retro Games
- ByteBreach: Reverse Engineering Binaries With AI
Komentar (0)
Masuk / Daftar