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"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/zinja-coder/jadx-ai-mcp.git ~/.mcp/jadx-ai-mcp
cd ~/.mcp/jadx-ai-mcp ⚡ 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.
Bu harika insanların katkıları için teşekkürler ⭐
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ı.
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
https://github.com/user-attachments/assets/b65c3041-fde3-4803-8d99-45ca77dbe30a
https://github.com/user-attachments/assets/c184afae-3713-4bc0-a1d0-546c1f4eb57f
https://github.com/user-attachments/assets/6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0
https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809
https://github.com/user-attachments/assets/f42d8072-0e3e-4f03-93ea-121af4e66eb1
https://github.com/user-attachments/assets/2b0bd9b1-95c1-4f32-9b0c-38b864dd6aec
İki araçtan oluşan bir kombinasyon:
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.
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ınget_selected_text() — Seçili metni alınget_all_classes() — Projedeki tüm sınıfları listeleyinget_class_source() — Verilen sınıfın tam kaynağını alınget_method_by_name() — Bir metodun kaynağını getirinsearch_method_by_name() — Sınıflar arasında metod arayınsearch_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ı listeleyinget_fields_of_class() — Sınıftaki alanları listeleyinget_smali_of_class() — Sınıfın smali'sini getiringet_main_activity_class() — AndroidManifest.xml dosyasında jadx tarafından belirtilen ana aktiviteyi getiringet_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 getiringet_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ı getiringet_android_manifest() — AndroidManifest.xml içeriğini alın ve döndürünget_manifest_component - Tüm manifest dosyası yerine belirli manifest bileşenini alınget_strings() : strings.xml dosyasını getiringet_all_resource_file_names() : Uygulamada var olan tüm kaynak dosya adlarını alınget_resource_file() : Kaynak dosya içeriğini alınrename_class() : Sınıf adını yeniden adlandırınrename_method() : Metodu yeniden adlandırınrename_field() : Alanı yeniden adlandırınrename_package() : Tüm paketi yeniden adlandırınrename_variable() : Bir metod içindeki değişkeni yeniden adlandırındebug_get_stack_frames() : jadx hata ayıklayıcısından stack frame'leri alındebug_get_threads() : jadx hata ayıklayıcısından thread'ler hakkında bilgi alındebug_get_variables() : jadx hata ayıklayıcısından değişkenleri alınxrefs_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)🔍 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ı?"
[!NOTE]
Hem
jadx-ai-mcp-<version>.jarhem dejadx-mcp-server-<version>.zipdosyaları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

# 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ı.
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:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.jsonVe 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 yolupath/to/jadx-mcp-server bu depo'yu klonladığınız mutlak yollaArdı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.
MCP aracını Cherry Studio'da yapılandırmak istiyorsanız, aşağıdaki yapılandırmaya başvurabilirsiniz.
--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ştirinJADX 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
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
İ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 |
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
[!NOTE] Stdio modunda çalıştırırken (varsayılan,
--httpolmadan), 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.
Ö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
**İki ayrı bağlant
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.
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.
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.
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.
AI ajanlarının Semgrep kullanarak kodda güvenlik açıklarını taramasına izin verir.
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.