Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
obfuscation_analysis — Plugin Binary Ninja para analisar e simplificar código ofuscado | Kitploit
Ferramentas/GitHubGitHub/mrphrazer/obfuscation_analysis
Análise EstáticaAnálise de CódigoEngenharia ReversaAnálise de MalwareUtilitários e FrameworksAnálise de Binários
GitHubmrphrazer/obfuscation_analysis

obfuscation_analysis

Plugin Binary Ninja para analisar e simplificar código ofuscado

Ver Repositório
2552317há 4 mesesRevisado 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

Análise de Ofuscação (v1.3)

Autores: Tim Blazytko & Nicolò Altamura

Analise e simplifique código ofuscado

Descrição:

Obfuscation Analysis é um plugin do Binary Ninja que elimina a dor de trabalhar com binários fortemente protegidos. Ele reúne alguns auxiliares focados que permitem

  • simplificar expressões de Aritmética Mista-Booleana (MBA) com um clique (baseado em msynth)
  • localizar e limpar funções com desmontagem quebrada

Alguns exemplos de casos de uso podem ser encontrados em examples. Além disso, a palestra da REcon "Breaking Mixed Boolean-Arithmetic Obfuscation in Real-World Applications" demonstra alguns casos de uso. Os slides podem ser encontrados aqui. O plugin complementa o Obfuscation Detection: uma vez que funções suspeitas são sinalizadas, Obfuscation Analysis ajuda você a limpá-las e entendê-las. Mais auxiliares serão adicionados com o tempo.

Recursos Principais

  • simplificar ofuscação de Aritmética Mista-Booleana na visão do descompilador do Binary Ninja
  • identificar e remover funções com desmontagem quebrada
  • embutir funções na visão do descompilador
  • implementação eficiente e independente de arquitetura
  • executa como tarefa em segundo plano
  • tratamento cuidadoso de erros: mensagens concisas ao usuário, rastreamento completo no log de Debug

Instalação

A ferramenta pode ser instalada usando o gerenciador de plugins do Binary Ninja.

Para uma instalação manual, siga estes passos na pasta de plugins do Binary Ninja:

root@kitploit:~
git clone https://github.com/mrphrazer/obfuscation_analysis.git
cd obfuscation_analysis

# optionally: use a virtual environment
python -m venv obfana-env
source obfana-env/bin/activate

# install requirements
pip install -r requirements.txt

Se você usar um ambiente virtual, precisará definir manualmente o caminho de site-packages nas configurações do Binary Ninja.

Uso

O plugin está disponível no menu da barra superior do Binary Ninja em Plugins -> Obfuscation Analysis.

Plugin Menu

Simplificação de MBA

Para simplificar a ofuscação aritmética, primeiro destaque a expressão HLIL que você deseja simplificar na visão do descompilador. Em seguida, escolha Plugins -> Obfuscation Analysis -> MBA Simplification -> Slice & Simplify. O plugin resolve a computação completa, a executa através do msynth e insere o resultado simplificado como um comentário na mesma linha. A animação curta abaixo mostra todo o fluxo de trabalho:

MBA Simplification Workflow

A simplificação de MBA depende do msynth. Por padrão, o plugin usa o oráculo de simplificação padrão do msynth, que acompanha o plugin e já vem pré-configurado. Se você quiser usar um oráculo maior ou personalizado, defina obfuscation_analysis.mba_oracle_path manualmente ou navegue até o arquivo na janela de Configurações do Binary Ninja.

Plugin Settings

Se algo der errado, o plugin escreve uma mensagem concisa ao usuário no painel de Log; mude a visualização do log para Debug para ver o rastreamento completo.

Log Output

Recursos

O plugin traz auxiliares focados que visam obstáculos comuns que você encontra ao fazer engenharia reversa de binários protegidos, cada um executável como uma tarefa em segundo plano a partir da interface ou de scripts head-less. Abaixo estão os recursos atualmente disponíveis.

Funções Corrompidas

Funções Corrompidas são funções cuja desmontagem mostra artefatos indefinidos—blocos básicos vazios, instruções inválidas ou sobrepostas, e similares. Este auxiliar percorre todo o BinaryView, sinaliza funções com esses sintomas e as lista de forma que o analista possa inspecionar rapidamente código que foi mal interpretado ou deliberadamente ofuscado. Uma ação opcional de remoção apaga cada função sinalizada e força uma nova análise, limpando a lista de funções. É particularmente útil para localizar

  • blobs de dados que o desmontador promoveu erroneamente a código
  • stubs de ofuscação que quebram a desmontagem em linha reta
  • funções que usam instruções sobrepostas ou saltos desalinhados
  • problemas com arquiteturas mais recentes onde instruções incomuns são encontradas

Simplificação de MBA

Aritmética Mista-Booleana (MBA) é uma técnica de ofuscação que enterra computações simples em longas cadeias de operações aritméticas e booleanas. Este recurso simplifica tais expressões no descompilador. Quando você escolhe uma instrução HLIL, o plugin coleta sua cadeia de computação completa com um slice reverso de SSA restrito ao bloco básico atual, traduz esse slice para Miasm IR, o alimenta no msynth e, finalmente, adiciona o resultado simplificado como um comentário na visão do descompilador. Este recurso permite que você

  • colapse emaranhados de MBA de várias linhas em uma única equação legível
  • resolva predicados opacos que dependem de MBAs
  • reduza codificações de constantes convolutas ao seu valor literal

Embutimento de Funções

Para a função atualmente selecionada, este auxiliar embute recursivamente cada função chamada dentro da visão do descompilador, dando ao Binary Ninja uma IL única e autocontida. Com todas as fronteiras removidas, o descompilador pode propagar dados entre funções, permitindo dobramento de constantes mais profundo, eliminação de código morto e lógica geralmente mais clara. Use-o para

  • colapsar cadeias de pequenos wrappers, thunks ou auxiliares de acesso
  • melhorar representações de algoritmos que foram divididas entre várias funções
  • analisar esquemas de ofuscação onde a lógica é deliberadamente espalhada entre funções

Observe que o HLIL pode se tornar muito grande e lento para renderizar em funções muito grandes ou árvores de chamadas profundas. Além disso, algumas otimizações do descompilador podem ser menos eficazes depois que tudo é mesclado em uma única unidade. Para controlar isso, você pode limitar a profundidade de embutimento: defina Settings -> Obfuscation Analysis -> Max Function Inlining Depth para um limite superior N (por padrão definido como 1). Com um limite de profundidade, apenas os primeiros N níveis de chamada são embutidos; chamadas mais profundas não são embutidas.

Limitações

O plugin tem algumas ressalvas que você deve conhecer, a maioria delas relacionada ao pipeline de simplificação de MBA:

  • bug do Binary Ninja: no BN 5.0 stable, o passo de slicing reverso pode falhar por causa de type-casts de HLIL ausentes: https://github.com/Vector35/binaryninja-api/issues/6371; o problema é corrigido em 5.1.7477-de e versões mais recentes

  • slice confinado a um bloco básico: definições de variáveis localizadas em blocos predecessores são ignoradas (frequentemente dependentes de fluxo de controle), então alguns termos de MBA podem permanecer parcialmente resolvidos

  • lacunas de tradução de HLIL para Miasm IR: nem toda construção HLIL tem um equivalente sólido em Miasm; quando a tradução falha, a expressão é ignorada e um erro é registrado

  • cobertura de IL: nós de fluxo de controle e operações de ponto flutuante atualmente não são traduzidos

  • restrições herdadas do msynth : a simplificação de MBA herda todas as limitações do msynth

Contato

Para mais informações, entre em contato com Tim Blazytko (@mr_phrazer) ou Nicolò Altamura (@nicolodev).

Baixar ferramenta