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
Fnord — Extrator de Padrões para Código Ofuscado | Kitploit
Ferramentas/GitHubGitHub/neo23x0/fnord
Análise EstáticaAnálise de Malware
GitHubneo23x0/fnord

Fnord

Extrator de Padrões para Código Ofuscado

Ver Repositório
30344há 4 anosRevisado 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

Build Status Activamente Mantido

Fnord

Fnord é um extrator de padrões para código ofuscado

Descrição

O Fnord tem duas funções principais:

  1. Extrair sequências de bytes e criar algumas estatísticas
  2. Usar essas estatísticas, combinar comprimento, número de ocorrências, similaridade e palavras-chave para criar uma regra YARA

1. Estatísticas

O Fnord processa o arquivo com uma janela deslizante de tamanho variável para extrair todas as sequências com um comprimento mínimo -m X (padrão: 4) até um comprimento máximo -x X (padrão: 40). Para cada comprimento, o Fnord apresentará as sequências mais frequentes -t X (padrão: 3) numa tabela.

Cada linha na tabela contém:

  • Comprimento
  • Número de ocorrências
  • Sequência (string)
  • Formatado (ascii/wide/hex)
  • Forma codificada em hex
  • Entropia

2. Criação de Regras YARA

O Fnord também gera uma regra YARA experimental. Durante a criação da regra YARA, ele calcula uma pontuação baseada no comprimento da sequência e no número de ocorrências (comprimento * ocorrências). Em seguida, processa cada sequência removendo todos os caracteres não-letra e comparando-as com uma lista de palavras-chave (sem distinção entre maiúsculas/minúsculas) para detetar sequências que são mais interessantes que outras. Antes de escrever cada string na regra, o Fnord calcula uma distância de Levenshtein e ignora sequências que são demasiado semelhantes a sequências já integradas na regra.

Estado

[Experimental] O Fnord foi criado há alguns dias e testei-o com um punhado de amostras. O meu palpite é que vou ajustar os valores predefinidos nas próximas semanas e adicionar mais algumas palavras-chave, filtros e opções de pontuação.

Melhorar os Resultados

Se encontrou código ofuscado numa amostra, utilize um editor hexadecimal para extrair a secção ofuscada da amostra e guarde-a num novo ficheiro. Use esse novo ficheiro para a análise.

Brinque com as opções -s, -k, -r, --yara-strings, -m e -e.

Por favor, envie-me amostras que produzam regras YARA fracas que poderiam ser melhores.

Utilização

root@kitploit:~
        ____                 __
       / __/__  ___  _______/ /
      / _// _ \/ _ \/ __/ _  /
     /_/ /_//_/\___/_/  \_,_/ Pattern Extractor for Obfuscated Code
     v0.7, Florian Roth

    usage: fnord.py [-h] [-f file] [-m min] [-x max] [-t top] [-n min-occ]
                    [-e min-entropy] [--strings] [--include-padding] [--debug]
                    [--noyara] [-s similarity] [-k keywords-multiplier]
                    [-r structure-multiplier] [-c count-limiter] [--yara-exact]
                    [--yara-strings max] [--show-score] [--show-count]
                    [--author author]

    Fnord - Pattern Extractor for Obfuscated Code

    optional arguments:
      -h, --help            show this help message and exit
      -f file               File to process
      -m min                Minimum sequence length
      -x max                Maximum sequence length
      -t top                Number of items in the Top x list
      -n min-occ            Minimum number of occurrences to show
      -e min-entropy        Minimum entropy
      --strings             Show strings only
      --include-padding     Include 0x00 and 0x20 in the extracted strings
      --debug               Debug output

    YARA Rule Creation:
      --noyara              Do not generate an experimental YARA rule
      -s similarity         Allowed similarity (use values between 0.1=low and
                            10=high, default=1.5)
      -k keywords-multiplier
                            Keywords multiplier (multiplies score of sequences if
                            keyword is found) (best use values between 1 and 5,
                            default=2.0)
      -r structure-multiplier
                            Structure multiplier (multiplies score of sequences if
                            it is identified as code structure and not payload)
                            (best use values between 1 and 5, default=2.0)
      -c count-limiter      Count limiter (limts the impact of the count by
                            capping it at a certain amount) (best use values
                            between 5 and 100, default=20)
      --yara-exact          Add magic header and magic footer limitations to the
                            rule
      --yara-strings max    Maximum sequence length
      --show-score          Show score in comments of YARA rules
      --show-count          Show count in sample in comments of YARA rules
      --author author       YARA rule author

Primeiros Passos

  1. git clone https://github.com/Neo23x0/Fnord.git e cd Fnord
  2. pip3 install -r ./requirements.txt
  3. python3 ./fnord.py --help

Exemplos

root@kitploit:~
python3 fnord.py -f ./test/wraeop.sct --yara-strings 10
root@kitploit:~
python3 fnord.py -f ./test/vbs.txt --show-score --show-count -t 1 -x 20
root@kitploit:~
python3 fnord.py -f ./test/inv-obf.txt --show-score --show-count -t 1 --yara-strings 4 --yara-exact

Capturas de Ecrã

Fnord Screenshot

Fnord Screenshot

Fnord Screenshot

Aviso

A pasta ./test contém scripts que são maliciosos e podem ser detetados pelo seu antivírus local. Eles não prejudicam o seu sistema desde que não os execute.

Perguntas Frequentes

Porque é que não integrou o Fnord no yarGen?

O yarGen utiliza uma abordagem de lista branca para filtrar as strings que são melhores para a criação de uma regra YARA. O yarGen aplica algumas expressões regulares para ajustar as pontuações das strings antes de criar as regras YARA. Mas a sua abordagem é muito diferente do método utilizado pelo Fnord, que calcula a pontuação das sequências de bytes com base em estatísticas.

Enquanto o yarGen é melhor usado para código não ofuscado, o Fnord é apenas para código ofuscado e deve produzir resultados muito melhores que o yarGen.

Contacto

Siga-me no Twitter para atualizações @cyb3rops

Baixar ferramenta