Apktool MCP Server

Integrations

  • Provides tools for Android APK reverse engineering, including decoding APKs, examining smali code, analyzing manifests, inspecting resources, building modified APKs, and signing APKs for installation.

  • Integration with Kali Linux for running the APKTool MCP server in a security-focused environment, specifically mentioning Claude Desktop for Debian-based Linux.

  • Features a demo video on YouTube showcasing the APKTool MCP server's capabilities for reverse engineering Android applications.

apktool-mcp-server (Teil von Zinns Reverse Engineering MCP Suite)

⚡ Vollständig automatisierter, auf apktool basierender MCP-Server zur Analyse von Android-APKs mithilfe von LLMs wie Claude – decken Sie Schwachstellen auf, analysieren Sie Manifeste und führen Sie mühelos Reverse Engineering durch.

Mit KI-Tools erstelltes Bild.


🤖 Was ist apktool-mcp-server?

apktool-mcp-server ist ein MCP-Server für das Apk-Tool , der direkt in das Model Context Protocol (MCP) integriert ist, um Live-Reverse-Engineering-Unterstützung mit LLMs wie Claude bereitzustellen.

Denken Sie: „Dekompilieren → Kontextbezogene Codeüberprüfung → KI-Empfehlungen“ – alles in Echtzeit.

Sehen Sie sich die Demo an!

https://github.com/user-attachments/assets/d50251b8-6b1c-4341-b18e-ae54eb24a847

  • Lösung der CTFs

https://github.com/user-attachments/assets/c783a604-a636-4e70-9fa8-37e3d219b20b

Andere Projekte in der Zin MCP Suite

Aktuelle MCP-Tools

Die folgenden MCP-Tools sind verfügbar:

  • build_apk() – Erstellen Sie eine APK aus einem dekodierten APKTool-Projekt.
  • get_manifest() — Ruft den Inhalt von AndroidManifest.xml aus einem dekodierten APK-Projekt ab.
  • get_apktool_yml() — Ruft apktool.yml-Informationen aus einem dekodierten APK-Projekt ab.
  • list_smali_directories() — Listet alle Smali-Verzeichnisse in einem Projekt auf.
  • list_smali_files() — Listet Smali-Dateien in einem bestimmten Smali-Verzeichnis auf, optional gefiltert nach Paketpräfix.
  • get_smali_file() — Ruft den Inhalt einer bestimmten Smali-Datei nach Klassennamen ab.
  • modify_smali_file() — Ändert den Inhalt einer bestimmten Smali-Datei.
  • list_resources() — Listet Ressourcen in einem Projekt auf, optional gefiltert nach Ressourcentyp.
  • get_resource_file() — Ruft den Inhalt einer bestimmten Ressourcendatei ab.
  • modify_resource_file() — Ändern Sie den Inhalt einer bestimmten Ressourcendatei.
  • search_in_file() — Suche nach einem Muster in Dateien mit angegebenen Erweiterungen.
  • clean_project() – Bereinigen Sie ein Projektverzeichnis, um es für den Neuaufbau vorzubereiten.
  • decode_apk() – Dekodieren Sie eine APK-Datei mit APKTool und extrahieren Sie Ressourcen und Smali-Code.

🗒️ Beispielaufforderungen

🔍 Grundlegendes Code-Verständnis

  • „Listen Sie alle kleinen Verzeichnisse für das Dvac-Projekt auf.“
  • „Zeigen Sie mir alle Smali-Dateien unter dem Paketpräfix com.vulnerable.component im Dvac-Projekt.“
  • „Holen Sie sich den Smali-Code für die Klasse com.vulnerable.component.MainActivity.“
  • „Vergleichen Sie MainActivity.smali mit der vorherigen Version und zeigen Sie die Unterschiede.“
  • „Suchen Sie nach der Verwendung von startActivity in Smali-Dateien des Dvac-Projekts.“

🛡️ Schwachstellenerkennung

  • „Analysieren Sie die deklarierten Berechtigungen in der dvac AndroidManifest.xml und kennzeichnen Sie gefährliche.“
  • „Suchen Sie in allen XML- und SMALI-Dateien im Projekt nach fest codierten URLs oder IPs.“
  • „Finden Sie alle Verwendungen von PendingIntent.getActivity in Smali-Dateien.“
  • „Suchen Sie in der AndroidManifest.xml von dvac nach exportierten Aktivitäten oder Empfängern.“
  • „Listen Sie alle Smali-Dateien auf, die auf android.permission.SEND_SMS oder READ_CONTACTS zugreifen.“

🛠️ Reverse Engineering-Helfer

  • „Dekodieren Sie diese APK: dvac.apk und erstellen Sie ein Projekt namens dvac.“
  • „Erstellen Sie ein neues APKTool-Projekt namens Test-Harness.“
  • „Bereinigen Sie das DVAC-Projekt vor dem Neuaufbau.“
  • „Extrahieren Sie DEX-Dateien aus dem Dvac-Projekt zur externen Analyse.“
  • „Ändern Sie MainActivity.smali, um am Anfang von onCreate() eine Protokollzeile einzufügen.“

📦 Statische Analyse

  • „Holen Sie sich die vollständige AndroidManifest.xml vom dvac-Projekt.“
  • „Zeigen Sie den Inhalt von apktool.yml für das dvac-Projekt.“
  • „Listet alle Ressourcendateien vom Typ Layout auf.“
  • „Suchen Sie in allen Ressourcen- und Smali-Dateien nach dem Wort Passwort.“
  • „Überprüfen Sie, welche Berechtigungen verwendet werden, und vergleichen Sie sie mit den typischen Risiken einer Überberechtigung.“

🤖 KI-Code-Änderung

  • „Ändern Sie die Methode onCreate() in MainActivity.smali, um eine Toast-Nachricht hinzuzufügen.“
  • „Ersetzen Sie alle http://-Links durch https:// in strings.xml.“
  • „Fügen Sie allen Aktivitäten in der Datei AndroidManifest.xml das Attribut android:exported=false hinzu.“
  • „Patchen Sie die Methode validateLogin in LoginManager.smali, damit sie immer true zurückgibt.“
  • „Fügen Sie jeder Methode in MainActivity.smali Protokollierungsanweisungen hinzu.“

📄 Dokumentation & Metadaten

  • „Listen Sie alle dekodierten APKTool-Projekte im Arbeitsbereich auf.“
  • „Zeigen Sie mir die apktool.yml-Konfiguration, um die Version, die ursprünglichen APK-Metadaten und die Komprimierungseinstellungen zu überprüfen.“
  • „Verbinden Sie alle verfügbaren Android-Geräte über ADB. (Zur Migration auf den ADB MCP-Server.)“
  • „Holen Sie sich Metadaten zum Projekt dvac aus seiner apktool.yml.“
  • „Überprüfen Sie, welche APKTool-Version aktuell auf dem Server installiert ist.“

🛠️ Erste Schritte

1. Download von Releases: https://github.com/zinja-coder/apktool-mcp-server/releases

# 0. Download the apktool-mcp-server-<version>.zip https://github.com/zinja-coder/apktool-mcp-server/releases # 1. unzip apktool-mcp-server-<version>.zip ├apktool-mcp-server/ ├── apktool_mcp_server.py ├── requirements.txt ├── README.md ├── LICENSE # 2. Navigate to apktool-mcp-server directory cd apktool-mcp-server # 3. This project uses uv - https://github.com/astral-sh/uv instead of pip for dependency management. ## a. Install uv (if you dont have it yet) curl -LsSf https://astral.sh/uv/install.sh | sh ## b. OPTIONAL, if for any reasons, you get dependecy errors in apktool-mcp-server, Set up the environment uv venv source .venv/bin/activate # or .venv\Scripts\activate on Windows ## c. OPTIONAL Install dependencies uv pip install httpx fastmcp # The setup for apktool-mcp-server is done.

2. Ausführen auf lokalem LLM mit Ollama und Zin MCP-Client – Empfohlen

⚡ Leichtgewichtiger, schneller, einfacher, CLI-basierter MCP-Client für STDIO MCP-Server, um die Lücke zu schließen und eine Brücke zwischen Ihren lokalen LLMs mit Ollama und MCP-Servern zu schlagen.

Jetzt prüfen: https://github.com/zinja-coder/zin-mcp-client

Demo: In Kürze verfügbar ...

🤖 3. Claude Desktop-Setup

Stellen Sie sicher, dass Claude Desktop mit aktiviertem MCP ausgeführt wird.

Ich habe beispielsweise Folgendes für Kali Linux verwendet: https://github.com/aaddrick/claude-desktop-debian

Konfigurieren und fügen Sie den MCP-Server zur LLM-Datei hinzu:

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

Und folgender Inhalt darin:

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

Ersetzen:

  • path/to/uv mit dem tatsächlichen Pfad zu Ihrer uv ausführbaren Datei
  • path/to/apktool-mcp-server mit dem absoluten Pfad zum Ort, an dem Sie dieses Repository geklont haben

Navigieren Sie dann durch den Code und interagieren Sie mithilfe der integrierten Integration über Eingabeaufforderungen zur Codeüberprüfung in Echtzeit.

Zum Melden von Fehlern, Problemen, Funktionsvorschlägen, Leistungsproblemen, allgemeinen Fragen und Dokumentationsproblemen.

  • Bitte öffnen Sie ein Problem mit der entsprechenden Vorlage.
  • Auf dem Claude Desktop Client getestet, die Unterstützung für andere KI wird in Kürze getestet!

🙏 Credits

Dieses Projekt ist ein MCP-Server für Apktool , ein hervorragendes Open-Source-Reverse-Engineering-Tool für Android, das von @iBotPeaches entwickelt und gepflegt wird. Die gesamte Kernlogik für die APK-Dekodierung und Ressourcenverarbeitung gehört zu Apktool. Ich habe es lediglich erweitert, um meinen MCP-Server mit KI-Funktionen zu unterstützen.

📎 Original-README (Apktool)

Die ursprüngliche README.md von Apktool ist hier in diesem Repository als Referenz und Quelle enthalten.

Vielen Dank auch an @aaddrick für die Entwicklung des Claude-Desktops für Debian-basiertes Linux.

Und zum Schluss möchten wir uns bei @anthropics für die Entwicklung des Model Context Protocol und beim @FastMCP -Team bedanken.

Und alle Betreuer und Mitwirkenden von Open-Source-Projekten, die Bibliotheken und Abhängigkeiten bereitstellen, um Projekte wie dieses zu ermöglichen.

📄 Lizenz

apktool-mcp-server und alle zugehörigen Projekte erben den Apache 2.0

⚖️ Rechtlicher Hinweis

Haftungsausschluss

Die Tools apktool-mcp-server und alle zugehörigen Tools dieses Projekts dienen ausschließlich Bildungs-, Forschungs- und ethischen Sicherheitsbewertungszwecken. Sie werden „wie besehen“ und ohne jegliche ausdrückliche oder stillschweigende Gewährleistung bereitgestellt. Die Nutzer sind allein dafür verantwortlich, dass ihre Nutzung dieser Tools allen geltenden Gesetzen, Vorschriften und ethischen Richtlinien entspricht.

Durch die Nutzung apktool-mcp-server erklären Sie sich damit einverstanden, diese nur in Umgebungen zu verwenden, zu deren Test Sie berechtigt sind, z. B. in Anwendungen, die Ihnen gehören oder für deren Analyse Sie eine ausdrückliche Berechtigung haben. Jeglicher Missbrauch dieser Tools für unberechtigtes Reverse Engineering, die Verletzung von Rechten an geistigem Eigentum oder böswillige Aktivitäten ist strengstens untersagt.

Die Entwickler von apktool-mcp-server haften nicht für Schäden, Datenverluste, Rechtsfolgen oder sonstige Folgen, die sich aus der Nutzung oder dem Missbrauch dieser Tools ergeben. Die Nutzer übernehmen die volle Verantwortung für ihr Handeln und die Auswirkungen ihrer Nutzung.

Gehen Sie verantwortungsvoll mit uns um. Respektieren Sie geistiges Eigentum. Befolgen Sie die ethischen Hacking-Praktiken.


🙌 Beitragen oder unterstützen

Beitragen

  • Fanden Sie es hilfreich? Geben Sie ihm ein ⭐️
  • Haben Sie Ideen? Eröffnen Sie ein Problem oder senden Sie eine PR
  • Etwas darauf gebaut? Du möchtest mir eine DM schicken oder mich erwähnen – ich füge es der README-Datei hinzu!

Mit ❤️ für die Reverse-Engineering- und KI-Communitys entwickelt.

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A server enabling programmatic control over Android devices through ADB, providing capabilities like screenshot capture, UI layout analysis, and package management that can be accessed by MCP clients like Claude Desktop.
    Last updated -
    310
    Python
    Apache 2.0
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server that enables AI assistants to control and interact with Android devices, allowing for device management, app debugging, system analysis, and UI automation through natural language commands.
    Last updated -
    29
    30
    Python
    Apache 2.0
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables building Android projects and running tests directly in Visual Studio Code through extensions like Cline or Roo Code.
    Last updated -
    1
    Python
    MIT License
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that connects to a custom JADX fork (JADX-AI) and enables local LLMs to interact with decompiled Android app code for live reverse engineering assistance.
    Last updated -
    76
    Python
    Apache 2.0
    • Linux

View all related MCP servers

ID: jtugu4w3w9