
zafrida-ui v0.3.7
Una finestra dello strumento UI di Frida all'interno di PyCharm / JetBrains IDEs.
中文 | 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->ZAFridavengono 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 Settingsdi ZAFrida, selezionare l'interprete Python o la directory dell'ambiente e fare clic suTest.
- Se il progetto richiede una versione diversa di Frida, aprire le
- Scrivere/selezionare lo script: nel pannello Run selezionare il proprio
agent.jsoagent.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
Templatese 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, spuntareEnable Skillsper avviare automaticamente l'API locale (è anche possibile avviarla/fermarla manualmente conStart/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
- Skill e CLI principale:
Codice QR del gruppo di discussione
Caratteristiche
-
Gestione di dispositivi e processi
Integrafrida-ls-devicesefrida-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
.jso.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
- Windows / Linux:
- Nell'area di modifica dei file Frida
-
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
- Struttura wrapper
- 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.
-
Configurazione a progetti (ZAFrida Project)
- Introduce il concetto di ZAFrida Project, salvando dispositivo, target, script, Attach Script, parametri di connessione, ecc. come un contesto di lavoro completo.
- Supporta nella Project View:
New Frida Projectper creare un nuovo progettoSelect Frida Projectper passare rapidamente al progetto attivo correnteLoad Frida Projectper importare una directory di progetto esistente
- Dopo il cambio di progetto, lo stato e la configurazione dell'UI vengono ripristinati automaticamente.
-
Analisi intelligente dell'ambiente Python / Frida
- Per impostazione predefinita analizza l'SDK Python del progetto PyCharm corrente; ogni ZAFrida Project può sovrascrivere individualmente l'interprete o la directory dell'ambiente.
- Supporta ambienti locali system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv, Hatch.
- Più ZAFrida Project possono selezionare lo stesso percorso per condividere l'ambiente, senza dover copiare il venv; ideale per mantenere separatamente ambienti Frida 16/17.
- Se nell'ambiente IDE corrente o nell'ambiente di progetto esplicito manca
frida-tools, viene generato un errore diretto, senza utilizzare silenziosamente un'altra versione dal PATH di sistema;Testmostra la versione effettiva di Frida. - Gli interpreti Python remoti come SSH, Docker, Docker Compose, WSL, ecc. non possono essere utilizzati per il sottoprocesso Frida locale.
-
Frida 17 / TypeScript
- La selezione dei file, Run/Attach dal menu contestuale e gli Snippets supportano
.js/.ts; la REPL di Frida 17 compila automaticamente-l agent.ts. - I modelli integrati sono stati migrati alle moderne API Module/NativePointer di Frida 17, mantenendo al contempo la compatibilità con gli ambienti comuni di Frida 16.
- La REPL di frida-tools include in modo compatibile i bridge standard Java/ObjC; quando si utilizzano
importdi moduli npm/di terze parti, gestire le dipendenze tramitefrida-create -t agento un progetto equivalente.
- La selezione dei file, Run/Attach dal menu contestuale e gli Snippets supportano
-
Interfaccia locale di automazione Skills
- L'API HTTP locale delle Skills (disattivata per impostazione predefinita) supporta la scoperta delle capacità, i progetti/ambienti Python, dispositivi e processi, Run/Attach, l'elenco dei log storici e la lettura incrementale dei log basata su cursore a byte.
- La Skill include flussi di ripristino
wait-device/wait-sessioncon limiti, distinguendo le letture che possono essere ritentate in sicurezza dalle operazioni con effetti collaterali che non possono essere riprodotte automaticamente. - Attivazione:
Settings/Preferences -> ZAFrida -> Skills HTTP API, spuntareEnable Skills. - CLI e modelli associati:
skills-template/zafrida-http-control/(Skill principale e CLI)skills-cli/zafrida_skill_cli.py(launcher compatibile con il vecchio percorso)
Casi d'uso
ZAFrida UI è adatto a tutti gli scenari di reverse engineering con Frida, in particolare:
- Test di penetrazione e analisi inversa di app Android / iOS.
- Processi di debug che richiedono il passaggio frequente tra diversi script Hook.
- Ingegneri abituati a utilizzare IDE (PyCharm/IDEA) per lo sviluppo misto Python, JavaScript e TypeScript.
Documentazione tecnica
-
Requisiti di ambiente:
- IntelliJ IDEA o PyCharm (consigliato 2024.3+)
- Python3 installato localmente con
frida-tools(pip install frida-tools) - Assicurarsi che
frida,frida-ps,frida-ls-devicessiano nel PATH di sistema o specificare i percorsi nelle impostazioni del plugin.
-
Segnalazione problemi: Github Issues
Avvio del progetto
- Clonare il codice sorgente:
git clone https://github.com/yilongmd/zafrida-ui.git - Aprire il progetto con IntelliJ IDEA.
- Eseguire l'attività Gradle
runIdeper avviare l'ambiente di debug.
Schermate del sistema
Interfaccia principale e pannello di esecuzione (Run Panel)
Fornisce selezione del dispositivo, selezione dello script, configurazione della modalità di esecuzione e output della console.

Gestione dei modelli dinamici (Template Panel)
A sinistra si seleziona la categoria, al centro si spuntano i modelli, a destra si visualizza l'anteprima in tempo reale del codice. Le caselle di controllo controllano direttamente l'attivazione o meno del contenuto dello script.

Interfaccia delle impostazioni (Settings)
Supporta la personalizzazione dei percorsi degli strumenti Frida, dell'indirizzo di connessione remota e della configurazione dei log.

Procedura guidata di creazione del progetto
Crea rapidamente una struttura di progetto Frida standardizzata.

Architettura tecnica
Ambiente di sviluppo
- Linguaggio: Java 21, Java, script di build con Gradle Kotlin DSL
- Framework: IntelliJ Platform SDK
- Strumento di build: Gradle
- Dipendenze:
fridafrida-tools(ambiente Python)
Ringraziamenti
Un ringraziamento speciale ai seguenti esperti per il supporto con i modelli di script Frida JS per questo progetto:
- 小佳
- Lane
- 迷人
Per ulteriori contributori e informazioni sui ringraziamenti, consultare: CONTRIBUTORS.md