Skip to main content
Glama
1111laaaddaaa

StaticApkAuditor MCP

StaticApkAuditor MCP

Сервер Model Context Protocol (MCP), который предоставляет декомпиляцию на основе Apktool плюс набор пользовательских эвристик статического анализа для оценки безопасности Android APK через команды на естественном языке в Claude Code / Claude Desktop.

Для чего это нужно

Вы указываете ему на APK. Он декомпилирует его, а затем предоставляет AI-ассистенту набор инструментов для анализа результата — поверхность атаки, разрешения, захардкоженные секреты, использование криптографии, нативные библиотеки, кандидаты в бизнес-логику — и перекрёстно сверяет находки с другими инструментами, такими как MobSF. Каждый вызов логируется на диск в виде markdown-отчёта, так что в итоге вы получаете аудиторский след, а не просто транскрипт чата.

Это инструмент статического анализа, а не полный пентест. Некоторые инструменты выдают кандидатов для ручной/динамической проверки, а не подтверждённые уязвимости — это явно указано в описаниях инструментов и во встроенных промптах. Поведение во время выполнения (гонки, обходы рабочих процессов, фактическая эксфильтрация данных) требует динамического тестирования (Frida, Burp/mitmproxy, реальное устройство) для подтверждения.

Related MCP server: GDA-MCP-Server

Быстрый старт

Предполагается, что Java, Apktool и Python 3.10+ уже установлены (см. Предварительные требования ниже, если нет).

# 1. Set up the project folder
mkdir static-apk-auditor && cd static-apk-auditor

# 2. Create a venv and install the one dependency
python3 -m venv venv
source venv/bin/activate          # Windows: venv\Scripts\activate
pip install -r requirements.txt

# 3. Sanity check — should hang waiting for stdio input, Ctrl+C to stop
python3 server.py

# 4. Register with Claude Code (adjust paths to your actual location)
claude mcp add static-apk-auditor \
  --env APKTOOL_WORK_DIR=$(pwd)/data \
  -- $(pwd)/venv/bin/python3 $(pwd)/server.py

# 5. Verify it connected
claude mcp list

Затем в сессии claude, в той же папке, откуда вы выполнили claude mcp add (регистрация по умолчанию привязывается к области этой папки):

/mcp__static-apk-auditor__security_audit
/absolute/path/to/some.apk

или просто спросите на простом языке — модель сама вызовет decode_apk и остальные инструменты:

Decompile /absolute/path/to/some.apk and give me a quick security triage.

См. Промпты и Инструменты ниже для полного списка возможностей, или выполните /mcp в сессии Claude Code, чтобы просмотреть их в интерактивном режиме.

Структура проекта

static-apk-auditor/                  # your folder can be named anything — this is just an example
├── server.py                    # the MCP server — single file, FastMCP-based
├── requirements.txt              # just "mcp"
├── README.md                     # this file
├── prompts/
│   ├── security_audit.md         # 16-point checklist, OWASP Mobile Top 10 mapping
│   └── mobsf_review.md           # MobSF finding validation workflow
├── venv/                         # created locally, not part of the repo
└── data/                         # created automatically on first decode_apk call
                                   # (this is APKTOOL_WORK_DIR — see Configuration below)

Структура данных времени выполнения (создаётся автоматически)

Каждый анализируемый APK получает свою собственную самодостаточную папку в APKTOOL_WORK_DIR:

$APKTOOL_WORK_DIR/<apk_filename_without_extension>/
├── source/
│   └── <original>.apk           # copy of the APK you pointed the tool at
├── decoded/
│   ├── AndroidManifest.xml
│   ├── smali/, smali_classes2/, ...
│   ├── res/, assets/, lib/
│   └── ...                      # apktool's decompiled output
├── reports/
│   ├── 20260706_175359_809_decode_apk.md
│   ├── 20260706_175412_112_analyze_manifest.md
│   ├── 20260706_175430_501_check_root_detection.md
│   └── ...                      # one markdown file per tool call, ever
└── final_reports/
    ├── 20260706_223500_123_security_audit.md
    └── 20260706_224100_456_mobsf_review.md
                                   # the finished, synthesized reports
                                   # (Summary + Detailed Findings + Risk Table),
                                   # saved explicitly via save_final_report

Каждый вызов инструмента — независимо от того, какой инструмент, и независимо от успеха или неудачи — записывает markdown-файл с меткой времени в папку reports/ этого APK. Это не опциональное по-вызовное логирование; это декоратор (@logged_tool), применённый к каждому зарегистрированному инструменту, так что ни один вызов этого сервера не остаётся незаписанным. Каждый отчёт содержит имя инструмента, параметры, с которыми он был вызван, и его полный вывод.

reports/ и final_reports/ служат разным целям: reports/ — это журнал сырых вызовов (каждый отдельный вызов инструмента, полезно для аудита того, что именно и когда проверялось), а final_reports/ содержит только отполированные, читабельные отчёты — фактический результат, который вы передали бы разработчику или клиенту. Промпты security_audit и mobsf_review оба заканчиваются обязательным вызовом save_final_report, который и наполняет final_reports/; без этого вызова синтезированный отчёт существует только в ответе чата и нигде на диске не сохраняется.

Предварительные требования

1. Java JDK 8+ (требуется Apktool)

# Ubuntu/Debian
sudo apt update && sudo apt install default-jdk

# macOS
brew install openjdk
java -version

2. Apktool

# Ubuntu/Debian
sudo apt install apktool

# macOS
brew install apktool
apktool --version

3. Python 3.10+

python3 --version

4. (Опционально) aapt — для полных метаданных get_apk_info без необходимости предварительной декомпиляции

brew install aapt   # or: brew install --cask android-commandlinetools

Если aapt не установлен, get_apk_info вместо молчаливого сбоя переключается на разбор уже декомпилированного AndroidManifest.xml.

Установка

git clone <your-repo-or-just-copy-the-files> static-apk-auditor
cd static-apk-auditor
python3 -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate
pip install -r requirements.txt

Проверка:

python3 server.py
# Should hang waiting for stdio input (that's normal) — Ctrl+C to stop.

Подключение к Claude Code

claude mcp add apktool-pro \
  --env APKTOOL_WORK_DIR=/absolute/path/to/static-apk-auditor/data \
  -- /absolute/path/to/static-apk-auditor/venv/bin/python3 /absolute/path/to/static-apk-auditor/server.py

Проверка:

claude mcp list
claude mcp get apktool-pro   # should show "✔ Connected"

Примечание: claude mcp add регистрирует сервер с областью действия текущей директории по умолчанию (local scope). Если вы хотите, чтобы он был доступен из любого проекта, добавьте --scope user.

Подключение к Claude Desktop (альтернатива)

Отредактируйте ваш конфигурационный файл (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "apktool-pro": {
      "command": "/absolute/path/to/static-apk-auditor/venv/bin/python3",
      "args": ["/absolute/path/to/static-apk-auditor/server.py"],
      "env": {
        "APKTOOL_WORK_DIR": "/absolute/path/to/static-apk-auditor/data"
      }
    }
  }
}

Перезапустите Claude Desktop после сохранения.

Конфигурация (переменные окружения)

Переменная

По умолчанию

Назначение

APKTOOL_PATH

apktool

Путь к исполняемому файлу apktool, если его нет в PATH

AAPT_PATH

aapt

Путь к aapt, если его нет в PATH

APKTOOL_WORK_DIR

~/.static-apk-auditor

Корневая папка для всех данных source/decoded/reports по каждому APK

Инструменты

Основные (декомпиляция и манифест)

Инструмент

Параметры

Описание

decode_apk

apk_path, force=False

Декомпилирует APK с помощью apktool. Вывод сохраняется в APKTOOL_WORK_DIR/<slug>/decoded/ (не во временную директорию), а копия исходного APK сохраняется в .../source/.

get_apk_info

apk_path

Базовая метаинформация: пакет, версия, уровни SDK, размер файла. Использует aapt, если доступен, иначе переключается на разбор декомпилированного манифеста.

build_apk

decoded_dir, output_apk=None

Пересобирает APK из (возможно, модифицированной) декомпилированной директории. Результат без подписи — подписывайте отдельно с помощью apksigner.

install_framework

framework_apk

Устанавливает системный framework APK, чтобы apktool мог декомпилировать системные/OEM-приложения, которые на него ссылаются.

analyze_manifest

decoded_dir

Разбирает AndroidManifest.xml напрямую через xml.etree: пакет/версия/SDK, экспортированные компоненты (Activity/Service/Receiver/Provider), intent-фильтры/глубокие ссылки, debuggable/allowBackup/taskAffinity.

list_permissions

decoded_dir

Перечисляет все запрошенные разрешения, помечает те, которые классифицируются как «опасные» моделью разрешений Android.

extract_strings

decoded_dir, locale="en"

Извлекает строковые ресурсы для указанной локали.

find_smali_references

decoded_dir, pattern, max_matches=200

Поиск по регулярному выражению во всех декомпилированных .smali-файлах, с указанием файла и строки для каждого совпадения.

Эвристики безопасности

Инструмент

Параметры

Описание

list_native_libraries

decoded_dir

Перечисляет библиотеки .so и архитектуры CPU, поставляемые в APK — помечает код, в который smali-поиск заглянуть не может.

check_ssl_pinning

decoded_dir

Сканирует на кастомные реализации TrustManager/HostnameVerifier, которые могут обходить проверку сертификатов, а также на использование CertificatePinner и содержимое network_security_config.xml.

check_pending_intents

decoded_dir

Находит вызовы PendingIntent.getActivity/getBroadcast/getService и помечает те, где рядом нет FLAG_IMMUTABLE.

extract_js_bundle_strings

decoded_dir, pattern=<url regex>

Для React Native / Expo приложений: ищет в assets/*.bundle и assets/*.js по шаблону (по умолчанию извлекает URL — обычно именно там утекают реальные эндпоинты бэкенда).

check_root_detection

decoded_dir

Сканирует сигнатуры обнаружения root/эмулятора и защиты от взлома: пути к su-бинарникам, RootBeer/RootTools, SafetyNet, Play Integrity, тег сборки test-keys, имена методов вида isRooted. Наличие подсказывает, что вам нужно обойти для динамического тестирования; отсутствие само по себе является находкой для чувствительных приложений.

Разведка бизнес-логики

Инструмент

Параметры

Описание

map_sensitive_flows

decoded_dir, extra_keywords=None

Находит методы/классы, чьи имена указывают на чувствительные операции (платежи, права доступа, роли, скидки, квоты), и показывает ближайшие вызовы invoke-* как лёгкий контекст вызова. Карта кандидатов для ручной/динамической проверки — не подтверждённый список уязвимостей.

find_client_side_only_checks

decoded_dir

Эвристика: помечает совпадения чувствительных ключевых слов, где локальное сравнение (if-*/cmp-*) появляется без соседнего сетевого вызова — предполагает, что решение может приниматься на стороне клиента и, возможно, обходится патчем + пересборкой.

Валидация отчётов MobSF

Tool

Parameters

Description

load_mobsf_report

report_path

Загружает и нормализует JSON-отчёт статического анализа MobSF (code_analysis, manifest_analysis, permissions, urls/emails/firebase_urls, network_security, certificate_analysis). Сам по себе не оценивает достоверность.

cross_validate_mobsf_finding

decoded_dir, finding_pattern, mobsf_file_hint=None

Перекрёстно сверяет одну находку MobSF с вашим собственным декомпилированным выводом (smali + строковые ресурсы), чтобы выявить ложные срабатывания. Возвращает доказательства для классификации моделью — Confirmed / False Positive / Needs Manual Review — сам он не классифицирует.

Промпты (управляемые сценарии)

Промпты вызываются явно как слэш-команды в Claude Code (/apktool-pro:<name>), в отличие от инструментов, которые модель вызывает сама по мере необходимости.

Prompt

Arguments

What it does

security_audit

apk_path

Запускает полный чек-лист из 16 пунктов (поверхность атаки, разрешения, секреты, криптография, WebView, хранилище, SSL pinning, перехват задач, обнаружение root, открытые receivers/providers, JS-бандл, нативные библиотеки, логирование, версии зависимостей, изменяемость PendingIntent, бизнес-логика) и выводит: Сводка → Подробные находки (с оценкой уверенности + шагами PoC для adb) → Таблица рисков, сопоставленная с OWASP Mobile Top 10 (M1–M10).

mobsf_review

apk_path, mobsf_report_path

Загружает JSON-отчёт MobSF, перекрёстно сверяет каждую находку с фактическим декомпилированным кодом, классифицирует каждую как Confirmed/False Positive/Needs Manual Review, независимо от собственной оценки MobSF пересматривает серьёзность и формирует приоритизированный список действий только по подтверждённым находкам.

quick_triage

apk_path

Быстрый проход: экспортируемые компоненты + опасные разрешения + очевидные захардкоженные секреты. Для случаев, когда полный аудит не нужен.

Примеры использования

Use decode_apk to decompile /path/to/app.apk
/apktool-pro:security_audit apk_path="/path/to/app.apk"
Use check_root_detection on the decompiled output
/apktool-pro:mobsf_review apk_path="/path/to/app.apk" mobsf_report_path="/path/to/mobsf_report.json"

Чтобы в любой момент увидеть все доступные инструменты и их точные параметры, выполните /mcp в сессии Claude Code и выберите apktool-pro.

Получение отчёта MobSF

Если вы запускаете MobSF локально:

# upload the APK, get back a hash
curl -F 'file=@/path/to/app.apk' http://localhost:8000/api/v1/upload \
  -H "Authorization: <MOBSF_API_KEY>"

# fetch the JSON report using that hash
curl -X POST http://localhost:8000/api/v1/report_json \
  -H "Authorization: <MOBSF_API_KEY>" \
  --data "hash=<hash_from_upload>" -o mobsf_report.json

Известные ограничения

  • Только статический анализ. Здесь ничего не выполняет приложение и не перехватывает реальный трафик. Находки по бизнес-логике и некоторые «подтверждённые» статические находки всё ещё требуют динамической проверки, прежде чем считать их доказанными.

  • Вывод build_apk не подписан. Подпишите с помощью apksigner перед установкой на устройство.

  • Эвристики на основе регулярных выражений (check_ssl_pinning, check_root_detection, map_sensitive_flows и т. д.) могут пропускать обфусцированный/переименованный код и давать ложные срабатывания на несвязанных совпадениях — относитесь к их выводу как к короткому списку для проверки, а не как к вердикту.

  • install_framework нужен только для декодирования системных/OEM-APK, которые ссылаются на framework-res.apk; для анализа большинства сторонних приложений он не понадобится.

Заметки по дизайну

  • APKTOOL_WORK_DIR всегда учитывается — каждый APK получает постоянную самодостаточную папку (source/, decoded/, reports/, final_reports/); ничего не записывается во временную tempdir.

  • get_apk_info при отсутствии aapt переходит на разбор декодированного манифеста, а не возвращает ничего полезного.

  • Каждый вызов инструмента автоматически логируется (reports/); готовые синтезированные отчёты сохраняются отдельно через save_final_report (final_reports/).

  • Построен на FastMCP для простой регистрации инструментов/промптов.

Правовые аспекты / ответственное использование

Анализируйте только APK, которыми вы владеете или на тестирование которых у вас есть явное письменное разрешение. Декомпилированные APK могут содержать чувствительные пользовательские данные — обрабатывайте вывод соответствующим образом и очищайте APKTOOL_WORK_DIR после работы, если в нём есть клиентские данные. Этот инструмент сам по себе не выполняет сетевую эксфильтрацию или активную эксплуатацию; PoC-команды в выводе security_audit (например, adb shell am start ...) предназначены для ручного запуска на устройстве/эмуляторе, которым вы управляете.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that enables AI assistants to analyze Android APK and iOS IPA files for security issues through natural language conversation, including permission auditing, secret detection, and SDK enumeration.
    12
    14
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Android APK static analysis in Cursor/Claude via GDA CLI Server, supporting reconnaissance, attack surface scanning, and code decompilation through natural language.
    11
    GPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for analyzing Android APK, DEX, or JAR files via a headless jadx engine, enabling LLM agents to query decompiled code, symbols, call graphs, and more.
    1
    GPL 3.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/1111laaaddaaa/static-apk-auditor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server