Voltar às atualizações
New releaseSep 3, 2026

zafrida-ui v0.3.7

Uma janela de ferramenta UI do Frida dentro do PyCharm / IDEs JetBrains.

Compartilhar

中文 | English

ZAFrida UI ZAFrida UI - PyCharm Frida Plugin

Versão atual: 0.3.7

License GitHub stars

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

Home

Início rápido

  1. Instalar o plugin: Pesquise por "ZAFrida" no marketplace de plugins da IDE ou instale via disco.
  2. Configurar o ambiente padrão: Usa por padrão o Python Interpreter do projeto PyCharm atual; as configurações globais Settings -> Tools -> ZAFrida mantêm apenas os valores padrão de nome/caminho da ferramenta.
  3. 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 em Test.
  4. Escrever/selecionar script: No painel Run, selecione seu agent.js ou agent.ts.
  5. Depuração de Hook:
  • Conecte o dispositivo (USB, Remote ou Gadget).
  • Selecione o processo alvo ou nome do pacote.
  • Clique em Run.
  1. 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.
  2. Automação Skills (opcional): Desativada por padrão. Vá em Settings/Preferences -> ZAFrida -> Skills HTTP API, marque Enable Skills para iniciar automaticamente a API local (também é possível iniciar/parar manualmente Start/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

QR Code do grupo de discussão

ZAFrida与逆向交流群二维码

Recursos

  • Gerenciamento de dispositivos e processos
    Integra frida-ls-devices e frida-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 .js ou .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
  • 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
    • 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 Project para criar um novo projeto
      • Select Frida Project para alternar rapidamente o projeto ativo atual
      • Load Frida Project para 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; Test exibe 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.ts automaticamente.
    • 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 import de módulos npm/terceiros, gerencie as dependências via frida-create -t agent ou projeto equivalente.
  • 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, marque Enable 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-tools instalados localmente (pip install frida-tools)
    • Garanta que frida, frida-ps, frida-ls-devices estejam no PATH do sistema ou especifique os caminhos nas configurações do plugin.
  • Feedback de problemas: Github Issues

Iniciar o projeto

  1. Clone o código-fonte: git clone https://github.com/yilongmd/zafrida-ui.git
  2. Abra o projeto com o IntelliJ IDEA.
  3. Execute a tarefa Gradle runIde para 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.

Run Panel

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.

Template Panel

Interface de configurações (Settings)

Suporta personalização dos caminhos das ferramentas Frida, endereço de conexão remota e configuração de logs.

Settings

Assistente de criação de projeto

Cria rapidamente uma estrutura de projeto Frida padronizada.

New Project

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

Categorias