Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Fermion — Fermion, an electron wrapper for Frida & Monaco. | Kitploit
Ferramentas/GitHubGitHub/fuzzysecurity/fermion
Android SecurityDynamic Analysis (Sandboxing)Dynamic Code Analysis (DAST)Mobile App PentestingReverse EngineeringDebuggersBinary Analysis
GitHubfuzzysecurity/fermion

Fermion

Fermion, an electron wrapper for Frida & Monaco.

Ver Repositório
70083há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CI stars forks release frida-node frida-gum

Fermion

O Fermion é um aplicativo Electron que encapsula frida-node e monaco-editor. Ele oferece um ambiente totalmente integrado para prototipar, testar e refinar scripts Frida por meio de uma única interface. Com a integração do Monaco, vêm todos os recursos que você esperaria do Visual Studio Code: linting, IntelliSense, atalhos de teclado, etc. Além disso, o Fermion possui uma definição de linguagem TypeScript para a API do Frida, facilitando a escrita de scripts Frida.

O que há em um nome: Um férmion pode ser uma partícula elementar, como o elétron, ou pode ser uma partícula composta, como o próton. Os férmions incluem todos os quarks e léptons, bem como todas as partículas compostas por um número ímpar deles, como todos os bárions e muitos átomos e núcleos.

Como obter o Fermion?

Executar o Fermion a partir do código-fonte

Baixe o repositório e navegue até a pasta Fermion no terminal. Uma vez lá, defina as seguintes variáveis de ambiente.

root@kitploit:~
# Windows
set npm_config_runtime=electron
set npm_config_target=21.0.0

# Linux / OSX
export npm_config_runtime=electron
export npm_config_target=21.0.0

Em seguida, instale os pacotes necessários para executar o Fermion com:

root@kitploit:~
npm install

Quando concluído, você pode executar o Fermion com:

root@kitploit:~
npm start

Compilar um pacote de lançamento

Conclua os passos acima e então execute o seguinte comando no terminal:

root@kitploit:~
# Windows
electron-packager . --icon .\src\images\fermion-ico.ico

# Linux
electron-packager . --icon ./src/images/fermion-ico.png

# OSX
electron-packager . --icon ./src/images/fermion-ico.icns

Lançamentos

Você pode obter a versão pré-compilada mais recente do Fermion para Windows x64 e Linux em releases.

Notas de FAQ

Windows

  • P: Preciso injetar um processo de nível SYSTEM, como posso fazer isso?
    • R: Você costumava poder utilizar ferramentas como o psexec para executar o Fermion como SYSTEM, porém desde o Electron v8 isso faz o Fermion congelar. O que você realmente precisa é que o Fermion seja executado como Administrador e tenha privilégios SeDebugPrivilege. Como alternativa, você pode iniciar o PowerShell como Administrador e usá-lo para iniciar o Fermion.

Linux

  • P: Não consigo anexar a um processo em execução?
    • R: Restrições do sistema podem impedir que você anexe; normalmente você verá uma mensagem no Fermion informando qual é o problema e como resolvê-lo. No entanto, em geral, você pode executar o Fermion ou o Frida Server como root ou, alternativamente, executar o seguinte comando sudo sysctl kernel.yama.ptrace_scope=0.

General

  • P: Quero compilar minha própria versão do Fermion com uma nova versão do Frida/Electron. Como posso descobrir quais prebuilds existem atualmente?

    • R: Você deve dar uma olhada aqui; você pode verificar a versão de compilação padrão em ELECTRON_TARGETS_DEFAULT e ELECTRON_TARGETS_FREEBSD, respectivamente.
  • P: Quero revisar/alterar/atualizar as definições de tipo usadas no editor Monaco, como posso fazer isso?

    • R: Isso agora é tratado como parte do processo de compilação, então suas definições de linguagem devem estar sempre atualizadas. Se quiser editar manualmente as definições de linguagem do aplicativo, você pode encontrá-las aqui node_modules/@types/frida-gum/index.d.ts.
  • P: Por que você não tem trace estável, cara (╯°□°)╯︵ ┻━┻

    • R: O rastreamento de chamadas (call tracing) exige muitos recursos. Na maioria dos casos, funcionará bem, mas se você estiver rastreando um hot pointer e/ou o rastreamento estiver gerando gráficos com milhares de nós, provavelmente verá a trace window ficar lenta enquanto recebe dados. Além disso, como qualquer tipo de rastreamento, isso pode causar instabilidade / travamentos / congelamentos do processo.

Sobre

Você pode ver um exemplo do Fermion em ação abaixo, neste caso instrumentando kernel32!ReadFile.

Fermion

O Fermion possui preenchimento automático, linting e suporte a símbolos da API do Frida.

Help

O Fermion pode se conectar a um servidor Frida para depurar aplicativos remotos usando o menu de contexto device. Em muitos casos, como na depuração via USB ou ao anexar a aplicativos móveis por meio de emuladores como genymotion, o Fermion detectará automaticamente o servidor como disponível. No entanto, também é possível especificar um servidor remoto usando uma combinação de IP e Port.

Server

O Fermion tem suporte integrado para CALL tracing de threads.

Trace

Isso pode não fazer exatamente o que você espera. Quando você define um pointer ou uma combinação de module/Symbol, o rastreador irá anexar a esse local e, sempre que uma thread executar nesse ponto, ele começará a rastrear todas as instruções CALL que essa thread executa até retornar. Isso significa que execuções diferentes podem gerar gráficos diferentes; também significa que você pode não ver tudo o que uma função está fazendo (por exemplo, se, dentro da função, uma thread diferente for criada).

SVG

O Fermion converte esses rastreamentos em um formato Graphviz SVG usando dot, que você pode então explorar. Este é um recurso que considero útil ocasionalmente ao realizar trabalhos exploratórios (O que uma função faz? Qual é a complexidade dessa execução?). Dito isso, este é um recurso protótipo que construí sobre o Fermion e que provavelmente precisa de mais carinho para ficar mais pronto para produção.

O Fermion também possui documentação integrada para a JavaScript API do Frida. Como todo mundo, nem sempre me lembro de como tudo funciona, e ter a documentação no aplicativo elimina a necessidade de manter uma janela do navegador aberta.

Docs

Notas

ChangeLog

Para mais detalhes sobre alterações específicas de versão, consulte o changelog.

Chamada para ação

Se você integrar o Fermion ao seu fluxo de trabalho e achá-lo útil, encorajo você a fazer pull requests, enviar relatórios de bugs e pedir recursos para melhorar o aplicativo. Não sou exatamente um desenvolvedor Node, então tenho certeza de que as pessoas encontrarão maneiras de otimizar e reformular alguns dos componentes.

Roadmap

  • Implementar uma interface de gerenciador de dispositivos mais completa.
  • Redesenho da UI.
  • Avaliar o interesse por mais ferramentas nativas construídas sobre o Fermion e adicioná-las.
  • Estender o gerenciador de dispositivos para aproveitar os novos recursos integrados ao Frida v15.0+.

Agradecimentos especiais

Quero apenas fazer alguns agradecimentos especiais!

  • Um enorme agradecimento a Ole André V. Ravnås por todo o seu trabalho no Frida e por ter muita paciência em responder minhas perguntas leigas sobre Frida, NodeJS e Monaco!
  • Um reconhecimento também para mattahan. Estou usando um ícone Buuf para o pacote Windows do Fermion. Tenho certeza de que todos nós usamos alguns de seus ícones no NIX ao longo dos anos.
  • Agradecimentos a @MiscMisty, @lez0sec, @berkayyildi por contribuírem com tempo/código para o Fermion!
Baixar ferramenta