
Агентный MCP-сервер в стиле C2 для инструментации Frida на рутированных Android и джейлбрейкнутых iOS.
MCP-сервер с потоковым HTTP-транспортом, который выполняет динамическую инструментацию Frida полностью на устройстве — не требуется никаких клиентских инструментов.
Этот проект запускается непосредственно на рутированных Android и взломанных (jailbreak) iOS-устройствах, предоставляя Frida как набор инструментов, доступных через HTTP. Любой MCP-совместимый клиент может подключиться к устройству в сети и выполнять динамическую инструментацию без установки каких-либо инструментов Frida локально.
В дальнейшем разработка ориентирована на Gemini CLI и Claude Code в качестве основных клиентов, поскольку оба развивают нативную мультиагентную оркестрацию и поддержку MCP — что соответствует направлению этого проекта по объединению нескольких MCP-серверов (например, FridaC2MCP + Jadx-MCP) в автоматизированные рабочие процессы. 5ire активно использовался на ранних этапах разработки и остается отличным вариантом GUI для взаимодействия с сервером.
Gemini CLI — зарегистрируйте MCP-сервер устройства (замените <DEVICE_IP> на LAN-адрес вашего телефона):
gemini mcp add --transport http frida-c2-mcp http://<DEVICE_IP>:6767/mcp
Демонстрация Android
https://github.com/user-attachments/assets/7cee77c5-ed40-4797-b6b5-3edb5fdd03ce
Демонстрация iOS
https://github.com/user-attachments/assets/1f0fa9c4-6fd0-4dfd-a640-78c9f8a95a6b
keep_alive=True).Цель — полностью автоматизированное, управляемое агентом тестирование безопасности мобильных приложений. Предоставляя Frida в качестве MCP-сервера, пентестер или ИИ-агент может проверять и изменять поведение приложения без прямого USB-подключения или локального доступа к оболочке после первоначальной настройки. Клиенту не требуется никаких инструментов Frida — все выполняется на целевом устройстве.
Типичный рабочий процесс:
Это естественным образом распространяется на многопользовательские конфигурации: запустите несколько телефонов в одной сети, каждый со своим MCP-сервером, и управляйте ими с помощью одного агента.
cli.py)Работает в Termux на рутированном Android. Использует esbuild для пакетирования скриптов на лету и frida-java-bridge для инструментации среды выполнения Java/Android. Хотя frida-compile технически доступен через frida-tools, его нельзя использовать в Termux, поскольку домен SELinux untrusted_app в Android блокирует отображения памяти W^X, необходимые для JIT-компилятора V8 — что вызывает SIGSEGV при любом нетривиальном скрипте. esbuild — это статически скомпонованный бинарник Go без JIT, поэтому он работает чисто в любом контексте SELinux.
ios.py)Работает на iOS с джейлбрейком без рута (протестировано на iPhone X, iOS 16.7.12 с palera1n). Использует frida-compile для пакетирования скриптов и frida-objc-bridge для инструментации среды выполнения Objective-C. Node.js не требуется на устройстве.
Порт для iOS потребовал индивидуальной компиляции целого набора инструментов Python 3.12 для arm64, поскольку ни один из этих пакетов не был доступен для iOS с джейлбрейком без рута:
Предварительно скомпилированные wheels и Python .deb включены в ios_precompiled/, чтобы вам не пришлось собирать их самостоятельно. См. setup.md для инструкций по установке на iOS.
Выполнение на устройстве: И сервер Frida, и клиент работают на целевом устройстве. MCP-сервер преобразует HTTP-запросы в команды Frida. Это отход от традиционной модели, где клиент Frida работает на отдельном компьютере.
Потоковый HTTP-транспорт: Использует потоковый HTTP вместо stdio для поддержки нескольких одновременных соединений и многопользовательской оркестрации.
Пакетирование скриптов на устройстве: Frida 17+ требует пакетирования JavaScript. На Android esbuild обрабатывает пакетирование (он работает в любом контексте SELinux без JIT). На iOS используется frida-compile с автоматически вставляемыми импортами ObjC-моста.
Дизайн, ориентированный на агентов: Создан для использования ИИ-агентами, а не людьми-операторами. Интерфейс инструмента MCP спроектирован так, чтобы LLM могла автономно выполнять полный рабочий процесс пентеста — запускать приложения, подключать сессии, писать и внедрять перехватчики, читать результаты — в одном диалоге.
FridaC2MCP — это каркас для автоматизированной платформы мобильного пентеста. Идея заключается в объединении нескольких специализированных MCP-серверов — например: FridaC2MCP для динамической инструментации, Jadx-MCP для статического анализа — и позволяет ИИ-агентам управлять всем рабочим процессом. Декомпилируйте APK, определите интересные методы, затем перехватите их в реальном времени. Без ручного переключения инструментов, без копирования между терминалами.
Это естественно сочетается с Gemini CLI и Claude Code, которые уже поддерживают многопользовательские MCP-процессы нативно. Платформе не нужно реализовывать свою собственную оркестрацию агентов — ей нужно только предоставить правильные MCP-серверы и позволить существующим агентам делать то, что они умеют лучше всего.
iOS OpenSSL / SSL: Интеграция OpenSSL в сборке Python 3.12 не полностью корректна. Это не блокирует работу MCP-сервера (который не использует HTTPS для собственного транспорта), но может иметь значение, если будущей зависимости потребуется работающий контекст TLS на устройстве. Подробности см. в devlog.md.
FastMCP 2.x только: FastMCP 3.x внес изменения, нарушающие обратную совместимость. Android и iOS зафиксированы на версии ниже 3.x. Устанавливайте через requirements-android.txt или requirements-ios.txt — не обновляйте до непроверенной версии fastmcp, пока этот репозиторий не мигрирует.
Этот проект является сетевой эволюцией оригинального FridaMCP от Дэниела Накова. В то время как оригинальный проект впервые применил Frida в качестве MCP-сервера через stdio, FridaC2MCP адаптирует эту концепцию для удаленных многопользовательских сред C2 с использованием потокового HTTP и современного пакетирования Frida 17.
Среда выполнения Python 3.12 для iOS основана на python3.12-ios-arm64 от k1tty-xz. Оригинальный проект был ориентирован на джейлбрейки с полным доступом (rootful) — потребовались значительные модификации для адаптации к средам джейлбрейка без рута (palera1n, структура /var/jb/).
Это концептуальный прототип. В нем отсутствует надлежащее управление сессиями, корректная обработка ошибок и любая форма безопасности. Все соединения не зашифрованы и не аутентифицированы. Используйте на свой страх и риск и только в безопасных изолированных сетевых средах.
| Package | Version | Build System | Why |
|---|
| Python | 3.12.5 | configure + Make | Базовая среда выполнения — недоступна через Procursus |
| frida-python | 17.6.0 | Meson + setuptools | Основные привязки Frida |
| pydantic-core | 2.41.5 | maturin (Rust/PyO3) | Требуется для FastMCP |
| cryptography | 47.0.0.dev1 | maturin (Rust) + OpenSSL 3.x | Цепочка зависимостей; требовалось исправление SIGILL для A11 |
| cffi | 2.0.1.dev0 | setuptools + libffi | Требуется для cryptography |
| pyyaml | 7.0.0.dev0 | setuptools + libyaml | Требуется для зависимостей FastMCP |
| rpds-py | 0.30.0 | maturin (Rust/PyO3) | Требуется для зависимостей FastMCP |
| lupa | 2.6 | setuptools + Lua | Встраивание Lua |