中文 | English
ZAFrida UI - PyCharm Frida Plugin
Versione attuale: 0.3.7

Novità principali della versione 0.3.7
- Ogni ZAFrida Project può selezionare o condividere in modo indipendente l'ambiente Python/Frida; per impostazione predefinita viene utilizzato l'interprete del progetto PyCharm corrente, con supporto per ambienti locali come venv, Conda, uv, Poetry, Pipenv, Hatch.
- UI della sessione e Project Settings ridisegnati: visualizzazione completa delle versioni di plugin, Python e Frida, con pannello dei log adattivo e trascinabile e stato della sessione ottimizzati.
- Supporto completo per file
.js / .ts, Frida 16/17, commutazione tra più ambienti di progetto e flussi di connessione USB, Remote e Gadget.
- API HTTP locale, CLI e Skill in cinese potenziate con ripristino del dispositivo, attesa della sessione e lettura incrementale dei log; rimosso il livello di adattamento MCP duplicato e instabile.
Introduzione al progetto
Strumento grafico Frida progettato per PyCharm/IntelliJ
ZAFrida UI è un plugin per l'operazione grafica di Frida integrato in PyCharm e negli IDE della serie JetBrains. È pensato per risolvere i problemi delle operazioni Frida da riga di comando, complesse e macchinose, e della gestione caotica degli script, offrendo una interfaccia UI completa per gestire dispositivi, processi, script e log.
Il punto di forza principale risiede nel suo sistema di gestione dei modelli "a caselle di controllo": l'utente può inserire dinamicamente frammenti di codice nello script principale o commentarli semplicemente spuntando/sbuntando le caselle, realizzando così un assemblaggio di script Hook "a blocchi". Inoltre, il plugin include una gestione completa a progetti (zafrida-project.xml) con supporto per il rapido passaggio tra più configurazioni di dispositivi e ambienti.
ZAFrida non sostituisce Frida, ma funge da potente involucro UI per frida-tools, integrandosi perfettamente con il vostro ambiente Python e Frida esistente.
Wiki semplificata: ZAFrida UI Wiki semplificata (BBS) (questa è la Wiki più semplice)
Tutorial dettagliato: ZAFrida UI Wiki tutorial dettagliato
Dimostrazione

Avvio rapido
- Installare il plugin: cercare "ZAFrida" nel marketplace dei plugin dell'IDE oppure installarlo da disco.
- Configurare l'ambiente predefinito: per impostazione predefinita viene utilizzato l'Interprete Python del progetto PyCharm corrente; nelle impostazioni globali
Settings -> Tools -> ZAFrida vengono mantenuti solo i valori predefiniti di nome/percorso degli strumenti.
- Creare un progetto: fare clic con il tasto destro nella vista del progetto ->
New Frida Project.
- Se il progetto richiede una versione diversa di Frida, aprire le
Project Settings di ZAFrida, selezionare l'interprete Python o la directory dell'ambiente e fare clic su Test.
- Scrivere/selezionare lo script: nel pannello Run selezionare il proprio
agent.js o agent.ts.
- Debug Hook:
- Connettere il dispositivo (USB o Remote o Gadget).
- Selezionare il processo di destinazione o il nome del pacchetto.
- Fare clic su Run.
- Usare i modelli: passare alla scheda
Templates e spuntare le funzionalità Hook desiderate (ad es. "SSL Pinning Bypass"); il codice verrà iniettato automaticamente nello script.
- Automazione Skills (opzionale): disattivata per impostazione predefinita. Andare su
Settings/Preferences -> ZAFrida -> Skills HTTP API, spuntare Enable Skills per avviare automaticamente l'API locale (è anche possibile avviarla/fermarla manualmente con Start/Stop). Posizione di CLI e modelli:
- Skill e CLI principale:
skills-template/zafrida-http-control/
- Launcher compatibile con il vecchio percorso:
skills-cli/zafrida_skill_cli.py
Codice QR del gruppo di discussione
Caratteristiche
-
Gestione di dispositivi e processi
Integra frida-ls-devices e frida-ps, con supporto per l'aggiornamento in un clic dell'elenco dei dispositivi, la visualizzazione dei processi in esecuzione, delle app in esecuzione o delle applicazioni installate.
-
Connessione multi-modalità
Supporto completo per le modalità USB / Remote / Gadget, con Host e Port remoti personalizzabili, senza dover comporre manualmente complessi parametri da riga di comando.
-
Esecuzione interattiva degli script (Run / Attach)
- Supporta le due azioni Run (Spawn predefinito) e Attach, non un semplice "cambio di modalità".
- Supporta Force Stop per arrestare forzatamente l'applicazione di destinazione.
- Output dei log della console integrato, con salvataggio automatico dei log nella directory del progetto
zafrida-logs/.
-
Menu contestuale dell'editor JS / TypeScript (importante)
- Nell'area di modifica dei file Frida
.js o .ts, fare clic con il tasto destro per scegliere direttamente:
- Run Frida Script: esegue il file corrente come script principale (Spawn predefinito).
- Attach Frida Script: inietta il file corrente come script aggiuntivo nel processo di destinazione già in esecuzione.
- Prima dell'esecuzione, il file corrente viene salvato automaticamente e si passa automaticamente allo ZAFrida Project a cui appartiene lo script.
- Ideale per PoC rapidi, verifica di demo, modalità Gadget o iniezione immediata in processi già in esecuzione.
- Scorciatoie da tastiera:
- Windows / Linux:
Ctrl + Alt + S
- macOS:
⌘ + ⌥ + S
-
Inserimento Snippets dal menu contestuale dell'editor
- Nel menu contestuale dell'editor JS / TypeScript è disponibile ZAFrida Frida Snippets.
- Inserimento in un clic di frammenti di codice Frida comuni, ad esempio:
- Struttura wrapper
Java.perform
- Modello Hook per metodi Java
- Native Hook con
Interceptor.attach
- L'inserimento segue la WriteCommandAction dell'IDE, con possibilità di annullare/ripetere in sicurezza.
-
Sistema di modelli dinamici (innovazione principale)
- Modelli Hook comuni per Android / iOS integrati (ad es. SSL Pinning Bypass, Method Hook, Native Hook).
- Controllo a caselle di controllo: spuntare per inserire il codice, sbuntare per commentare automaticamente il codice, senza doverlo modificare o eliminare manualmente.
- Supporto per modelli personalizzati e anteprima in tempo reale del codice dei modelli nell'IDE.
-
Progettazione separata Run Script + Attach Script
- Supporta la coesistenza di uno Run Script principale e di uno Attach Script indipendente.
- Ideale per separare gli "Hook in fase di avvio" dalla "logica di iniezione in fase di esecuzione", facilitando il debug complesso e la manutenzione a lungo termine.