1 puan yazan GN⁺ 2026-02-06 | 1 yorum | WhatsApp'ta paylaş
  • Ghidra MCP Server, Ghidra’nın tersine mühendislik yeteneklerini yapay zeka ve otomasyon çerçeveleri ile bağlayan bir Model Context Protocol (MCP) sunucusu
  • 110 MCP aracı ve 132 endpoint üzerinden fonksiyon analizi, veri yapısı keşfi, string çıkarma gibi geniş kapsamlı ikili analiz yetenekleri sunuyor
  • Toplu işleme, atomik transaction ve gerçek zamanlı analiz desteği sunuyor; Docker dağıtımı ve headless modda çalıştırılabiliyor
  • Cross-binary dokümantasyon aktarımı özelliğiyle farklı ikili sürümler arasında fonksiyon dokümantasyonunu otomatik eşliyor
  • Yapay zeka destekli tersine mühendislik iş akışlarını üretim düzeyinde kararlılıkla hayata geçirebilen bir platform

Genel Bakış

  • Ghidra MCP Server, Ghidra’nın analiz motorunu yapay zeka araçları ve otomasyon sistemleriyle bağlayan üretim sınıfı bir MCP sunucusu
    • Model Context Protocol’ü eksiksiz uygulayarak yapay zeka modelleriyle etkileşimi destekliyor
    • Ghidra’nın yeteneklerini HTTP REST ve MCP protokolü (stdio/SSE) üzerinden açığa çıkarıyor

Başlıca Özellikler

  • Çekirdek MCP entegrasyonu
    • MCP ile tam uyumlu, 110 MCP aracı sunuyor, toplu işlemleri ve atomik transaction’ları destekliyor
    • Ghidra’nın analiz motoruyla gerçek zamanlı entegrasyon sağlıyor
  • İkili analiz
    • Fonksiyon decompile etme, çağrı grafiği, çapraz referanslar, veri yapılarının otomatik oluşturulması
    • String çıkarma, sembol tablosu analizi, bellek eşlemesi ve Cross-binary dokümantasyon aktarımı özelliğini içeriyor
  • Geliştirme ve otomasyon
    • Build-test-deploy-doğrulama otomasyon pipeline’ı
    • Ghidra script’leri oluşturma, çalıştırma ve yönetme; çoklu program karşılaştırması; toplu yeniden adlandırma ve yorum ekleme

Kurulum ve Çalıştırma

  • Gereksinimler: Java 21 LTS, Apache Maven 3.9+, Ghidra 12.0.2, Python 3.8+
  • Kurulum adımları
    • Depoyu clone ettikten sonra Python bağımlılıklarını kurun
    • 14 Ghidra kütüphanesini kopyalayın ve Maven ile build edin
    • Eklentiyi Ghidra extension klasörüne deploy edin
  • Çalıştırma biçimi
    • Stdio taşıması (varsayılan, yapay zeka araçları için) veya SSE taşıması (Web/HTTP istemcileri için) seçilebilir
    • Ghidra içinde Tools > GhidraMCP > Start MCP Server yolunu izleyin

Performans ve Kararlılık

  • 110 MCP aracı eksiksiz uygulanmış; çoğu işlemde 1 saniyenin altında yanıt süresi sağlanıyor
  • API çağrılarını %93 azaltan bir toplu işlem yapısı sunuyor
  • Tüm işlemler atomik transaction olarak yürütülerek güvenilirlik sağlanıyor
  • Sürüm farkındalığına sahip otomatik deploy script’leri sunuluyor

API Yapısı

  • Temel işlemler: bağlantı kontrolü, metadata sorgulama, sürüm bilgisi, entry point keşfi
  • Fonksiyon analizi: fonksiyon listesi, ada göre arama, decompile, çağrı ilişkisi grafiği, dokümantasyon tamlık değerlendirmesi
  • Bellek ve veri: segment listeleri, disassemble, çapraz referanslar, bellek içeriği inceleme
  • Cross-binary dokümantasyon: fonksiyon hash’i üretme, dokümantasyon dışa aktarma/uygulama, hash tabanlı eşleme
  • Veri tipi yönetimi: struct ve enum oluşturma, alan düzenleme, yinelenen tipleri birleştirme
  • Sembol ve etiket yönetimi: import/export listeleri, string analizi, namespace ve global değişken yönetimi
  • Yeniden adlandırma ve yorum ekleme: fonksiyon, veri ve değişken adlarını değiştirme; toplu yorum ayarlama
  • Tip sistemi: fonksiyon prototype tanımlama, değişken tipi ayarlama, calling convention sorgulama
  • Ghidra script yönetimi: script listesi, çalıştırma, kaydetme, düzenleme, silme
  • Çoklu program desteği: açık programlar arasında geçiş, proje dosyası listesi, doküman karşılaştırması
  • Analiz araçları: tanımlanmamış fonksiyonları bulma, string tabanlı arama, byte pattern arama

Mimari

  • AI/Automation araçları ↔ MCP Bridge ↔ Ghidra Plugin yapısı
    • bridge_mcp_ghidra.py: MCP protokolünü HTTP çağrılarına dönüştüren Python sunucusu
    • GhidraMCP.jar: Ghidra işlevlerini HTTP üzerinden sunan Java eklentisi
    • ghidra_scripts/: 70’ten fazla otomasyon script’i içeriyor

Geliştirme ve Build

  • Maven tabanlı build ve PowerShell deploy script’leri sunuluyor
  • Proje yapısı Python sunucusu, Java eklentisi, Ghidra kütüphaneleri, dokümantasyon, örnekler ve build script’lerinden oluşuyor
  • Zorunlu 14 kütüphanenin (yaklaşık 37 MB) Ghidra kurulum yolundan kopyalanması gerekiyor
  • Otomatik deploy, toplu işlem, atomik transaction ve ayrıntılı logging özelliklerini içeriyor

Dokümantasyon ve Yapay Zeka İş Akışları

  • docs/ klasöründe kapsamlı dokümantasyon, proje yapısı, adlandırma kuralları ve Hungarian notation yer alıyor
  • Yapay zeka iş akışı prompt’ları: fonksiyon dokümantasyonu, sürümler arası eşleme ve hızlı başlangıç prompt’ları sunuluyor
  • Sürüm geçmişi: CHANGELOG.md ve docs/releases içinde sürüm bazlı ayrıntılar bulunuyor

Lisans ve Durum

  • Apache License 2.0 ile lisanslanmış
  • Sürüm 2.0.0, 110 MCP aracı tam uygulanmış, 70’ten fazla Ghidra script’i içeriyor
  • Üretim ortamına dağıtıma hazır, yapay zeka tabanlı tersine mühendislik için uygun

İlgili Projeler

  • re-universe: PostgreSQL tabanlı büyük ölçekli ikili benzerlik analizi platformu
  • cheat-engine-server-python: dinamik bellek analizi ve hata ayıklama için MCP sunucusu

Teşekkür

  • Ghidra ekibine, Model Context Protocol geliştiricilerine ve topluluk katkıcılarına teşekkür ediliyor

1 yorum

 
GN⁺ 2026-02-06
Hacker News yorumları
  • Birden fazla yazılım sürümünü tersine mühendislikle inceleme süreci çok acı vericiydi; bu yüzden bu projeyi yaptım
    Temelinde normalize edilmiş bir fonksiyon hashing sistemi var; fonksiyonun mantıksal yapısına (komutlar, operandlar, kontrol akışı) göre hash üretiyor
    Bu sayede ikili dosya yeniden derlense veya rebase edilse bile aynı fonksiyon aynı hash’e sahip oluyor ve tüm yorumlar, türler ve adlar otomatik olarak taşınıyor
    Ghidra için bir MCP köprüsü olarak 110 araç içeriyor ve Claude, Claude Code veya diğer MCP istemcileriyle entegre olabiliyor
    Diablo II’nin çeşitli yama sürümleriyle doğruladım ve 1.300’den fazla fonksiyon yorumunu otomatik olarak taşıyabildim
    Docker tabanlı headless mod ile CI entegrasyonu da mümkün
    v2.0.0’da yalnızca localhost binding, timeout ayarları, etiket silme, .env ayarları gibi eklemeler yapıldı
    Hashing yaklaşımı veya MCP tasarımı hakkında tartışmaya açığım

    • Ghidra’nın varsayılan FunctionID’si ya da BinDiff eklentisiyle karşılaştırıldığında farkının ne olduğunu merak ediyorum
    • ReVa ile karşılaştırınca nasıl olduğunu merak ediyorum
      Kurulum kılavuzu eksik gibi görünüyor. Ghidra’da kurup yeniden başlattım ama Tools menüsünde GhidraMCP görünmüyor
    • Kendim kullanmayı denedim ama Ghidra eklentiyi tanımadı
      GH Discussions’ın doğru iletişim kanalı olup olmadığını merak ediyorum
    • Diğer Ghidra MCP sunucularından (pyghidra-mcp, ReVa, GhidrAssistMCP vb.) farkının ne olduğunu merak ediyorum
    • Android ikili dosyaları için decompile desteği olup olmadığını merak ediyorum
  • LaurieWired’in Ghidra MCP sunucusunu denedim; ikili analiz ve keygen üretimi çok eğlenceli ve kolaydı
    Bu MCP sunucusunu da kesinlikle kullanacağım

    • Eskiden yaptığım bir yazılım, artık var olmayan bir sunucuya doğrulama isteği gönderdiği için kurulamıyordu; ben de kendi Ghidra MCP’mi yapmayı denedim ama başaramadım
      Projenin tam böyle bir anda ortaya çıkması ilginç
    • Bu branch, LaurieWired/GhidraMCP’nin main dalının 110 commit ilerisinde
  • İş arkadaşımın Claude ile birlikte Ghidra kullanarak River Ride oyununu hacklediğini görünce ben de denedim
    PowerPC için eski bir oyunu Apple Silicon’a port ettim; birkaç MCP denedim ama Claude Code sık sık kod uydurdu
    Sonunda en iyi sonucu Cursor + GPT 5.2 Codex’in headless moduyla aldım

    • Ben de tersine mühendislik deneyleri yapıyorum ve GPT-5.2 Codex Claude’dan çok daha iyi
      Örneğin 1.300 satırlık bir C64-SID dosyasını 30 dakikada tamamen geri oluşturdu
      Şu anda bütün bir C64 oyununu tersine mühendislikle çözmek için çok ajanlı bir sistem kuruyorum
      Örnek kod’a bakabilirsiniz
  • Yapay zeka ile tersine mühendislik küçümseniyor
    Ben bir Android uygulamasından şifreleme anahtarı çıkarma işini başardım; anahtar shader’ın içine gizlenmişti ve onu elde etmek için shader’ı gerçekten çalıştırmak gerekiyordu

    • Bir arkadaşımla eski bir Unity oyununu Claude’a verdik, o da eksiksiz bir TypeScript portu oluşturdu
      Şimdi tarayıcıda çok oyunculu özelliği ekliyoruz
    • Shader’dan anahtar çıkarmış olmanız ilginç. Bunu nasıl yaptığınıza dair daha fazla ayrıntı duymak isterim
    • Ben de MCP ve çeşitli araçları bağlayarak ikili dosyadan kaynak kodu geri oluşturma ve açık tespiti denedim; gerçek kaynakla neredeyse aynıydı
  • LaurieWired’in 15 araçlık sürümünü aylardır kullanıyorum; uygulamanın iç yapısı tamamen şeffaf görünüyormuş gibi hissettiriyor
    Hata takibi, eklenti geliştirme, uygulama değiştirme; hepsi mümkün
    Objective-C kodu için ayrıca Hopper Disassembler kullanıyorum
    İlgili makale: Full recompilation with LLMs and Ghidra

    • Uygulama tersine mühendisliğini OSS ile aynı şey gibi görmek, bir GitHub çalışanı olarak bende iyi bir izlenim bırakmıyor
  • LLM’lerle tersine mühendislik gerçekten küçümseniyor
    30 yıllık bir oyunu geri kazandırıyorum; Ghidra decompile çıktısını ve sembol bilgilerini modele RAG yöntemiyle verirseniz şaşırtıcı sonuçlar çıkıyor
    Gemini 3 Flash gibi düşük maliyetli modeller bile yeterince işe yarıyor

    • Ama Gemini bazen eksik pseudocode üretiyor
      Fonksiyonun bazı bölümlerini atlıyor ya da switch bloklarının içini sadece yorum olarak bırakıyor
      Buna karşılık Claude Opus veya Qwen3-30B-A3B çok daha tamamlanmış kod üretiyor
      Gemini’nin geniş bağlam penceresi avantaj ama PCode’un aşırı ayrıntılı yapısı yüzünden pratikte hâlâ ciddi kısıtlar var
  • MCP’ye fazla araç bağlanınca performansın düştüğünü düşünüyordum; bu da iyi bir tasarım gibi görünmüyor

    • Bugünlerde MCP araç sorunları bir ölçüde lazy loading ile çözülüyor
      Yine de hâlâ API dönüştürme odaklı araçlar LLM’lerle uyum açısından zayıf kalıyor
    • vibecoded tabanlı beceri tipi araçlar çok daha verimli olabilir gibi geliyor
  • Tersine mühendis değilim ama Claude Code ve Ghidra MCP ile bir ransomware decryptor geliştirdim
    Terabaytlarca veriyi kurtardığımda gerçekten süper güç kazanmış gibi hissettim

    • “O süper güçle şifreleyiciyi de daha güvenilir yapabilirdin, değil mi?” diye şaka yapan oldu
  • Yapay zekanın ikili analizde insanüstü yetenekler sergileyebileceğini düşünüyorum
    Şu anda düşük verimli ve sıkıcı bir iş ama yapay zeka sayesinde güvenlik denetimleri veya tedarik zinciri saldırılarına karşı savunmada da kullanılabilir

    • Evet, ayrıca yapay zekanın kendisini analiz etmesi de mümkün
      MOOLLM’in “skill-snitch” aracı diğer becerilerin davranışını izliyor, “cursor-mirror” ise Cursor’un iç durumunu tamamen görüyor
      Bu beceriler birbiriyle birleştirme ve özyinelemeli çağrı yapabiliyor; MCP’den çok daha hızlı, “speed of light” tarzında çalışıyorlar
      İlgili materyaller: Leela MOOLLM Demo Transcript, speed-of-light skill, skill-snitch report
  • Bunun neden CLI tabanlı yapılmadığını merak ediyorum. Günümüzde LLM’ler ve ajanlar CLI ile daha iyi çalışıyor gibi görünüyor

    • Bunun ancak CLI eğitim verisinde varsa geçerli olduğunu düşünüyorum. Yeni bir araçsa zaten tüm dokümantasyonu bağlama koymak gerekiyor
    • Bu proje, MCP henüz bağlamı aşırı tüketmeden önce başlamıştı (LaurieWired/GhidraMCP)
    • Son dönemde Claude Code gibi araçlar araç arama tabanlı yükleme desteklediği için MCP’nin bağlam yükü epey azaldı
    • Ben de benzer düşünüyorum. 110 aracın açıklaması sürekli bağlamda durursa sadece gürültü artar