
Server MCP in stile C2 agentico per la strumentazione Frida su Android rooted e iOS jailbroken.
Un server MCP con trasporto HTTP streamable che esegue la strumentazione dinamica di Frida interamente sul dispositivo — nessun tool lato client richiesto.
Questo progetto gira direttamente su dispositivi Android rooted e iOS jailbroken, esponendo Frida come un insieme di strumenti richiamabili via HTTP. Qualsiasi client compatibile con MCP può connettersi a un dispositivo in rete ed eseguire strumentazione dinamica senza installare alcun tool Frida localmente.
In futuro, lo sviluppo punta su Gemini CLI e Claude Code come client principali, poiché entrambi stanno sviluppando supporto nativo per l'orchestrazione multi-agente e MCP — in linea con la direzione di questo progetto di comporre più server MCP (es. FridaC2MCP + Jadx-MCP) in workflow automatizzati. 5ire è stato usato ampiamente durante lo sviluppo iniziale e rimane un'ottima opzione GUI per interagire con il server.
Gemini CLI — registra il server MCP del dispositivo (sostituisci <DEVICE_IP> con l'indirizzo LAN del tuo telefono):
gemini mcp add --transport http frida-c2-mcp http://<DEVICE_IP>:6767/mcp
Demo Android
https://github.com/user-attachments/assets/7cee77c5-ed40-4797-b6b5-3edb5fdd03ce
Demo iOS
https://github.com/user-attachments/assets/1f0fa9c4-6fd0-4dfd-a640-78c9f8a95a6b
keep_alive=True).L'obiettivo è il testing di sicurezza mobile completamente automatizzato e guidato da agenti. Esponendo Frida come server MCP, un pentester o un agente AI può ispezionare e manipolare il comportamento di un'applicazione senza una connessione USB diretta o accesso shell locale dopo la configurazione iniziale. Il client non richiede alcun tool Frida: tutto gira sul dispositivo di destinazione.
Un workflow tipico:
Questo si estende naturalmente a configurazioni multi-dispositivo: esegui più telefoni sulla stessa rete, ciascuno con il proprio server MCP, e orchestrali da un singolo agente.
cli.py)Gira in Termux su Android rooted. Usa esbuild per il bundling degli script al volo e frida-java-bridge per la strumentazione del runtime Java/Android. Sebbene frida-compile sia tecnicamente disponibile tramite frida-tools, non può essere utilizzato su Termux perché il dominio SELinux untrusted_app di Android blocca i mapping di memoria W^X richiesti dal compilatore JIT di V8 — causando un SIGSEGV su qualsiasi script non banale. esbuild è un binario Go staticamente linkato senza JIT, quindi gira correttamente in qualsiasi contesto SELinux.
ios.py)Gira su iOS jailbroken rootless (testato su iPhone X, iOS 16.7.12 con palera1n). Usa frida-compile per il bundling degli script e frida-objc-bridge per la strumentazione del runtime Objective-C. Node.js non è richiesto sul dispositivo.
La porta iOS ha richiesto la compilazione personalizzata dell'intera toolchain Python 3.12 per arm64, poiché nessuno di questi pacchetti era disponibile per iOS jailbroken rootless:
| Pacchetto | Versione | Sistema di Build | Motivo |
|---|---|---|---|
| Python | 3.12.5 | configure + Make | Runtime di base — non disponibile tramite Procursus |
| frida-python | 17.6.0 | Meson + setuptools | Binding core di Frida |
| pydantic-core | 2.41.5 | maturin (Rust/PyO3) | Richiesto da FastMCP |
| cryptography | 47.0.0.dev1 | maturin (Rust) + OpenSSL 3.x | Catena di dipendenze; necessaria correzione SIGILL per A11 |
| cffi | 2.0.1.dev0 | setuptools + libffi | Richiesto da cryptography |
| pyyaml | 7.0.0.dev0 | setuptools + libyaml | Richiesto dalle dipendenze di FastMCP |
| rpds-py | 0.30.0 | maturin (Rust/PyO3) | Richiesto dalle dipendenze di FastMCP |
| lupa | 2.6 | setuptools + Lua | Embedding Lua |
Le wheel precompilate e il .deb di Python sono inclusi in ios_precompiled/ così non devi compilarle tu. Vedi setup.md per le istruzioni di installazione su iOS.
esbuild gestisce il bundling (gira in qualsiasi contesto SELinux senza JIT). Su iOS, viene usato frida-compile con gli import del bridge ObjC iniettati automaticamente.FridaC2MCP è un'impalcatura per un framework di pentesting mobile automatizzato. L'idea è comporre più server MCP specializzati — ad esempio: FridaC2MCP per la strumentazione dinamica, Jadx-MCP per l'analisi statica — e lasciare che gli agenti AI orchestrino l'intero workflow. Decompila un APK, identifica i metodi interessanti, poi agganciali dal vivo. Nessun cambio manuale di strumenti, nessun copia-incolla tra terminali.
Questo si abbina naturalmente a Gemini CLI e Claude Code, che già supportano nativamente workflow MCP multi-strumento. Il framework non ha bisogno di implementare la propria orchestrazione degli agenti — deve solo fornire i giusti server MCP e lasciare che gli agenti esistenti facciano ciò in cui sono bravi.
devlog.md per i dettagli.requirements-android.txt o requirements-ios.txt — non aggiornare a un fastmcp senza vincolo di versione finché questo repo non esegue la migrazione.