apktool-mcp-server (часть пакета Zin's Reverse Engineering MCP Suite)
⚡ Полностью автоматизированный сервер MCP, созданный на основе apktool для анализа APK-файлов Android с использованием LLM, таких как Claude, — выявляйте уязвимости, анализируйте манифесты и выполняйте обратную разработку без особых усилий.
Изображение создано с использованием инструментов искусственного интеллекта.
🤖 Что такое apktool-mcp-server?
apktool-mcp-server — это MCP-сервер для Apk Tool , который напрямую интегрируется с Model Context Protocol (MCP) для обеспечения поддержки обратного проектирования в реальном времени с помощью LLM, таких как Claude .
Подумайте: «Декомпиляция → Контекстно-зависимый анализ кода → Рекомендации ИИ» — все в режиме реального времени.
Посмотрите демо!
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()— сборка APK из декодированного проекта APKTool.get_manifest()— Получить содержимое AndroidManifest.xml из декодированного проекта APK.get_apktool_yml()— Получить информацию apktool.yml из декодированного проекта APK.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()— декодирует APK-файл с помощью APKTool, извлекая ресурсы и smali-код.
🗒️ Примеры подсказок
🔍 Базовое понимание кода
«Вывести список всех каталогов smali для проекта dvac».
«Покажите мне все файлы smali в пакете с префиксом com.vulnerable.component в проекте dvac».
«Получите smali-код для класса com.vulnerable.component.MainActivity».
«Сравните MainActivity.smali с предыдущей версией и покажите различия».
«Поиск использования startActivity в smali-файлах проекта dvac».
🛡️ Обнаружение уязвимостей
«Проанализируйте объявленные разрешения в dvac AndroidManifest.xml и отметьте опасные».
«Поиск жестко закодированных URL-адресов или IP-адресов во всех файлах .xml и .smali в проекте».
«Найти все случаи использования PendingIntent.getActivity в файлах smali».
«Проверьте наличие экспортированных действий или приемников в AndroidManifest.xml dvac».
«Вывести список всех файлов smali, которые имеют доступ к android.permission.SEND_SMS или READ_CONTACTS».
🛠️ Помощники обратного инжиниринга
«Расшифруйте этот APK: dvac.apk и создайте проект с именем dvac».
«Создайте новый проект APKTool под названием test-harness».
«Очистите проект DVAC перед перестройкой».
«Извлечь файлы DEX из проекта dvac для внешнего анализа».
«Измените MainActivity.smali, чтобы вставить строку журнала в начало onCreate()».
📦 Статический анализ
«Получить полный AndroidManifest.xml из проекта dvac».
«Показать содержимое apktool.yml для проекта dvac».
«Вывести список всех файлов ресурсов типа layout».
«Поиск слова пароль во всех файлах ресурсов и smali».
«Проверьте, какие разрешения используются, и сравните их с типичными рисками чрезмерного предоставления прав».
🤖 Модификация кода ИИ
«Измените метод onCreate() в MainActivity.smali, чтобы добавить всплывающее сообщение».
«Замените все ссылки http:// на https:// в strings.xml».
«Добавьте атрибут android:exported=false ко всем действиям в AndroidManifest.xml».
«Исправьте метод validateLogin в LoginManager.smali, чтобы он всегда возвращал значение true».
«Добавьте операторы регистрации в каждый метод в MainActivity.smali».
📄 Документация и метаданные
«Вывести список всех декодированных проектов APKTool в рабочей области».
«Покажите мне конфигурацию apktool.yml, чтобы просмотреть версию, исходные метаданные APK и настройки сжатия».
«Подключите все доступные устройства Android через ADB. (Для миграции на сервер ADB MCP.)»
«Получить метаданные о проекте dvac из его apktool.yml».
«Проверьте, какая версия APKTool в данный момент установлена на сервере».
🛠️ Начало работы
1. Скачать с Releases: https://github.com/zinja-coder/apktool-mcp-server/releases
2. Запуск на локальном LLM с использованием Ollama и Zin MCP Client — рекомендуется
⚡ Легкий, быстрый, простой клиент MCP на основе CLI для серверов STDIO MCP, который заполнит пробел и обеспечит мост между вашими локальными LLM, работающими под управлением Ollama, и серверами 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на фактический путь к вашему исполняемому файлуuvpath/to/apktool-mcp-serverна абсолютный путь к месту, куда вы клонировали этот репозиторий
Затем перемещайтесь по коду и взаимодействуйте с помощью подсказок по проверке кода в реальном времени, используя встроенную интеграцию.
Для сообщения об ошибках, проблемах, предложений функций, проблем с производительностью, общих вопросов, проблем с документацией.
Пожалуйста, откройте тему с соответствующим шаблоном.
Протестировано на Claude Desktop Client, поддержка других ИИ будет протестирована в ближайшее время!
🙏 Кредиты
Этот проект представляет собой MCP-сервер для Apktool , потрясающего инструмента обратной разработки Android с открытым исходным кодом, созданного и поддерживаемого @iBotPeaches . Вся основная логика декодирования APK и обработки ресурсов принадлежит им. Я только расширил его для поддержки моего MCP-сервера с возможностями ИИ.
📎 Оригинальный README (Apktool)
Оригинальный файл README.md от Apktool включен в этот репозиторий для справки и указания авторства.
Также огромное спасибо @aaddrick за разработку Claude Desktop для Linux на базе Debian.
И наконец, спасибо @anthropics за разработку Model Context Protocol и команде @FastMCP .
И все разработчики и участники проектов с открытым исходным кодом, которые предоставляют библиотеки и зависимости, делающие возможным такой проект.
📄 Лицензия
apktool-mcp-server и все связанные с ним проекты наследуют Apache 2.0
⚖️ Юридическое предупреждение
Отказ от ответственности
Инструменты apktool-mcp-server и все связанные инструменты в рамках этого проекта предназначены исключительно для образовательных, исследовательских целей и целей оценки этической безопасности. Они предоставляются «как есть» без каких-либо гарантий, явных или подразумеваемых. Пользователи несут исключительную ответственность за обеспечение того, чтобы их использование этих инструментов соответствовало всем применимым законам, правилам и этическим нормам.
Используя apktool-mcp-server , вы соглашаетесь использовать их только в средах, которые вы авторизованы для тестирования, например, в приложениях, которыми вы владеете или у вас есть явное разрешение на анализ. Любое ненадлежащее использование этих инструментов для несанкционированного обратного проектирования, нарушения прав интеллектуальной собственности или вредоносной деятельности строго запрещено.
Разработчики apktool-mcp-server не несут ответственности за любой ущерб, потерю данных, правовые последствия или другие последствия, возникшие в результате использования или неправильного использования этих инструментов. Пользователи несут полную ответственность за свои действия и любые последствия, вызванные их использованием.
Используйте ответственно. Уважайте интеллектуальную собственность. Следуйте этичным методам взлома.
🙌 Внесите свой вклад или поддержите
Внося вклад
Нашли полезным? Поставьте ⭐️
Есть идеи? Откройте тему или отправьте PR
Построили что-нибудь сверху? Напишите мне в личку или упомяните меня — я добавлю это в README!
Проверено и получен значок оценки
Благодарим Mseep.net за проведение аудита и предоставление значка оценки.
Создано с ❤️ для сообществ, занимающихся обратной разработкой и ИИ.