
zafrida-ui v0.3.7
Une fenêtre d'outil UI Frida dans PyCharm / IDE JetBrains.
中文 | English
ZAFrida UI - Plugin Frida pour PyCharm
Version actuelle : 0.3.7
Principales mises à jour de la version 0.3.7
- Chaque projet ZAFrida peut sélectionner ou partager indépendamment son environnement Python/Frida, en utilisant par défaut l'interpréteur du projet PyCharm actuel, avec prise en charge des environnements locaux venv, Conda, uv, Poetry, Pipenv, Hatch, etc.
- Refonte de l'interface de session et des paramètres de projet, affichage complet des versions du plugin, de Python et de Frida, avec optimisation du panneau de journaux adaptatif et déplaçable ainsi que de l'état de session.
- Prise en charge complète des fichiers
.js/.ts, de Frida 16/17, du basculement entre environnements multi-projets, ainsi que des trois flux de connexion USB, Remote et Gadget. - Renforcement de l'API HTTP locale, de la CLI et des compétences en chinois pour la récupération d'appareils, l'attente de session et les journaux incrémentaux ; suppression de la couche d'adaptation MCP redondante et instable.
Présentation du projet
Outil graphique Frida conçu pour PyCharm/IntelliJ
ZAFrida UI est un plugin d'opération graphique Frida intégré dans PyCharm et les IDE de la série JetBrains. Il vise à résoudre les problèmes d'opérations en ligne de commande Frida fastidieuses et de gestion chaotique des scripts, en fournissant une interface UI complète pour gérer les appareils, les processus, les scripts et les journaux.
Le point fort principal réside dans son système de gestion de modèles "à cases à cocher" : l'utilisateur peut, en cochant/décochant, insérer dynamiquement des extraits de code dans le script principal ou les commenter, réalisant ainsi un assemblage de scripts Hook "en blocs". Parallèlement, le plugin intègre une gestion complète par projets (zafrida-project.xml), prenant en charge le basculement rapide entre plusieurs configurations d'appareils et d'environnements.
ZAFrida ne remplace pas Frida, mais agit comme une interface UI puissante pour frida-tools, s'intégrant de manière transparente à votre environnement Python et Frida existant.
Wiki simplifié : Wiki simplifié ZAFrida UI (BBS) (il s'agit du Wiki le plus simple) Tutoriel détaillé : Wiki du tutoriel détaillé ZAFrida UI
Démonstration

Démarrage rapide
- Installer le plugin : Recherchez "ZAFrida" dans le marché des plugins de l'IDE ou installez-le depuis le disque.
- Configurer l'environnement par défaut : Utilisez par défaut l'interpréteur Python du projet PyCharm actuel ; les
Settingsglobaux ->Tools->ZAFridane conservent que les valeurs par défaut du nom/chemin de l'outil. - Créer un projet : Clic droit dans la vue projet ->
New Frida Project.- Si ce projet nécessite une version différente de Frida, ouvrez les
Project Settingsde ZAFrida, sélectionnez l'interpréteur Python ou le répertoire d'environnement et cliquez surTest.
- Si ce projet nécessite une version différente de Frida, ouvrez les
- Écrire/sélectionner un script : Dans le panneau Run, sélectionnez votre
agent.jsouagent.ts. - Débogage Hook :
- Connectez l'appareil (USB, Remote ou Gadget).
- Sélectionnez le processus cible ou le nom du package.
- Cliquez sur Run.
- Utiliser les modèles : Basculez sur l'onglet
Templates, cochez les fonctions Hook dont vous avez besoin (par exemple "SSL Pinning Bypass"), le code sera automatiquement injecté dans votre script. - Automatisation Skills (optionnel) : Désactivée par défaut. Allez dans
Settings/Preferences -> ZAFrida -> Skills HTTP API, cochezEnable Skillspour démarrer automatiquement l'API locale (vous pouvez aussi la démarrer/arrêter manuellementStart/Stop), emplacements CLI et modèles :- Skill et CLI principal :
skills-template/zafrida-http-control/ - Lanceur de compatibilité d'ancien chemin :
skills-cli/zafrida_skill_cli.py
- Skill et CLI principal :
Code QR du groupe de discussion
Fonctionnalités
-
Gestion des appareils et des processus
Intègrefrida-ls-devicesetfrida-ps, prend en charge l'actualisation en un clic de la liste des appareils, l'affichage des processus en cours, des applications en cours d'exécution ou des applications installées. -
Connexion multi-modes
Prise en charge complète des modes USB / Remote / Gadget, avec prise en charge d'un Host et d'un Port distants personnalisés, sans avoir à assembler manuellement des paramètres de ligne de commande complexes. -
Exécution interactive de scripts (Run / Attach)
- Prend en charge les actions d'exécution Run (Spawn par défaut) et Attach, plutôt qu'un simple "basculement de mode".
- Prend en charge Force Stop pour arrêter de force l'application cible.
- Sortie de journal de console intégrée, avec sauvegarde automatique des journaux dans le répertoire du projet
zafrida-logs/.
-
Menu contextuel de l'éditeur JS / TypeScript (important)
- Dans la zone d'édition des fichiers Frida
.jsou.ts, un clic droit permet de sélectionner directement :- Run Frida Script : exécute le fichier actuel comme script principal (Spawn par défaut).
- Attach Frida Script : injecte le fichier actuel comme script d'attachement dans le processus cible déjà en cours d'exécution.
- Avant l'exécution, le fichier actuel est automatiquement enregistré et le projet ZAFrida auquel appartient le script est automatiquement activé.
- Idéal pour les PoC rapides, la validation de démos, le mode Gadget ou l'injection immédiate dans des processus déjà en cours.
- Raccourcis clavier :
- Windows / Linux :
Ctrl + Alt + S - macOS :
⌘ + ⌥ + S
- Windows / Linux :
- Dans la zone d'édition des fichiers Frida
-
Insertion de snippets via le menu contextuel de l'éditeur
- Fournit ZAFrida Frida Snippets dans le menu contextuel de l'éditeur JS / TypeScript.
- Insertion en un clic d'extraits de code Frida courants, par exemple :
- Structure d'encapsulation
Java.perform - Modèle de Hook de méthode Java
- Hook natif
Interceptor.attach
- Structure d'encapsulation
- L'insertion suit la WriteCommandAction de l'IDE, avec annulation/rétablissement sécurisé.
-
Système de modèles dynamiques (innovation clé)
- Modèles de Hook courants Android / iOS intégrés (tels que SSL Pinning Bypass, Method Hook, Native Hook).
- Contrôle par cases à cocher : cocher insère le code, décocher commente automatiquement le code, sans suppression ou modification manuelle.
- Prend en charge les modèles personnalisés, avec aperçu en temps réel du code du modèle dans l'IDE.
-
Conception séparée Run Script + Attach Script
- Prend en charge la coexistence du Run Script principal et d'un Attach Script indépendant.
- Idéal pour découpler les "Hooks de démarrage" de la "logique d'injection en cours d'exécution", facilitant le débogage complexe et la maintenance à long terme.
-
Configuration par projets (ZAFrida Project)
- Introduit le concept de ZAFrida Project, enregistrant l'appareil, la cible, le script, l'Attach Script, les paramètres de connexion, etc., comme un contexte de travail complet.
- Prend en charge dans la vue projet :
New Frida Projectpour créer un nouveau projetSelect Frida Projectpour basculer rapidement vers le projet actifLoad Frida Projectpour importer un répertoire de projet existant
- Après le basculement de projet, l'état de l'interface et la configuration sont automatiquement restaurés.
-
Analyse intelligente de l'environnement Python / Frida
- Analyse par défaut le SDK Python du projet PyCharm actuel ; chaque ZAFrida Project peut remplacer individuellement l'interpréteur ou le répertoire d'environnement.
- Prend en charge les environnements locaux system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv, Hatch.
- Plusieurs ZAFrida Projects peuvent sélectionner le même chemin pour partager l'environnement, sans copier le venv ; idéal pour maintenir séparément les environnements Frida 16/17.
- Si
frida-toolsmanque dans l'environnement IDE actuel ou dans l'environnement de projet explicite, une erreur est directement signalée, sans utiliser silencieusement une autre version du PATH système ;Testpeut afficher la version réelle de Frida. - Les interpréteurs Python distants SSH, Docker, Docker Compose, WSL, etc., ne peuvent pas encore être utilisés pour les sous-processus Frida locaux.
-
Frida 17 / TypeScript
- La sélection de fichiers, le Run/Attach par clic droit et les snippets prennent en charge
.js/.ts; le REPL de Frida 17 compile automatiquement-l agent.ts. - Les modèles intégrés ont été migrés vers l'API moderne Module/NativePointer de Frida 17, tout en maintenant la compatibilité avec les environnements courants Frida 16.
- Le REPL de frida-tools transporte de manière compatible les bridges standard Java/ObjC ; lors de l'utilisation d'
importde modules npm/tiers, utilisezfrida-create -t agentou un projet équivalent pour gérer les dépendances.
- La sélection de fichiers, le Run/Attach par clic droit et les snippets prennent en charge
-
Interface d'automatisation locale Skills
- L'API HTTP locale Skills (désactivée par défaut) prend en charge la découverte de capacités, les projets/environnements Python, les appareils et processus, Run/Attach, la liste des journaux historiques et la lecture incrémentale des journaux basée sur un curseur d'octets.
- Le Skill intègre des flux de récupération bornés
wait-device/wait-session, et distingue les lectures pouvant être réessayées en toute sécurité des opérations à effets secondaires non rejouables automatiquement. - Activation :
Settings/Preferences -> ZAFrida -> Skills HTTP API, cochezEnable Skills. - CLI et modèles associés :
skills-template/zafrida-http-control/(Skill principal et CLI)skills-cli/zafrida_skill_cli.py(lanceur de compatibilité d'ancien chemin)
Scénarios d'utilisation
ZAFrida UI convient à tous les scénarios d'ingénierie inverse utilisant Frida, en particulier :
- Tests d'intrusion et analyse inverse d'applications Android / iOS.
- Processus de débogage nécessitant un basculement fréquent entre différents scripts Hook.
- Ingénieurs habitués à utiliser des IDE (PyCharm/IDEA) pour le développement mixte Python, JavaScript et TypeScript.
Documentation technique
-
Prérequis :
- IntelliJ IDEA ou PyCharm (2024.3+ recommandé)
- Python3 et
frida-toolsinstallés localement (pip install frida-tools) - Assurez-vous que
frida,frida-ps,frida-ls-devicessont dans le PATH système ou spécifiez leur chemin dans les paramètres du plugin.
-
Retour de problèmes : Github Issues
Démarrage du projet
- Clonez le code source :
git clone https://github.com/yilongmd/zafrida-ui.git - Ouvrez le projet avec IntelliJ IDEA.
- Exécutez la tâche Gradle
runIdepour démarrer l'environnement de débogage.
Aperçu du système
Interface principale et panneau d'exécution (Run Panel)
Fournit la sélection d'appareil, la sélection de script, la configuration du mode d'exécution et la sortie console.

Gestion des modèles dynamiques (Template Panel)
Sélectionnez la catégorie à gauche, cochez les modèles au centre, aperçu du code en temps réel à droite. Les cases à cocher contrôlent directement l'activation ou non du contenu du script.

Interface de paramètres (Settings)
Prend en charge la personnalisation des chemins des outils Frida, de l'adresse de connexion distante et de la configuration des journaux.

Assistant de création de projet
Crée rapidement une structure de projet Frida standardisée.

Architecture technique
Environnement de développement
- Langage : Java 21, Java, scripts de construction en Gradle Kotlin DSL
- Framework : IntelliJ Platform SDK
- Outil de construction : Gradle
- Dépendances :
fridafrida-tools(environnement Python)
Remerciements
Un merci particulier aux personnes suivantes pour leur soutien en modèles de scripts Frida JS pour ce projet :
- Xiao Jia
- Lane
- Mi Ren
Pour plus de contributeurs et d'informations de remerciements, voir : CONTRIBUTORS.md