
zafrida-ui v0.3.7
Uma janela de ferramenta UI do Frida dentro do PyCharm / IDEs JetBrains.
中文 | English
ZAFrida UI - PyCharm Frida Plugin
Versão atual: 0.3.7
Principais atualizações da 0.3.7
- Cada ZAFrida Project pode selecionar ou compartilhar de forma independente o ambiente Python/Frida, usando por padrão o interpretador do projeto PyCharm atual, com suporte a ambientes locais como venv, Conda, uv, Poetry, Pipenv, Hatch, etc.
- Session UI e Project Settings redesenhados, exibindo completamente as informações de versão do plugin, Python e Frida, com painel de logs adaptável e arrastável e estado da sessão otimizados.
- Suporte completo a
.js/.ts, Frida 16/17, alternância entre múltiplos ambientes de projeto, e fluxos de conexão USB, Remote e Gadget. - API HTTP local, CLI e Skill em chinês aprimorados com recuperação de dispositivo, espera de sessão e capacidade de logs incrementais; camada de adaptação MCP duplicada e instável removida.
Introdução ao projeto
Ferramenta gráfica Frida projetada para PyCharm/IntelliJ
ZAFrida UI é um plugin de operação gráfica Frida integrado ao PyCharm e às IDEs da família JetBrains. Ele visa resolver os problemas de operações de linha de comando Frida tediosas e gerenciamento confuso de scripts, fornecendo um conjunto completo de interfaces de UI para gerenciar dispositivos, processos, scripts e logs.
O destaque principal está no seu sistema de gerenciamento de templates "baseado em caixas de seleção": os usuários podem marcar/desmarcar para inserir dinamicamente trechos de código no script principal ou comentá-los, permitindo a montagem de scripts Hook "tipo bloco de montar". Além disso, o plugin inclui gerenciamento completo baseado em projetos (zafrida-project.xml), com suporte a alternância rápida entre múltiplos dispositivos e configurações de ambiente.
ZAFrida não substitui o Frida, mas atua como um poderoso shell de UI para frida-tools, integrando-se perfeitamente ao seu ambiente Python e Frida existente.
Wiki simplificada: ZAFrida UI Wiki simplificada (BBS) (esta é a Wiki mais simples) Tutorial detalhado: ZAFrida UI Wiki de tutorial detalhado
Demonstração

Início rápido
- Instalar o plugin: Pesquise por "ZAFrida" no marketplace de plugins da IDE ou instale via disco.
- Configurar o ambiente padrão: Usa por padrão o Python Interpreter do projeto PyCharm atual; as configurações globais
Settings->Tools->ZAFridamantêm apenas os valores padrão de nome/caminho da ferramenta. - Criar projeto: Clique com o botão direito na visualização do projeto ->
New Frida Project.- Se o projeto precisar de uma versão diferente do Frida, abra o ZAFrida
Project Settings, selecione o interpretador Python ou o diretório do ambiente e clique emTest.
- Se o projeto precisar de uma versão diferente do Frida, abra o ZAFrida
- Escrever/selecionar script: No painel Run, selecione seu
agent.jsouagent.ts. - Depuração de Hook:
- Conecte o dispositivo (USB, Remote ou Gadget).
- Selecione o processo alvo ou nome do pacote.
- Clique em Run.
- Usar templates: Alterne para a aba
Templates, marque as funções de Hook desejadas (ex.: "SSL Pinning Bypass") e o código será injetado automaticamente no seu script. - Automação Skills (opcional): Desativada por padrão. Vá em
Settings/Preferences -> ZAFrida -> Skills HTTP API, marqueEnable Skillspara iniciar automaticamente a API local (também é possível iniciar/parar manualmenteStart/Stop). CLI e localização dos templates:- Skill e CLI principal:
skills-template/zafrida-http-control/ - Iniciador de compatibilidade de caminho antigo:
skills-cli/zafrida_skill_cli.py
- Skill e CLI principal:
QR Code do grupo de discussão
Recursos
-
Gerenciamento de dispositivos e processos
Integrafrida-ls-devicesefrida-ps, com suporte a atualização da lista de dispositivos com um clique, visualização de processos em execução, apps em execução ou aplicativos instalados. -
Conexão em múltiplos modos
Suporte completo aos modos USB / Remote / Gadget, com Host e Porta remotos personalizáveis, sem necessidade de montar manualmente parâmetros complexos de linha de comando. -
Execução interativa de scripts (Run / Attach)
- Suporta as ações Run (Spawn por padrão) e Attach, em vez de uma simples "alternância de modo".
- Suporta Force Stop para forçar a parada do aplicativo alvo.
- Saída de logs integrada no console, com salvamento automático dos logs no diretório do projeto
zafrida-logs/.
-
Menu de contexto do editor JS / TypeScript (importante)
- No editor de arquivos Frida
.jsou.ts, clique com o botão direito e selecione diretamente:- Run Frida Script: executa o arquivo atual como script principal (Spawn por padrão).
- Attach Frida Script: injeta o arquivo atual como script anexado no processo alvo já em execução.
- Antes da execução, o arquivo atual é salvo automaticamente e o ZAFrida Project ao qual o script pertence é ativado automaticamente.
- Ideal para PoCs rápidos, validação de demos, modo Gadget ou injeção imediata em processos já em execução.
- Atalhos:
- Windows / Linux:
Ctrl + Alt + S - macOS:
⌘ + ⌥ + S
- Windows / Linux:
- No editor de arquivos Frida
-
Inserção de Snippets no menu de contexto do editor
- Oferece ZAFrida Frida Snippets no menu de contexto do editor JS / TypeScript.
- Insira trechos de código Frida comuns com um clique, por exemplo:
- Estrutura de encapsulamento
Java.perform - Template de Hook de método Java
- Native Hook com
Interceptor.attach
- Estrutura de encapsulamento
- A inserção segue o WriteCommandAction da IDE, permitindo desfazer/refazer com segurança.
-
Sistema de templates dinâmicos (inovação central)
- Templates de Hook comuns para Android / iOS integrados (ex.: SSL Pinning Bypass, Method Hook, Native Hook).
- Controle por caixa de seleção: marcar insere o código, desmarcar comenta o código automaticamente, sem necessidade de edição manual.
- Suporte a templates personalizados, com pré-visualização em tempo real do código do template na IDE.
-
Design separado Run Script + Attach Script
- Suporta o Run Script principal e um Attach Script independente em coexistência.
- Ideal para desacoplar "Hooks de inicialização" da "lógica de injeção em tempo de execução", facilitando depuração complexa e manutenção de longo prazo.
-
Configuração baseada em projetos (ZAFrida Project)
- Introduz o conceito de ZAFrida Project, salvando dispositivo, alvo, script, Attach Script, parâmetros de conexão, etc., como um contexto de trabalho completo.
- Suporta na Project View:
New Frida Projectpara criar um novo projetoSelect Frida Projectpara alternar rapidamente o projeto ativo atualLoad Frida Projectpara importar um diretório de projeto existente
- Ao alternar de projeto, o estado da UI e as configurações são restaurados automaticamente.
-
Resolução inteligente de ambiente Python / Frida
- Resolve por padrão o Python SDK do projeto PyCharm atual; cada ZAFrida Project pode sobrescrever o interpretador ou o diretório do ambiente individualmente.
- Suporta ambientes locais system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv, Hatch.
- Vários ZAFrida Projects podem selecionar o mesmo caminho para compartilhar o ambiente, sem necessidade de copiar o venv; ideal para manter ambientes Frida 16/17 separados.
- Se o ambiente da IDE atual ou o ambiente explícito do projeto não tiver
frida-tools, um erro é exibido diretamente, sem usar silenciosamente outra versão do PATH do sistema;Testexibe a versão real do Frida. - Interpreters Python remotos como SSH, Docker, Docker Compose, WSL, etc., não podem ser usados temporariamente para subprocessos Frida locais.
-
Frida 17 / TypeScript
- Seleção de arquivos, Run/Attach pelo menu de contexto e Snippets suportam
.js/.ts; o REPL do Frida 17 compila-l agent.tsautomaticamente. - Os templates integrados foram migrados para a API moderna Module/NativePointer do Frida 17, mantendo a compatibilidade com ambientes comuns do Frida 16.
- O REPL do frida-tools carrega bridges padrão Java/ObjC de forma compatível; ao usar
importde módulos npm/terceiros, gerencie as dependências viafrida-create -t agentou projeto equivalente.
- Seleção de arquivos, Run/Attach pelo menu de contexto e Snippets suportam
-
Interface de automação local Skills
- A API HTTP local Skills (desativada por padrão) suporta descoberta de capacidades, projeto/ambiente Python, dispositivos e processos, Run/Attach, listagem de histórico de logs e leitura incremental de logs baseada em cursor de bytes.
- A Skill inclui fluxos de recuperação limitados
wait-device/wait-session, distinguindo leituras seguras para nova tentativa de operações de efeito colateral que não podem ser reproduzidas automaticamente. - Como ativar:
Settings/Preferences -> ZAFrida -> Skills HTTP API, marqueEnable Skills. - CLI e templates correspondentes:
skills-template/zafrida-http-control/(Skill principal e CLI)skills-cli/zafrida_skill_cli.py(iniciador de compatibilidade de caminho antigo)
Cenários de uso
ZAFrida UI é adequado para todos os cenários de engenharia reversa com Frida, especialmente:
- Testes de penetração e análise reversa de apps Android / iOS.
- Processos de depuração que exigem alternância frequente entre diferentes scripts de Hook.
- Engenheiros acostumados a usar IDEs (PyCharm/IDEA) para desenvolvimento misto em Python, JavaScript e TypeScript.
Documentação técnica
-
Requisitos de ambiente:
- IntelliJ IDEA ou PyCharm (recomendado 2024.3+)
- Python3 e
frida-toolsinstalados localmente (pip install frida-tools) - Garanta que
frida,frida-ps,frida-ls-devicesestejam no PATH do sistema ou especifique os caminhos nas configurações do plugin.
-
Feedback de problemas: Github Issues
Iniciar o projeto
- Clone o código-fonte:
git clone https://github.com/yilongmd/zafrida-ui.git - Abra o projeto com o IntelliJ IDEA.
- Execute a tarefa Gradle
runIdepara iniciar o ambiente de depuração.
Efeitos do sistema
Interface principal e painel de execução (Run Panel)
Oferece seleção de dispositivo, seleção de script, configuração do modo de execução e saída do console.

Gerenciamento de templates dinâmicos (Template Panel)
Categorias à esquerda, seleção de templates no centro e pré-visualização do código à direita. As caixas de seleção controlam diretamente se o conteúdo do script está ativo ou não.

Interface de configurações (Settings)
Suporta personalização dos caminhos das ferramentas Frida, endereço de conexão remota e configuração de logs.

Assistente de criação de projeto
Cria rapidamente uma estrutura de projeto Frida padronizada.

Arquitetura técnica
Ambiente de desenvolvimento
- Linguagem: Java 21, Java, scripts de build usando Gradle Kotlin DSL
- Framework: IntelliJ Platform SDK
- Ferramenta de build: Gradle
- Dependências:
fridafrida-tools(ambiente Python)
Agradecimentos
Agradecimentos especiais aos seguintes colaboradores pelo suporte com templates de scripts Frida JS para este projeto:
- 小佳
- Lane
- 迷人
Mais informações sobre contribuidores e agradecimentos em: CONTRIBUTORS.md