Retour aux mises à jour
New releaseSep 3, 2026

zafrida-ui v0.3.7

Une fenêtre d'outil UI Frida dans PyCharm / IDE JetBrains.

Partager

中文 | English

ZAFrida UI ZAFrida UI - Plugin Frida pour PyCharm

Version actuelle : 0.3.7

License GitHub stars

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

Accueil

Démarrage rapide

  1. Installer le plugin : Recherchez "ZAFrida" dans le marché des plugins de l'IDE ou installez-le depuis le disque.
  2. Configurer l'environnement par défaut : Utilisez par défaut l'interpréteur Python du projet PyCharm actuel ; les Settings globaux -> Tools -> ZAFrida ne conservent que les valeurs par défaut du nom/chemin de l'outil.
  3. 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 Settings de ZAFrida, sélectionnez l'interpréteur Python ou le répertoire d'environnement et cliquez sur Test.
  4. Écrire/sélectionner un script : Dans le panneau Run, sélectionnez votre agent.js ou agent.ts.
  5. Débogage Hook :
  • Connectez l'appareil (USB, Remote ou Gadget).
  • Sélectionnez le processus cible ou le nom du package.
  • Cliquez sur Run.
  1. 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.
  2. Automatisation Skills (optionnel) : Désactivée par défaut. Allez dans Settings/Preferences -> ZAFrida -> Skills HTTP API, cochez Enable Skills pour démarrer automatiquement l'API locale (vous pouvez aussi la démarrer/arrêter manuellement Start/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

Code QR du groupe de discussion

Code QR du groupe de discussion ZAFrida et rétro-ingénierie

Fonctionnalités

  • Gestion des appareils et des processus
    Intègre frida-ls-devices et frida-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 .js ou .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
  • 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
    • 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 Project pour créer un nouveau projet
      • Select Frida Project pour basculer rapidement vers le projet actif
      • Load Frida Project pour 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-tools manque 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 ; Test peut 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'import de modules npm/tiers, utilisez frida-create -t agent ou un projet équivalent pour gérer les dépendances.
  • 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, cochez Enable 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-tools installés localement (pip install frida-tools)
    • Assurez-vous que frida, frida-ps, frida-ls-devices sont 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

  1. Clonez le code source : git clone https://github.com/yilongmd/zafrida-ui.git
  2. Ouvrez le projet avec IntelliJ IDEA.
  3. Exécutez la tâche Gradle runIde pour 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.

Run Panel

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.

Template Panel

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.

Settings

Assistant de création de projet

Crée rapidement une structure de projet Frida standardisée.

New Project

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 : frida frida-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

Catégories