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
yaralyzer — Inspecione visualmente e force a decodificação de correspondências YARA e regex encontradas em dados binários e de texto com cores. Muitas cores. | Kitploit
Ferramentas/GitHubGitHub/michelcrypt4d4mus/yaralyzer
Engenharia ReversaAnálise ForenseAnálise de MalwareAnálise de Binários
GitHubmichelcrypt4d4mus/yaralyzer

yaralyzer

Inspecione visualmente e force a decodificação de correspondências YARA e regex encontradas em dados binários e de texto com cores. Muitas cores.

Ver Repositório
15215há 6 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

GithubRelease Release Downloads Tests Python Version

O YARALYZER

Correspondência YARA

Inspecione visualmente todas as correspondências de regex (e seus primos mais sexy e misteriosos, as correspondências YARA) encontradas em dados binários e/ou texto. Veja o que acontece quando você força várias codificações de caracteres nesses bytes correspondidos. Com cores.

Início Rápido

root@kitploit:~
pipx install yaralyzer

# Escanear contra definições YARA em um arquivo:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf

# Escanear contra uma expressão regular arbitrária:
yaralyze --regex-pattern 'good and evil.*of\s+\w+byte' --regex-modifier wide the_crypto_archipelago.exe

# Escanear contra um padrão hexadecimal YARA arbitrário:
yaralyze --hex-pattern 'd0 93 d0 a3 d0 [-] 9b d0 90 d0 93' one_day_in_the_life_of_ivan_cryptosovich.bin

O Que Ele Faz

  1. Veja os bytes reais que suas regras YARA estão correspondendo. Sem mais cavar copiando/colando as posições iniciais relatadas pelo YARA no seu editor hexadecimal favorito. Exibe tanto os bytes correspondidos pelo YARA quanto um número configurável de bytes antes e depois de cada correspondência em hexadecimal e representação de string Python "crua".
  2. Faça o mesmo para padrões de byte e expressões regulares sem escrever um arquivo YARA. Se você está com preguiça de escrever um arquivo YARA, mas está tentando determinar, por exemplo, se há uma expressão regular escondida em algum lugar no arquivo, você pode escanear o padrão '/.+/' e imediatamente obter uma janela para todos os bytes no arquivo que estão entre barras. Mesma história para aspas, BOMs, etc. Qualquer regex que o YARA possa lidar é suportada, então o céu é o limite.
  3. Detecte as possíveis codificações de cada conjunto de bytes correspondidos. chardet é uma biblioteca sofisticada para adivinhar codificações de caracteres e é usada aqui.
  4. Exiba o resultado de forçar várias codificações de caracteres nas áreas correspondidas. Várias codificações de caracteres padrão serão forçadamente tentadas na região ao redor da correspondência. chardet também será usado para ver se os bytes se encaixam no padrão de qualquer codificação conhecida. Se o chardet estiver confiante o suficiente (configurável), uma tentativa de decodificar os bytes usando essa codificação será exibida.
  5. Exporte as regiões/decodificações correspondidas para SVG, HTML e arquivos de texto colorido. Mostre sua arte ASCII.

Por Que Ele Faz

A funcionalidade do Yaralyzer foi extraída de O Pdfalyzer quando se tornou aparente que visualizar e decodificar correspondências de padrões em binários tinha mais utilidade do que apenas em uma ferramenta de análise de PDF.

YARA, para aqueles que não sabem1, é comercializado como uma ferramenta de análise/alerta de malware, mas na verdade é muito mais e muito menos do que isso. Uma maneira de pensar sobre isso é que YARA é um motor de correspondência de expressões regulares turbinado. Ele pode localizar correspondências de regex em binários como qualquer motor de regex, mas também pode fazer coisas muito mais selvagens, como combinar regexes em grupos lógicos, comparar regexes contra todas as 256 versões XORed de um binário, verificar codificações base64 e outras do padrão, e mais. Talvez o mais importante de tudo, YARA fornece um formato padrão baseado em texto para pessoas compartilharem suas regexes turbinadas com o mundo. Todos esses recursos são particularmente úteis ao analisar ou fazer engenharia reversa de malware, cujos autores tendem a investir muito tempo para tornar as coisas difíceis de encontrar.

Mas... isso é tudo que YARA faz. Todo o resto depende do usuário. YARA é apenas um motor de correspondência e se você não sabe o que corresponder (ou mesmo qual codificação de caracteres você pode ser capaz de corresponder), ele só te leva até certo ponto. Eu me vi um pouco frustrado tentando usar YARA para olhar todas as correspondências de alguns padrões críticos:

  1. Bytes entre aspas escapadas (\".+\" e \'.+\')
  2. Bytes entre barras (/.+/). Barras delimitam uma expressão regular em muitas implementações e eu estava tentando ver se algum dos bytes correspondendo a esse padrão eram realmente regexes.

YARA apenas informa a posição do byte e a string correspondida, mas não pode lhe dizer se esses bytes são UTF-8, UTF-16, Latin-1, etc. (ou nada disso). Também me vi querendo entender o que estava acontecendo na região dos bytes correspondidos e não apenas nos bytes correspondidos. Em outras palavras, eu queria escopar os bytes imediatamente antes e depois do que foi correspondido.

Apresentando O Yaralyzer, que permite escanear rapidamente as regiões ao redor das correspondências enquanto também mostra como essas regiões se pareceriam se fossem forçadas em várias codificações de caracteres.

O Yaralyzer não é uma ferramenta de reversão de malware. Ele não pode fazer as coisas que uma ferramenta como CyberChef faz e não tenta fazer. É mais destinado a dar uma visão geral visual rápida das regiões suspeitas no binário para que você possa focar nas áreas que você pode querer inspecionar com uma ferramenta mais séria.

Instalação

Instale com pipx ou pip3. pipx é uma solução marginalmente melhor, pois garante que quaisquer pacotes instalados com ele sejam isolados do resto do seu ambiente Python local. Claro, se você realmente não tem um ambiente Python local, isso é um ponto discutível e você pode instalar à vontade com pip/pip3.

root@kitploit:~
pipx install yaralyzer

Uso

Execute yaralyze -h para ver as opções de linha de comando (captura de tela abaixo).

Para informações sobre exportar imagens SVG, HTML, etc., veja Exemplo de Saída.

Configuração

Se você colocar um arquivo chamado .yaralyzer no seu diretório inicial ou no diretório de trabalho atual, as variáveis de ambiente especificadas nesse arquivo .yaralyzer serão adicionadas ao ambiente cada vez que o yaralyzer for invocado. Isso fornece um mecanismo para configurar permanentemente várias opções de linha de comando, para que você evite digitá-las repetidamente. Veja os comentários no arquivo de exemplo .yaralyzer.example para mais informações.

Apenas um arquivo .yaralyzer será carregado e o .yaralyzer do diretório de trabalho tem precedência sobre o do diretório inicial.

Como Biblioteca

Yaralyzer é a classe principal. Documentação gerada automaticamente para as várias classes e métodos do Yaralyzer pode ser encontrada aqui. Ele tem uma variedade de construtores alternativos suportando:

  1. Regras YARA pré-compiladas
  2. Criar uma regra YARA a partir de uma string
  3. Carregar regras YARA de arquivos
  4. Carregar regras YARA de todos os arquivos .yara em um diretório
  5. Escanear bytes
  6. Escanear um arquivo

Se você quiser iterar sobre os objetos BytesMatch (como um objeto re.Match para uma correspondência YARA) e BytesDecoder (rastreia estatísticas de tentativa de decodificação) usados pelo Yaralyzer, você pode fazer assim:

root@kitploit:~
from yaralyzer.yaralyzer import Yaralyzer

yaralyzer = Yaralyzer.for_rules_files(['/secret/rule.yara'], 'lacan_buys_the_dip.pdf')

for bytes_match, bytes_decoder in yaralyzer.match_iterator():
    do_stuff()

Solução de Problemas

Se você receber um yara.Error com um código de erro numérico, você pode verificar o que esse código pode significar aqui.

Exemplo de Saída

O Yaralyzer pode exportar visualizações para HTML, texto colorido ANSI e imagens vetoriais PNG e SVG usando a funcionalidade de exportação de arquivo que vem com Rich, bem como um formato JSON de texto simples (um tanto limitado).

Se você quiser exportar imagens .png como as abaixo diretamente do Yaralyzer, você precisará fazer uma destas coisas:

  1. Instalar Inkscape (usuários do homebrew podem instalar com brew install --cask inkscape)
  2. Solicitar o extra img ao instalar o Yaralyzer, que instalará cairosvg: pipx install yaralyzer[img]. Você também terá que instalar o executável CairoSVG manualmente de maneiras diferentes dependendo do seu sistema operacional; veja a documentação do CairoSVG para os detalhes.

Em nossa experiência, tanto Inkscape quanto CairoSVG funcionam, embora tenhamos visto alguns problemas de renderização na saída gerada pelo CairoSVG em SVGs renderizados pelo Yaralyzer, então Inkscape é a opção recomendada.

Resultado bruto da correspondência YARA:

Exibir hexadecimal, string Python crua e várias decodificações tentadas tanto da correspondência quanto dos bytes antes e depois da correspondência (configurável):

Bônus: veja o que o chardet.detect() pensa sobre a probabilidade de seus bytes estarem em uma determinada codificação/idioma:

Contribuindo

Contribuições são mais que bem-vindas; veja CONTRIBUTING.md para detalhes sobre configuração do ambiente, execução do conjunto de testes, etc. Há também uma lista de TODO lá com o trabalho que precisa ser feito.

Footnotes

  1. Como eu era até recentemente. ↩

Baixar ferramenta