Security Java ★ 2,350

zinja-coder/jadx-ai-mcp

JADX-AI-MCP, JADX decompiler için bir plugin ve MCP Server olup Model Context Protocol (MCP) ile entegre edilerek Claude gibi LLM'lerle canlı reverse engineering desteği sağlar.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "zinja-coder-jadx-ai-mcp": {
      "command": "node",
      "args": [
        "~/.mcp/jadx-ai-mcp/index.js"
      ]
    }
  }
}

JADX-AI-MCP (Zin MCP Suite'nin Bir Parçası)

⚡ Claude gibi LLM'lerle iletişim kurmak için MCP ile entegre edilmiş, tamamen otomatik MCP sunucusu + JADX eklentisi — Android APK'ları analiz edin, güvenlik açıklarını ortaya çıkarın ve zahmetsizce reverse engineering yapın.

GitHub contributors JADX-AI-MCP GitHub contributors JADX-MCP-SERVER GitHub all releases GitHub release (latest by SemVer) Latest release Java 11+ Python 3.10+ License

⭐ Katkıda Bulunanlar

Bu harika insanların katkıları için teşekkürler ⭐

    <br /><sub><b>ljt270864457</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/p0px">
    
    <br /><sub><b>p0px</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/bx33661">
    
    <br /><sub><b>bx33661</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/Haicaji">
    
    <br /><sub><b>Haicaji</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/ChineseAStar">
    
    <br /><sub><b>ChineseAStar</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/cyal1r">
    
    <br /><sub><b>cyal1</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/badmonkey7">
    
    <br /><sub><b>badmonkey7</b></sub>
  </a>
</td>
   <td>
  <a href="https://github.com/tiann">
    
    <br /><sub><b>tiann</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/ZERO-A-ONE">
    
    <br /><sub><b>ZERO-A-ONE</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/neoz">
    
    <br /><sub><b>neoz</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/SamadiPour">
    
    <br /><sub><b>SamadiPour</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/wuseluosi">
    
    <br /><sub><b>wuseluosi</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/CainYzb">
    
    <br /><sub><b>CainYzb</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/tbodt">
    
    <br /><sub><b>tbodt</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/LilNick0101">
    
    <br /><sub><b>LilNick0101</b></sub>
  </a>
</td>
<td>
  <a href="https://github.com/lwsinclair">
    
    <br /><sub><b>lwsinclair</b></sub>
  </a>
</td>

Belgeleri Okuyun


🤖 JADX-AI-MCP Nedir?

JADX-AI-MCP, JADX decompiler için bir eklentidir ve doğrudan Model Context Protocol (MCP) ile entegre olarak Claude gibi LLM'ler ile canlı reverse engineering desteği sağlar.

Düşünün: "Decompile → Bağlama Duyarlı Kod İncelemesi → AI Önerileri" — hepsi gerçek zamanlı.

Üst Seviye Sıra Diyagramı

sequenceDiagram
LLM CLIENT->>JADX MCP SERVER: INVOKE MCP TOOL
JADX MCP SERVER->>JADX AI MCP PLUGIN: INVOKE HTTP REQUEST
JADX AI MCP PLUGIN->>REQUEST HANDLERS: INVOKE HTTP REQUEST HANDLER
REQUEST HANDLERS->>JADX GUI: PERFORM ACTION/GATHER DATA
JADX GUI->>REQUEST HANDLERS: ACTION PERFORMED/DATA GATHERED
REQUEST HANDLERS->>JADX AI MCP PLUGIN: CRAFT HTTP RESPONSE
JADX AI MCP PLUGIN->>JADX MCP SERVER:HTTP RESPONSE
JADX MCP SERVER->>LLM CLIENT: MCP TOOL RESULT

Demoları İzleyin!

  • Hızlı analiz gerçekleştirin

https://github.com/user-attachments/assets/b65c3041-fde3-4803-8d99-45ca77dbe30a

  • Güvenlik açıklarını hızlı bulun

https://github.com/user-attachments/assets/c184afae-3713-4bc0-a1d0-546c1f4eb57f

  • Çoklu AI Aracı Desteği

https://github.com/user-attachments/assets/6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0

  • Favori LLM İstemcinizle Çalıştırın

https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809

  • APK Kaynaklarını Analiz Edin

https://github.com/user-attachments/assets/f42d8072-0e3e-4f03-93ea-121af4e66eb1

  • JADX Kullanarak APK Hata Ayıklaması Sırasında AI Asistanınız

https://github.com/user-attachments/assets/2b0bd9b1-95c1-4f32-9b0c-38b864dd6aec

İki araçtan oluşan bir kombinasyon:

  1. JADX-AI-MCP
  2. JADX MCP SERVER

🤖 JADX-MCP-SERVER Nedir?

JADX MCP Server, MCP (Model Context Protocol) aracılığıyla bir JADX-AI-MCP eklentisi (bkz: jadx-ai-mcp) ile etkileşime giren bağımsız bir Python sunucusudur. LLM'lerin decompiled Android uygulaması bağlamıyla canlı iletişim kurmasına olanak tanır.


Zin MCP Suite'deki Diğer Projeler

Mevcut MCP Araçları

Aşağıdaki MCP araçları mevcuttur:

  • fetch_current_class() — Seçilen sınıfın sınıf adını ve tam kaynağını alın
  • get_selected_text() — Seçili metni alın
  • get_all_classes() — Projedeki tüm sınıfları listeleyin
  • get_class_source() — Verilen sınıfın tam kaynağını alın
  • get_method_by_name() — Bir metodun kaynağını getirin
  • search_method_by_name() — Sınıflar arasında metod arayın
  • search_classes_by_keyword() — Kaynak kodu belirli bir anahtar kelime içeren sınıfları arayın (sayfalandırmayı destekler)
  • get_methods_of_class() — Sınıftaki metodları listeleyin
  • get_fields_of_class() — Sınıftaki alanları listeleyin
  • get_smali_of_class() — Sınıfın smali'sini getirin
  • get_main_activity_class() — AndroidManifest.xml dosyasında jadx tarafından belirtilen ana aktiviteyi getirin
  • get_main_application_classes_code() — AndroidManifest.xml dosyasında tanımlanan paket adına göre tüm ana uygulama sınıflarının kodunu getirin
  • get_main_application_classes_names() — AndroidManifest.xml dosyasında tanımlanan paket adına göre tüm ana uygulama sınıflarının adlarını getirin
  • get_android_manifest() — AndroidManifest.xml içeriğini alın ve döndürün
  • get_manifest_component - Tüm manifest dosyası yerine belirli manifest bileşenini alın
  • get_strings() : strings.xml dosyasını getirin
  • get_all_resource_file_names() : Uygulamada var olan tüm kaynak dosya adlarını alın
  • get_resource_file() : Kaynak dosya içeriğini alın
  • rename_class() : Sınıf adını yeniden adlandırın
  • rename_method() : Metodu yeniden adlandırın
  • rename_field() : Alanı yeniden adlandırın
  • rename_package() : Tüm paketi yeniden adlandırın
  • rename_variable() : Bir metod içindeki değişkeni yeniden adlandırın
  • debug_get_stack_frames() : jadx hata ayıklayıcısından stack frame'leri alın
  • debug_get_threads() : jadx hata ayıklayıcısından thread'ler hakkında bilgi alın
  • debug_get_variables() : jadx hata ayıklayıcısından değişkenleri alın
  • xrefs_to_class() : Bir sınıfa yapılan tüm referansları bulun (metod seviyesi ve sınıf seviyesi referansları döndürür, sayfalandırmayı destekler)
  • xrefs_to_method() : Bir metoda yapılan tüm referansları bulun (override ile ilgili metodları içerir, sayfalandırmayı destekler)
  • xrefs_to_field() : Bir alana yapılan tüm referansları bulun (alanı erişen metodları döndürür, sayfalandırmayı destekler)

🗒️ Örnek İstemler

🔍 Temel Kod Anlama

"Bu sınıf bir paragrafta ne yapıyor açıkla."

"Bu metodun sorumluluklarını özetle."

"Bu sınıfta herhangi bir obfuscation var mı?"

"Bu sınıfın gereksinim duyabileceği tüm Android izinlerini listele."

🛡️ Güvenlik Açığı Tespiti

"Bu metodda güvensiz API kullanımı var mı?"

"Bu sınıfı sabit kodlanmış sırlar veya kimlik bilgileri açısından kontrol et."

"Bu metod kullanıcı girdisini kullanmadan önce temizliyor mu?"

"Bu kod hangi güvenlik açıklarını ortaya çıkarabilir?"

🛠️ Reverse Engineering Yardımcıları

"Bu sınıfları ve metodları deobfuscate et ve okunabilir bir şeyle yeniden adlandır."

"Bu smali metodunun orijinal amacını çıkarabileceği var mı?"

"Bu sınıf hangi kütüphanelerin veya SDK'ların parçası gibi görünüyor?"

"Hangi sınıflar 'encryption' ile ilgili kod içeriyor?"

📦 Statik Analiz

"Bu sınıftaki tüm ağ ile ilgili API çağrılarını listele."

"Dosya G/Ç işlemlerini ve potansiyel risklerini belirle."

"Bu metod cihaz bilgisi veya KVB sızıntısı yapıyor mu?"

🤖 AI Kod Değişikliği

"Bu metodu okunabilirliği geliştirmek için refactor et."

"Bu koda her adımı açıklayan yorumlar ekle."

"Bu Java metodunu analiz için Python'da yeniden yaz."

📄 Dokümantasyon & Metadata

"Tüm metodlar için Javadoc tarzı yorumlar oluştur."

"Bu sınıf muhtemelen hangi pakete veya uygulama bileşenine aittir?"

"Android bileşen türünü (Activity, Service, vb.) tanımlayabileceği var mı?"

🐞 Hata Ayıklayıcı Asistanı

   "Hata ayıklayıcıdan stack frame'leri, değişkenleri ve thread'leri getir ve özet sağla"

   "Hata ayıklayıcıdaki stack frame'lere göre, uygulamanın yürütme akışını açıkla"

   "Değişkenlerin durumuna göre, güvenlik tehdidi var mı?"

🛠️ Başlayın

1. Releases'ten İndir: https://github.com/zinja-coder/jadx-ai-mcp/releases

[!NOTE]

Hem jadx-ai-mcp-<version>.jar hem de jadx-mcp-server-<version>.zip dosyalarını indirin.

# 0. jadx-ai-mcp-<version>.jar ve jadx-mcp-server-<version>.zip dosyalarını indirin
https://github.com/zinja-coder/jadx-ai-mcp/releases

# 1. 
unzip jadx-ai-mcp-<version>.zip

├jadx-mcp-server/
  ├── jadx_mcp.py
  ├── requirements.txt
  ├── README.md
  ├── LICENSE

├jadx-ai-mcp-<version>.jar

# 2. Eklentiyi yükleyin

# Bunu iki şekilde yapabilirsiniz:

## 1. Tek satır - Kabuğunuzda aşağıdaki komutu çalıştırın
jadx plugins --install "github:zinja-coder:jadx-ai-mcp"

## Yukarıdaki tek satırlık kod, eklentiyi doğrudan jadx'e yükleyecek, jadx-ai-mcp'nin .jar dosyasını indirmeye gerek yok.
## 2. Veya JADX-GUI kullanarak aşağıda görsellerde gösterilen adımları izleyerek yükleyebilirsiniz:
## 3. GUI yöntemi, .jar dosyasını indirin ve aşağıdaki görsellerde gösterilen adımları izleyin

img.png img_1.png img_2.png img_3.png

# 3. jadx-mcp-server dizinine gidin
cd jadx-mcp-server

# 4. Bu proje bağımlılık yönetimi için pip yerine uv - https://github.com/astral-sh/uv kullanır.
    ## a. uv yükleyin (henüz yüklemediyseniz)
curl -LsSf https://astral.sh/uv/install.sh | sh
    ## b. SEÇENELİ, herhangi bir nedenle jadx-mcp-server'da bağımlılık hatası alırsanız, ortamı ayarlayın
uv venv
source .venv/bin/activate  # veya Windows'ta .venv\Scripts\activate
    ## c. SEÇENELİ Bağımlılıkları yükleyin
uv pip install httpx fastmcp

# jadx-ai-mcp ve jadx_mcp_server kurulumu tamamlandı.

🤖 2. Claude Desktop Kullanın

Claude Desktop'ın MCP etkin şekilde çalıştığından emin olun.

Örneğin, Kali Linux için şunu kullandım: https://github.com/aaddrick/claude-desktop-debian

MCP sunucusunu LLM dosyasına yapılandırın ve ekleyin:

nano ~/.config/Claude/claude_desktop_config.json

Şu yer açısından:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Ve içerine aşağıdaki içeriği ekleyin:

{
    "mcpServers": {
        "jadx-mcp-server": {
            "command": "/<path>/<to>/uv", 
            "args": [
                "--directory",
                "</PATH/TO/>jadx-mcp-server/",
                "run",
                "jadx_mcp_server.py"
            ]
        }
    }
}

Değiştirin:

  • path/to/uv ile uv yürütülebilirinin gerçek yolu
  • path/to/jadx-mcp-server bu depo'yu klonladığınız mutlak yolla

Ardından, kodu gezin ve yerleşik entegrasyon kullanarak gerçek zamanlı kod inceleme komutları aracılığıyla etkileşime geçin.

VEYA

veya jadx_mcp_server'ı doğrudan aşağıdaki komut kullanarak yürütülebilir olarak yükleyebilirsiniz:

uv tool install git+https://github.com/zinja-coder/jadx-mcp-server

ve ardından mcp yapılandırmasının command bölümüne sadece jadx_mcp_server sağlayabilirsiniz.

3. Cherry Studio Kullanın

MCP aracını Cherry Studio'da yapılandırmak istiyorsanız, aşağıdaki yapılandırmaya başvurabilirsiniz.

  • Tür: stdio
  • komut: uv
  • argüman:
--directory
path/to/jadx-mcp-server
run
jadx_mcp_server.py
  • path/to/jadx-mcp-server bu depo'yu klonladığınız mutlak yolla değiştirin

4. LMStudio Kullanarak

JADX AI MCP Server'ı LM Studio ile de kullanabilirsiniz, mcp.json dosyasını yapılandırarak. İşte video kılavuzu.

https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809

5. HTTP Stream Modunda Çalıştırma

Ayrıca Jadx'i jadx_mcp_server.py ile --http seçeneği kullanarak HTTP Stream Modunda çalıştırabilirsiniz:

uv run jadx_mcp_server.py --http

VEYA

uv run jadx_mcp_server.py --http --port 9999

Gelişmiş CLI Seçenekleri — Bayrakları Anlama

İki ayrı bağlantı vardır ve her birinin kendi host/port'u vardır:

┌─────────────┐    --host / --port     ┌──────────────────┐   --jadx-host / --jadx-port   ┌──────────────────┐
│  LLM Client │ ◄──────────────────►   │  jadx-mcp-server │ ──────────────────────────►   │  JADX-GUI Plugin │
│  (Claude,   │   MCP sunucusunun      │                  │   MCP sunucusunun JADX       │  (jadx-ai-mcp)   │
│   Codex..)  │   istemciler için      │                  │   eklentisini aradığı yer   │                  │
└─────────────┘   dinlediği yer        └──────────────────┘                               └──────────────────┘
Bayrak Varsayılan Kontrol Ettiği
--http kapalı Stdio yerine HTTP taşımasını kullan
--host 127.0.0.1 MCP sunucusunun dinlediği yer (LLM istemcileri için bağlama adresi)
--port 8651 MCP sunucusunun dinlediği port
--jadx-host 127.0.0.1 JADX eklentisinin bulunduğu yer (hedef JADX-GUI makinesi)
--jadx-port 8650 JADX eklentisinin bulunduğu port

Kullanım Örnekleri

Senaryo 1 — Aynı makinede her şey (en yaygın):

# Varsayılan: MCP sunucusu localhost:8651'de, JADX eklentisine localhost:8650'den bağlanır
uv run jadx_mcp_server.py --http

Senaryo 2 — Docker container veya WSL (MCP sunucusu ana bilgisayar ağından erişilebilir):

# MCP sunucusu konak tarafından erişilebildiği için TÜM arayüzlerde dinler
# JADX eklentisi yine aynı makinede
uv run jadx_mcp_server.py --http --host 0.0.0.0

Senaryo 3 — JADX-GUI farklı bir makinede çalışıyor (örn. uzak VM):

# MCP sunucusu yerel olarak çalışır, ancak uzak bir makinedeki JADX eklentisine bağlanır
uv run jadx_mcp_server.py --http --jadx-host 192.168.1.100

Senaryo 4 — Tam uzak kurulum (her şey farklı makinelerde):

# MCP sunucusu 9999 portunda tüm arayüzlerde dinler
# JADX eklentisi 192.168.1.100:8652'deki farklı bir makinede
uv run jadx_mcp_server.py --http --host 0.0.0.0 --port 9999 --jadx-host 192.168.1.100 --jadx-port 8652

[!CAUTION]

⚠️ Güvenlik Uyarısı — Uzak Bağlama

--host 0.0.0.0 (veya localhost olmayan herhangi bir adres) kullanırken, MCP sunucusu tüm ağ arayüzlerine kimlik doğrulamasız düz HTTP üzerinden bağlanır. Bu şu anlama gelir:

  • Ağdaki herkes bağlanabilir ve tüm MCP araçlarını çağırabilir
  • TLS şifrelemesi yok — trafik müdahale edilebilir
  • Saldırgan sunucuyu kullanarak decompiled kodu okuyabilir, sınıfları/metodları yeniden adlandırabilir ve hata ayıklama bilgilerine erişebilir

Azaltma Yolları:

  • 0.0.0.0 öğesine sadece güvenilir, izole edilmiş ağlarda bağlayın (örn. Docker köprüsü, yerel VM)
  • MCP portuna erişimi kısıtlamak için güvenlik duvarı kullanın
  • Bunun yerine SSH tüneli kullanmayı düşünün: ssh -L 8651:127.0.0.1:8651 remote-host

Stdio Modu Uyumluluğu

[!NOTE] Stdio modunda çalıştırırken (varsayılan, --http olmadan), tüm insan tarafından okunabilir çıktı (banner, sağlık kontrolü) stderr'e yazılır, stdout'u MCP JSON-RPC akışı için saklı tutmak için. Bu, Codex, Claude Desktop ve diğer stdio tabanlı MCP istemcileriyle uyumluluğu sağlar.

6. JADX AI MCP Eklentisi için Özel Port ve Host Yapılandırması

  1. Portu Yapılandırın: JADX AI MCP Eklentisinin dinleyeceği portu yapılandırın.
  2. Varsayılan Port: Değişiklikleri geri alın ve varsayılan port üzerinde dinleyin.
  3. Sunucuyu Yeniden Başlat: JADX AI MCP Eklentisi sunucusunu zorla yeniden başlat.
  4. Sunucu Durumu: JADX AI MCP Eklentisi sunucusunun durumunu kontrol edin.

Özel porta sahip çalışan JADX AI MCP Eklentisi ile bağlantı kurmak için, aşağıda gösterilen --jadx-port seçeneği kullanılacak:

uv run jadx_mcp_server.py --jadx-port 8652

JADX AI MCP Eklentisi farklı bir makinede çalışıyorsa (örn. JADX uzak VM'de, MCP sunucusu yerel konaküstünde), --jadx-host seçeneğini kullanın:

# Uzak konak üzerindeki JADX eklentisine bağlan
uv run jadx_mcp_server.py --jadx-host 192.168.1.100 --jadx-port 8650

CLI Referansı — Bayrakları Anlama

**İki ayrı bağlant

Benzer MCP sunucuları

mrexodia/ida-pro-mcp Security

IDA Pro için MCP sunucusu, AI asistanları ile binary analiz yapmanızı sağlar. Plugin decompilation, disassembly işlemlerini gerçekleştirir ve malware analiz raporlarını otomatik olarak oluşturmanıza imkan tanır.

mrexodia/ida-pro-mcp ★ 9,564
LaurieWired/GhidraMCP Security

Ghidra için bir Model Context Protocol sunucusu olup LLM'lerin uygulamaları özerk şekilde ters mühendislik yapmasını sağlar. Binary dosyaları derlemesini açma, metod ve veri adlandırma, metod/sınıf/import/export listeleme araçlarını sunar.

LaurieWired/GhidraMCP ★ 9,310
beelzebub-labs/beelzebub Security

Beelzebub, MCP kullanarak honeypot araçları oluşturmanızı sağlayan bir framework'tür. Prompt injection ve kötü niyetli agent davranışlarını tespit etmek için tasarlanmıştır. Temel konsept, agente normal çalışmasında asla kullanmayacağı araçlar sunarak tehditli aktiviteleri yakalamaktır.

beelzebub-labs/beelzebub ★ 2,054
safedep/vet Security

vet-mcp, yapay zeka kodlama araçları tarafından önerilen npm ve PyPI paketleri gibi açık kaynak paketleri güvenlik açıkları ve kötü amaçlı kodlar açısından kontrol eder. Docker üzerinde veya bağımsız bir binary olarak yerel olarak çalışarak hızlı ve otomatik doğrulama sağlar.

safedep/vet ★ 1,080
semgrep/mcp Security

AI ajanlarının Semgrep kullanarak kodda güvenlik açıklarını taramasına izin verir.

semgrep/mcp ★ 672
symgraph/GhidrAssistMCP Security

Ghidra için native Model Context Protocol sunucusu. GUI konfigürasyon ve logging içerir, 31 güçlü tool ve harici bağımlılık yok.

symgraph/GhidrAssistMCP ★ 644
Daha fazla: Security →