apktool-mcp-server (Zin のリバース エンジニアリング MCP スイートの一部)
⚡ apktool 上に構築された完全に自動化された MCP サーバーは、Claude などの LLM を使用して Android APK を分析し、脆弱性を発見し、マニフェストを解析し、リバース エンジニアリングを簡単に行うことができます。
AI ツールを使用して生成された画像。
🤖 apktool-mcp-server とは何ですか?
apktool-mcp-server は、 Model Context Protocol (MCP)と直接統合して**、Claude などの LLM によるライブ リバース エンジニアリング サポート**を提供するApk Tool用の MCP サーバーです。
「デコンパイル → コンテキスト認識コードレビュー → AI による推奨」をすべてリアルタイムで実現します。
デモをご覧ください!
https://github.com/user-attachments/assets/d50251b8-6b1c-4341-b18e-ae54eb24a847
CTFを解く
https://github.com/user-attachments/assets/c783a604-a636-4e70-9fa8-37e3d219b20b
Related MCP server: Android source code
Zin MCP Suiteの他のプロジェクト
現在のMCPツール
次の MCP ツールが利用可能です。
build_apk()— デコードされた APKTool プロジェクトから APK をビルドします。get_manifest()— デコードされた APK プロジェクトから AndroidManifest.xml コンテンツを取得します。get_apktool_yml()— デコードされた APK プロジェクトから apktool.yml 情報を取得します。list_smali_directories()— プロジェクト内のすべての smali ディレクトリを一覧表示します。list_smali_files()— 特定の smali ディレクトリ内の smali ファイルを一覧表示します。オプションでパッケージ プレフィックスでフィルター処理されます。get_smali_file()— クラス名で特定の smali ファイルの内容を取得します。modify_smali_file()— 特定の smali ファイルの内容を変更します。list_resources()— プロジェクト内のリソースを一覧表示します。オプションでリソース タイプ別にフィルター処理します。get_resource_file()— 特定のリソース ファイルの内容を取得します。modify_resource_file()— 特定のリソース ファイルの内容を変更します。search_in_file()— 指定された拡張子を持つファイル内のパターンを検索します。clean_project()— 再構築の準備としてプロジェクト ディレクトリをクリーンアップします。decode_apk()— APKTool を使用して APK ファイルをデコードし、リソースと smali コードを抽出します。
🗒️ サンプルプロンプト
🔍 基本的なコードの理解
「dvac プロジェクトのすべての smali ディレクトリを一覧表示します。」
「dvac プロジェクトのパッケージ プレフィックス com.vulnerable.component の下にあるすべての smali ファイルを表示してください。」
「com.vulnerable.component.MainActivity クラスの smali コードを取得します。」
「MainActivity.smali を以前のバージョンと比較し、違いを表示します。」
「dvac プロジェクトの smali ファイルで startActivity の使用状況を検索します。」
🛡️ 脆弱性検出
「dvac AndroidManifest.xml で宣言された権限を分析し、危険な権限にフラグを設定します。」
「プロジェクト内のすべての .xml および .smali ファイルでハードコードされた URL または IP を検索します。」
「smali ファイル内の PendingIntent.getActivity の使用箇所をすべて検索します。」
「dvac の AndroidManifest.xml でエクスポートされたアクティビティまたはレシーバーを確認します。」
「android.permission.SEND_SMS または READ_CONTACTS にアクセスするすべての smali ファイルを一覧表示します。」
🛠️ リバースエンジニアリングヘルパー
「このAPK:dvac.apkをデコードし、dvacというプロジェクトを作成してください。」
「test-harness という新しい APKTool プロジェクトを作成します。」
「再構築前に dvac プロジェクトをクリーンアップしてください。」
「外部分析のために dvac プロジェクトから DEX ファイルを抽出します。」
「MainActivity.smali を変更して、onCreate() の先頭にログ ラインを挿入します。」
📦 静的解析
「dvac プロジェクトから完全な AndroidManifest.xml を取得します。」
「dvac プロジェクトの apktool.yml の内容を表示します。」
「レイアウトタイプのすべてのリソース ファイルを一覧表示します。」
「すべてのリソース ファイルと smali ファイルで「password」という単語を検索します。」
「使用されている権限を確認し、一般的な過剰権限のリスクと比較してください。」
🤖 AIコードの改変
「MainActivity.smali の onCreate() メソッドを変更してトースト メッセージを追加します。」
「strings.xml 内のすべての http:// リンクを https:// に置き換えます。」
「AndroidManifest.xml 内のすべてのアクティビティに android:exported=false 属性を追加します。」
「LoginManager.smali のメソッドvalidateLoginにパッチを適用して、常にtrueを返すようにします。」
「MainActivity.smali 内のすべてのメソッドにログ ステートメントを追加します。」
📄 ドキュメントとメタデータ
「ワークスペース内のすべてのデコードされた APKTool プロジェクトを一覧表示します。」
「バージョン、元の APK メタデータ、圧縮設定を確認するには、apktool.yml 構成を見せてください。」
「利用可能なすべての Android デバイスを ADB 経由で接続します。(ADB MCP サーバーに移行されます。」)
「apktool.yml からプロジェクト dvac に関するメタデータを取得します。」
「現在サーバーにインストールされているAPKToolのバージョンを確認してください。」
🛠️ はじめに
1. リリースからダウンロード: https://github.com/zinja-coder/apktool-mcp-server/releases
2. OllamaとZin MCPクライアントを使用してローカルLLMで実行する - 推奨
⚡ STDIO MCP サーバー用の軽量、高速、シンプルな CLI ベースの MCP クライアント。ギャップを埋め、Ollama を実行しているローカル LLM と MCP サーバー間のブリッジを提供します。
今すぐチェック: https://github.com/zinja-coder/zin-mcp-client
デモ: 近日公開予定...
🤖 3. クロードデスクトップのセットアップ
Claude Desktop が MCP を有効にして実行されていることを確認します。
たとえば、私は Kali Linux に以下を使用しました: https://github.com/aaddrick/claude-desktop-debian
MCP サーバーを構成して LLM ファイルに追加します。
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
そしてその中には次の内容が含まれています:
交換する:
path/to/uv``uv実行ファイルへの実際のパスに置き換えますpath/to/apktool-mcp-serverこのリポジトリをクローンした場所への絶対パスです。
次に、組み込みの統合を使用して、コードをナビゲートし、リアルタイムのコード レビュー プロンプトを介して対話します。
バグ、問題、機能の提案、パフォーマンスの問題、一般的な質問、ドキュメントの問題を報告します。
それぞれのテンプレートで問題を開いてください。
Claude デスクトップ クライアントでテスト済み。他の AI のサポートも近日中にテストされる予定です。
🙏 クレジット
このプロジェクトは、 @iBotPeachesが開発・保守するオープンソースのAndroidリバースエンジニアリングツール「Apktool」用のMCPサーバーです。APKのコアとなるデコードおよびリソース処理ロジックはすべてiBotPeachesに帰属します。私は、AI機能を備えたMCPサーバーをサポートするために、このサーバーを拡張しただけです。
Apktool のオリジナルの README.md は、参照とクレジットのためにこのリポジトリに含まれています。
また、Debian ベースの Linux 用に Claude デスクトップを開発してくれた@aaddrickにも大いに感謝いたします。
最後に、モデル コンテキスト プロトコルを開発した@anthropicsと@FastMCPチームに感謝します。
そして、このようなプロジェクトを可能にするためにライブラリと依存関係を提供してくれたすべてのオープンソース プロジェクトのメンテナーと貢献者。
📄 ライセンス
apktool-mcp-serverと関連プロジェクトはApache 2.0を継承しています。
⚖️ 法的警告
免責事項
apktool-mcp-serverツールおよび本プロジェクトの関連ツールはすべて、教育、研究、および倫理的なセキュリティ評価のみを目的としています。これらは「現状有姿」で提供され、明示的または黙示的な保証は一切ありません。ユーザーは、これらのツールの使用が適用されるすべての法律、規制、および倫理ガイドラインに準拠していることを保証する責任を単独で負います。
apktool-mcp-server使用することにより、お客様は、ご自身が所有するアプリケーションや明示的に分析を許可されたアプリケーションなど、テストを許可された環境でのみこれらを使用することに同意するものとします。これらのツールを不正なリバースエンジニアリング、知的財産権の侵害、または悪意のある活動のために悪用することは固く禁じられています。
apktool-mcp-serverの開発者は、これらのツールの使用または誤用に起因するいかなる損害、データ損失、法的結果、その他の結果についても責任を負いません。ユーザーは、自らの行動および使用によって生じたあらゆる影響について全責任を負うものとします。
責任を持って使用してください。知的財産を尊重し、倫理的なハッキング慣行に従ってください。
🙌 貢献またはサポート
貢献
役に立ちましたか?⭐️をお願いします
アイデアをお持ちですか?問題を報告したり、PRを送信したりしてください
上に何か構築しましたか?DM またはメンションしてください。README に追加します。
監査を受け、評価バッジを取得
監査と評価バッジの提供をいただいた Mseep.net に感謝します。
リバース エンジニアリングと AI コミュニティのために ❤️ を込めて構築されました。