1 poin oleh GN⁺ 2026-02-06 | 1 komentar | Bagikan ke WhatsApp
  • Ghidra MCP Server adalah server Model Context Protocol (MCP) yang menghubungkan kemampuan reverse engineering Ghidra dengan framework AI dan otomasi
  • Melalui 110 alat MCP dan 132 endpoint, server ini menyediakan kemampuan analisis biner yang luas seperti analisis fungsi, penjelajahan struktur data, dan ekstraksi string
  • Mendukung pemrosesan batch, transaksi atomik, dan analisis real-time, serta dapat dijalankan dengan deployment Docker dan mode headless
  • Melalui fitur transfer dokumentasi lintas-biner, dokumentasi fungsi dapat dicocokkan secara otomatis antarversi biner yang berbeda
  • Platform untuk mewujudkan workflow reverse engineering berbasis AI dengan stabilitas tingkat produksi

Gambaran umum

  • Ghidra MCP Server adalah server MCP kelas produksi yang menghubungkan engine analisis Ghidra dengan alat AI dan sistem otomasi
    • Mengimplementasikan Model Context Protocol secara penuh untuk mendukung interaksi dengan model AI
    • Mengekspos kemampuan Ghidra melalui HTTP REST dan protokol MCP (stdio/SSE)

Fitur utama

  • Integrasi MCP inti
    • Kompatibel penuh dengan MCP, menyediakan 110 alat MCP, serta mendukung operasi batch dan transaksi atomik
    • Integrasi real-time dengan engine analisis Ghidra
  • Analisis biner
    • Decompilasi fungsi, call graph, cross-reference, pembuatan struktur data otomatis
    • Mencakup ekstraksi string, analisis tabel simbol, pemetaan memori, serta fitur transfer dokumentasi lintas-biner
  • Pengembangan dan otomasi
    • Pipeline otomasi build-test-deploy-verify
    • Pembuatan, eksekusi, dan pengelolaan skrip Ghidra, perbandingan multi-program, serta rename dan pemberian anotasi massal

Instalasi dan menjalankan

  • Prasyarat: Java 21 LTS, Apache Maven 3.9+, Ghidra 12.0.2, Python 3.8+
  • Langkah instalasi
    • Clone repositori lalu pasang dependensi Python
    • Salin 14 library Ghidra lalu build dengan Maven
    • Deploy plugin ke folder ekstensi Ghidra
  • Cara menjalankan
    • Pilih transport stdio (default, untuk alat AI) atau transport SSE (untuk klien Web/HTTP)
    • Di dalam Ghidra, jalankan Tools > GhidraMCP > Start MCP Server

Performa dan stabilitas

  • Implementasi penuh 110 alat MCP, dengan waktu respons di bawah 1 detik untuk sebagian besar operasi
  • Struktur operasi batch yang mencapai pengurangan 93% panggilan API
  • Semua operasi diproses sebagai transaksi atomik untuk menjamin keandalan
  • Menyediakan skrip deployment otomatis yang sadar versi

Konfigurasi API

  • Operasi inti: pemeriksaan koneksi, pengambilan metadata, informasi versi, penelusuran entry point
  • Analisis fungsi: daftar fungsi, pencarian nama, decompilasi, graf relasi pemanggilan, evaluasi kelengkapan dokumentasi
  • Memori dan data: daftar segmen, disassembly, cross-reference, pemeriksaan isi memori
  • Dokumentasi lintas-biner: pembuatan hash fungsi, ekspor/penerapan dokumentasi, pencocokan berbasis hash
  • Manajemen tipe data: pembuatan struct dan enum, modifikasi field, penggabungan tipe duplikat
  • Manajemen simbol dan label: daftar import/export, analisis string, namespace dan manajemen variabel global
  • Rename dan anotasi: rename fungsi, data, dan variabel, pengaturan anotasi massal
  • Sistem tipe: penetapan prototype fungsi, pengaturan tipe variabel, penelusuran calling convention
  • Manajemen skrip Ghidra: daftar skrip, eksekusi, penyimpanan, modifikasi, penghapusan
  • Dukungan multi-program: berpindah antarprogram terbuka, daftar file proyek, perbandingan dokumentasi
  • Alat analisis: penelusuran fungsi yang belum terdefinisi, pencarian berbasis string, penelusuran pola byte

Arsitektur

  • Struktur alat AI/otomasi ↔ MCP Bridge ↔ Plugin Ghidra
    • bridge_mcp_ghidra.py: server Python yang mengubah protokol MCP menjadi panggilan HTTP
    • GhidraMCP.jar: plugin Java yang mengekspos kemampuan Ghidra melalui HTTP
    • ghidra_scripts/: mencakup lebih dari 70 skrip otomasi

Pengembangan dan build

  • Menyediakan build berbasis Maven dan skrip deployment PowerShell
  • Struktur proyek terdiri dari server Python, plugin Java, library Ghidra, dokumentasi, contoh, dan skrip build
  • 14 library wajib (sekitar 37MB) perlu disalin dari jalur instalasi Ghidra
  • Mencakup deployment otomatis, operasi batch, transaksi atomik, dan logging terperinci

Dokumentasi dan workflow AI

  • Folder docs/ mencakup dokumentasi lengkap, struktur proyek, konvensi penamaan, dan notasi Hungarian
  • Prompt workflow AI: menyediakan prompt untuk dokumentasi fungsi, pencocokan antarversi, dan quick start
  • Riwayat rilis: detail versi per rilis dicatat dalam CHANGELOG.md dan docs/releases

Lisensi dan status

  • Menggunakan Apache License 2.0
  • Versi 2.0.0, implementasi penuh 110 alat MCP, mencakup lebih dari 70 skrip Ghidra
  • Siap untuk deployment di lingkungan produksi, cocok untuk reverse engineering berbasis AI

Proyek terkait

  • re-universe: platform analisis kemiripan biner skala besar berbasis PostgreSQL
  • cheat-engine-server-python: server MCP untuk analisis memori dinamis dan debugging

Ucapan terima kasih

  • Menyampaikan terima kasih kepada tim Ghidra, pengembang Model Context Protocol, dan para kontributor komunitas

1 komentar

 
GN⁺ 2026-02-06
Komentar Hacker News
  • Proyek ini dibuat karena proses reverse engineering beberapa versi perangkat lunak terasa sangat menyakitkan
    Intinya adalah sistem hashing fungsi yang dinormalisasi, yang menghasilkan hash berdasarkan struktur logis fungsi (instruksi, operand, alur kontrol)
    Berkat itu, meskipun biner dibangun ulang atau di-rebase, fungsi yang sama tetap memiliki hash yang sama, dan semua komentar, tipe, serta nama dipindahkan secara otomatis
    Ini mencakup 110 alat melalui jembatan MCP untuk Ghidra, dan bisa diintegrasikan dengan Claude, Claude Code, atau klien MCP lainnya
    Sudah diverifikasi dengan beberapa versi patch Diablo II, dan berhasil memindahkan lebih dari 1.300 anotasi fungsi secara otomatis
    Integrasi CI juga dimungkinkan lewat mode headless berbasis Docker
    Di v2.0.0 ditambahkan binding khusus localhost, pengaturan timeout, penghapusan label, konfigurasi .env, dan lainnya
    Diskusi tentang pendekatan hashing maupun desain MCP sangat diterima

    • Penasaran apa bedanya dibanding FunctionID bawaan Ghidra atau plugin BinDiff
    • Penasaran bagaimana perbandingannya dengan ReVa
      Panduan instalasinya tampaknya belum lengkap. Setelah dipasang di Ghidra dan di-restart, GhidraMCP tidak muncul di menu Tools
    • Saya mencoba memakainya langsung, tetapi Ghidra tidak mengenali pluginnya
      Ingin tahu apakah GH Discussions adalah kanal komunikasi yang tepat
    • Penasaran apa bedanya dengan server Ghidra MCP lain seperti pyghidra-mcp, ReVa, dan GhidrAssistMCP
    • Ingin tahu apakah mendukung dekompilasi biner Android
  • Saya pernah mencoba server Ghidra MCP milik LaurieWired, dan analisis biner serta pembuatan keygen jadi sangat menyenangkan dan mudah
    Saya pasti akan mencoba server MCP ini juga

    • Dulu ada perangkat lunak yang saya buat meminta autentikasi ke server yang sudah tidak ada lagi, jadi tidak bisa dipasang. Saya sempat mencoba membuat Ghidra MCP sendiri tetapi gagal
      Menarik sekali proyek ini muncul pada saat seperti ini
    • Branch ini 110 commit lebih maju daripada main LaurieWired/GhidraMCP
  • Setelah melihat rekan kerja memakai Ghidra bersama Claude untuk meretas game River Ride, saya juga mencobanya
    Saya mem-porting game lama untuk PowerPC ke Apple Silicon, dan meskipun sudah mencoba beberapa MCP, Claude Code sering berhalusinasi soal kode
    Pada akhirnya saya mendapat hasil terbaik dengan mode headless Cursor + GPT 5.2 Codex

    • Saya juga sedang bereksperimen dengan reverse engineering, dan GPT-5.2 Codex jauh lebih unggul daripada Claude
      Misalnya, ia memulihkan sepenuhnya file C64-SID sepanjang 1.300 baris hanya dalam 30 menit
      Saat ini saya sedang membuat sistem multi-agen untuk merekayasa balik seluruh game C64
      Lihat contoh kode
  • Reverse engineering dengan AI masih diremehkan
    Saya berhasil mengekstrak kunci kriptografi dari aplikasi Android, dan kuncinya ternyata disembunyikan di dalam shader serta hanya bisa diperoleh dengan benar-benar menjalankan shader tersebut

    • Saya memberi Claude sebuah game Unity lama bersama seorang teman, dan ia membuat port TypeScript yang lengkap
      Sekarang kami sedang menambahkan fitur multipemain di browser
    • Menarik bahwa Anda mengekstrak kunci dari shader. Ingin tahu apakah Anda bisa menceritakan metode spesifiknya lebih lanjut
    • Saya juga mencoba menghubungkan MCP dan beberapa alat untuk memulihkan source code dari biner serta mendeteksi kerentanan, dan hasilnya hampir identik dengan source aslinya
  • Saya sudah berbulan-bulan memakai versi 15 alat dari LaurieWired, dan rasanya seperti struktur internal aplikasi terlihat sepenuhnya transparan
    Jadi bisa dipakai untuk melacak bug, membuat plugin, sampai memodifikasi aplikasi
    Untuk kode Objective-C, saya juga memakai Hopper Disassembler
    Makalah terkait: Full recompilation with LLMs and Ghidra

    • Menyamakan reverse engineering aplikasi dengan OSS bukan kesan yang baik dari sudut pandang saya sebagai karyawan GitHub
  • Reverse engineering dengan LLM benar-benar diremehkan
    Saya sedang memulihkan game berusia 30 tahun, dan saat hasil dekompilasi Ghidra serta informasi simbol diberikan ke model dengan pendekatan RAG, hasilnya luar biasa
    Bahkan model murah seperti Gemini 3 Flash pun cukup layak dipakai

    • Tetapi Gemini sering menghasilkan pseudocode yang tidak lengkap
      Sebagian fungsi dihilangkan atau blok switch hanya dibiarkan sebagai komentar
      Sebaliknya, Claude Opus atau Qwen3-30B-A3B menghasilkan kode yang jauh lebih utuh
      Jendela konteks besar milik Gemini memang unggul, tetapi karena PCode sangat bertele-tele, dalam praktiknya tetap banyak keterbatasan
  • Saya sempat mengira menghubungkan terlalu banyak alat ke MCP akan menurunkan performa, dan ini terlihat bukan desain yang baik

    • Sekarang masalah alat MCP sampai batas tertentu ditangani dengan lazy loading
      Namun, alat yang berpusat pada transformasi API tetap kurang kompatibel dengan LLM
    • Alat berbentuk skill berbasis vibecoded tampaknya akan jauh lebih efisien
  • Saya bukan reverse engineer, tetapi saya memperbaiki dekryptor ransomware dengan Claude Code dan Ghidra MCP
    Saat berhasil memulihkan data berukuran beberapa terabyte, rasanya seperti mendapat kekuatan super

    • Ada yang bercanda, “Dengan kekuatan super itu, bukannya Anda juga bisa membuat enkriptornya lebih andal?”
  • Saya pikir AI bisa menunjukkan kemampuan supermanusia dalam analisis biner
    Saat ini pekerjaan itu produktivitasnya rendah dan membosankan, tetapi dengan AI bisa dimanfaatkan untuk audit keamanan atau pertahanan terhadap serangan rantai pasok

    • Betul, apalagi AI juga bisa menganalisis dirinya sendiri
      “skill-snitch” milik MOOLLM memantau cara kerja skill lain, dan “cursor-mirror” melihat sepenuhnya status internal Cursor
      Skill-skill ini bisa dikombinasikan dan dipanggil secara rekursif, sehingga bekerja dengan pendekatan “speed of light” yang jauh lebih cepat daripada MCP
      Referensi terkait: Leela MOOLLM Demo Transcript, speed-of-light skill, skill-snitch report
  • Saya penasaran mengapa ini tidak dibuat berbasis CLI. Belakangan ini LLM dan agen tampaknya lebih mahir menangani CLI

    • Saya rasa itu hanya berlaku kalau CLI tersebut ada di data pelatihan. Kalau alatnya baru, dokumentasinya tetap harus dimasukkan seluruhnya ke konteks
    • Proyek ini dimulai sebelum MCP memakan konteks terlalu besar (LaurieWired/GhidraMCP)
    • Belakangan ini alat seperti Claude Code mendukung pemuatan berbasis pencarian alat, jadi beban konteks MCP sudah jauh berkurang
    • Saya juga berpikir begitu. Kalau deskripsi 110 alat selalu masuk ke konteks, itu hanya akan menambah noise