Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
zafrida-ui — Une fenêtre d'outil UI Frida dans PyCharm / IDE JetBrains. | Kitploit
Outils/GitHubGitHub/yilongmd/zafrida-ui
Sécurité AndroidAnalyse Dynamique (Sandboxing)Sécurité iOSRétro-ingénierieScripting et AutomatisationDébogueursTests d'IntrusionSécurité MobileUtilitaires et Frameworks
GitHubyilongmd/zafrida-ui

zafrida-ui

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

831138il y a 8 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
中文 | [English](https://github.com/yilongmd/zafrida-ui/blob/main/README.en-US.md)

![ZAFrida UI](https://raw.githubusercontent.com/yilongmd/zafrida-ui/HEAD/doc/logo.svg "ZAFrida UI Logo")
ZAFrida UI - Plugin Frida pour PyCharm
===============

Version actuelle : 0.3.8


[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
[![](https://img.shields.io/badge/Author-ZAFrida-orange.svg)](https://github.com/yilongmd/zafrida-ui)
[![](https://img.shields.io/badge/Platform-IntelliJ-brightgreen.svg)](https://plugins.jetbrains.com/)
[![GitHub stars](https://img.shields.io/github/stars/yilongmd/zafrida-ui.svg?style=social&label=Stars)](https://github.com/yilongmd/zafrida-ui)

## Principales nouveautés de la 0.3.8

- Le panneau Session sépare désormais « Appareil » et « Mode de connexion » en deux lignes de sélection indépendantes : la ligne Device ne liste que les appareils réels, la ligne Mode permet de choisir USB / Remote / Gadget ainsi que le point de terminaison. La redirection de port adb en boucle Remote/Gadget, Force Stop et Open App s'appliquent toujours au téléphone actuellement sélectionné, sans plus utiliser par erreur un appareil historique.
- Lors de la première ouverture et de l'actualisation des appareils, le serveur adb non démarré est automatiquement lancé, plus besoin d'exécuter manuellement `adb devices`.
- Lorsqu'un appareil enregistré n'est pas en ligne, un espace réservé « Non connecté » s'affiche et les opérations associées sont bloquées ; si un seul appareil USB est connecté, il est automatiquement utilisé et un message est affiché dans la Console.
- Sous la ligne Mode, la route adb/frida réellement exécutée est affichée ; en mode Gadget, le nom de package Target est en lecture seule mais peut être sélectionné et copié.
- Le `/state` de l'API HTTP ajoute le résultat d'analyse `connection` ; `device-select --host` reste utilisable mais est obsolète, utilisez plutôt `mode-set --host/--port` pour le point de terminaison.

## Principales nouveautés de la 0.3.7

- Chaque ZAFrida Project peut choisir ou partager indépendamment un environnement Python/Frida, utilise par défaut l'interpréteur du projet PyCharm courant, et prend en charge les environnements locaux venv, Conda, uv, Poetry, Pipenv, Hatch, etc.
- Refonte de l'interface Session et des Project Settings, affichage complet des informations de version du plugin, de Python et de Frida, et 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, du CLI et des capacités de récupération d'appareil, d'attente de session et de journaux incrémentiels du Skill en chinois ; suppression de la couche d'adaptation MCP redondante et instable.


Présentation du projet
-----------------------------------

<h3 align="center">Outil graphique Frida conçu pour PyCharm/IntelliJ</h3>

ZAFrida UI est un plugin d'opération graphique Frida intégré à PyCharm et à la gamme d'IDE JetBrains. Il vise à résoudre les problèmes d'utilisation fastidieuse en ligne de commande de Frida et de gestion chaotique des scripts, en fournissant un ensemble complet d'**interfaces interactives** pour gérer les appareils, les processus, les scripts et les journaux.

Son point fort réside dans son **système de gestion de modèles « à cases à cocher »** : l'utilisateur peut, en cochant/décochant, insérer dynamiquement des fragments de code dans le script principal ou les commenter, réalisant ainsi une composition de scripts Hook « en briques ». En parallèle, le plugin intègre une **gestion par projet** complète (`zafrida-project.xml`), prenant en charge le basculement rapide entre plusieurs appareils et configurations d'environnement.

ZAFrida ne remplace pas Frida, mais agit comme une puissante interface graphique pour `frida-tools`, s'intégrant de manière transparente à votre environnement Python et Frida existant.

**Wiki simplifié** : [Wiki simplifié de ZAFrida UI (BBS)](https://github.com/yilongmd/zafrida-ui/blob/main/zafrida_ui_wiki_bbs_zh.md) (un Wiki plus simple)
**Tutoriel d'utilisation détaillé** : [Wiki du tutoriel d'utilisation détaillé de ZAFrida UI](https://github.com/yilongmd/zafrida-ui/blob/main/ZAFridaUI_Wiki_zh.md)

## Démonstration
![Home](https://assets.kitploit.com/production/public/readmes/11475/b5687a2c837892013964eef5ec3f7c50e0623dfc1cdc44fb233b0cf00d5af2fd.png "Home")

Démarrage rapide
-----------------------------------

1.  **Installer le plugin** : recherchez « ZAFrida » dans le marketplace de plugins de l'IDE ou installez-le depuis le disque.
2.  **Configurer l'environnement par défaut** : l'interpréteur Python du projet PyCharm courant est utilisé par défaut ; le `Settings` global -> `Tools` -> `ZAFrida` ne conserve 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** :
* Connecter l'appareil (USB ou Remote ou Gadget).
* Sélectionner le processus ou le nom de package cible.
* Cliquer sur **Run**.
6.  **Utiliser les modèles** : basculez vers l'onglet `Templates`, cochez les fonctionnalités Hook dont vous avez besoin (par exemple « SSL Pinning Bypass »), le code sera automatiquement injecté dans votre script.
7.  **Automatisation Skills (optionnel)** : désactivée par défaut. Rendez-vous dans `Settings/Preferences -> ZAFrida -> Skills HTTP API`, cochez `Enable Skills` pour démarrer automatiquement l'API locale (ou `Start/Stop` manuellement), emplacement du CLI et des modèles :
    * Skill et CLI principal : `skills-template/zafrida-http-control/`
    * Lanceur compatible avec l'ancien chemin : `skills-cli/zafrida_skill_cli.py`

QR code du groupe d'échange
-----------------------------------
<img src="https://assets.kitploit.com/production/public/readmes/11475/af2e178a9eee68ad3cbdf0c5b002b39f4c18f0128b73575324967291f19eeddc.jpg" alt="ZAFrida与逆向交流群二维码" width="260" />

Fonctionnalités
-----------------------------------

* **Gestion des appareils et des processus**  
  Intègre `frida-ls-devices` et `frida-ps`, prend en charge l'actualisation de la liste des appareils en un clic, la consultation des processus en cours, des applications en cours d'exécution ou des applications installées.

* **Connexion multi-mode**  
  Prise en charge complète des modes **USB / Remote / Gadget**, avec Host et Port distants personnalisables, sans avoir à assembler manuellement des paramètres de ligne de commande complexes.

* **Exécution interactive de scripts (Run / Attach)**
  * Prise en charge des deux actions d'exécution **Run (Spawn par défaut)** et **Attach**, plutôt qu'un simple « changement de mode ».
  * Prise en charge de **Force Stop** pour arrêter de force l'application cible.
  * Sortie de journal intégrée dans la console, 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 d'un fichier Frida `.js` ou `.ts`, un clic droit permet de choisir directement :
    * **Run Frida Script** : exécute le fichier courant comme script principal (Spawn par défaut).
    * **Attach Frida Script** : injecte le fichier courant comme script d'attachement dans le processus cible déjà en cours d'exécution.
  * Avant l'exécution, le fichier courant est automatiquement enregistré et le ZAFrida Project 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 un processus déjà en cours d'exécution.
  * **Raccourcis clavier** :
    * Windows / Linux : `Ctrl + Alt + S`
    * macOS : `⌘ + ⌥ + S`

* **Insertion de Snippets par clic droit dans l'éditeur**
  * Le menu contextuel de l'éditeur JS / TypeScript propose **ZAFrida Frida Snippets**.
  * Insertion en un clic de fragments de code Frida courants, par exemple :
    * Structure englobante `Java.perform`
    * Modèle de Hook de méthode Java
    * Native Hook `Interceptor.attach`
  * Le processus d'insertion respecte IDE WriteCommandAction, avec annulation/rétablissement sécurisés.

* **Système de modèles dynamiques (innovation clé)**
  * Modèles Hook 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/modification manuelle.
  * Prise en charge de 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**
  * Prise en charge de la coexistence d'un **Run Script** principal et d'un **Attach Script** indépendant.
  * Idéal pour découpler les « Hook de phase de démarrage » et la « logique d'injection en cours d'exécution », facilitant le débogage complexe et la maintenance à long terme.

* **Configuration par projet (ZAFrida Project)**
  * Introduction du 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.
  * Prise en charge dans la Project View de :
    * `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.

* **Résolution intelligente de l'environnement Python / Frida**
  * Résout par défaut le SDK Python du projet PyCharm courant ; chaque ZAFrida Project peut remplacer individuellement l'interpréteur ou le répertoire d'environnement.
  * Prise en charge des environnements locaux system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv, Hatch.
  * Plusieurs ZAFrida Projects peuvent choisir le même chemin pour partager un environnement, sans copier le venv ; idéal pour maintenir séparément les environnements Frida 16/17.
  * Si l'environnement IDE courant ou l'environnement de projet explicite manque de `frida-tools`, une erreur est signalée directement, sans utiliser silencieusement une autre version du PATH système ; `Test` permet d'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 le sous-processus Frida local.

* **Frida 17 / TypeScript**
  * La sélection de fichiers, le clic droit Run/Attach 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 restant compatibles avec les environnements Frida 16 courants.
  * Le REPL de frida-tools embarque par compatibilité les bridges Java/ObjC standard ; lors de l'utilisation d'`import` de modules npm/tiers, gérez les dépendances via `frida-create -t agent` ou un projet équivalent.

* **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 environnements projet/Python, les appareils et processus, Run/Attach, la liste des journaux historiques et la lecture incrémentielle 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 sûres à réessayer des opérations à effet de bord 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 compatible avec l'ancien chemin)

Cas 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 de basculer fréquemment entre différents scripts Hook.
* Ingénieurs habitués au développement mixte Python, JavaScript et TypeScript dans un IDE (PyCharm/IDEA).

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](https://github.com/yilongmd/zafrida-ui/issues)

Lancer le projet
-----------------------------------

1.  Cloner le code source : `git clone https://github.com/yilongmd/zafrida-ui.git`
2.  Ouvrir le projet avec IntelliJ IDEA.
3.  Exécuter la tâche Gradle `runIde` pour lancer 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](https://assets.kitploit.com/production/public/readmes/11475/01ec2353341ebe2f41b51108b72cc0ba66b520589b2e58653899c40fff6aee8d.png "Run Panel Screenshot")
##### Gestion des modèles dynamiques (Template Panel)
> Sélection de 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](https://assets.kitploit.com/production/public/readmes/11475/c23d54b54e8d2cdceb97d4680b9f2735c6afd5722d0bd76bd30b06706e833205.png "Template Panel Screenshot")
##### Interface de paramètres (Settings)
> Prend en charge la personnalisation du chemin des outils Frida, de l'adresse de connexion distante et de la configuration des journaux.

![Settings](https://assets.kitploit.com/production/public/readmes/11475/b1651ec2b67aa8d74f45d476445329570c884c2d011af4768401aa12da2ff202.png "Settings Screenshot")
##### Assistant de création de projet
> Créez rapidement une structure de projet Frida standardisée.

![New Project](https://assets.kitploit.com/production/public/readmes/11475/b05a9238f0c3c18dbee9116dddc179e1607bcb723589b0ec980ae4f884e3742b.png "New Project Dialog")

Architecture technique
-----------------------------------

#### Environnement de développement
- Langage : Java 21, Java, scripts de build en Gradle Kotlin DSL
- Framework : IntelliJ Platform SDK
- Outil de build : Gradle
- Dépendances : `frida` `frida-tools` (Python environment)


Remerciements
-----------------------------------
Remerciements particuliers aux experts suivants pour leur contribution de modèles de scripts Frida JS à ce projet :

* **小佳**
* **Lane**
* **迷人**

Pour plus de contributeurs et d'informations de remerciement, voir : [CONTRIBUTORS.md](https://github.com/yilongmd/zafrida-ui/blob/main/CONTRIBUTORS.md)
Télécharger l’outil