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
Ferramentas/GitHubGitHub/mandiant/stringsifter
Análise EstáticaEngenharia ReversaAnálise de MalwareAnálise de BináriosAprendizado de MáquinaTop em Análise de Malware nº17Top em Análise Estática nº20
GitHubmandiant/stringsifter

stringsifter

Uma ferramenta de aprendizado de máquina que classifica strings com base em sua relevância para análise de malware.

76212665há 3 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 →
Ver Repositório
Compartilhar

O StringSifter é uma ferramenta de aprendizado de máquina que classifica automaticamente strings com base em sua relevância para análise de malware.

Links Rápidos

  • Postagem técnica no blog - Aprendendo a classificar a saída de strings para uma análise de malware mais rápida
  • Postagem de anúncio - Disponibilizando o StringSifter como código aberto
  • Palestra no DerbyCon - StringSifter: Aprendendo a classificar a saída de strings para uma análise de malware mais rápida
  • Lançamentos do StringSifter no PyPi

Uso

O StringSifter requer a versão 3.9 ou superior do Python. Execute os seguintes comandos para obter o código, executar testes unitários e usar a ferramenta:

Instalação

root@kitploit:~
pip install stringsifter

Para desenvolvimento, use poetry:

root@kitploit:~
git clone https://github.com/mandiant/stringsifter.git cd stringsifter poetry install --with dev

Executando Testes Unitários

Para executar testes unitários a partir do diretório de instalação do StringSifter:

root@kitploit:~
poetry run tests -v

Executando pela Linha de Comando

O comando pip install instala dois scripts executáveis, flarestrings e rank_strings, no seu ambiente python. Ao desenvolver a partir do código-fonte, use pipenv run flarestrings e pipenv run rank_strings.

O flarestrings imita recursos do strings do GNU binutils, e o rank_strings aceita entrada via pipe, por exemplo:

root@kitploit:~
flarestrings <my_sample> | rank_strings

O rank_strings suporta vários argumentos de linha de comando. O argumento posicional input_strings especifica um arquivo de strings para classificar. Os argumentos opcionais são:

OpçãoSignificado
--scores (-s)Incluir as pontuações de classificação na saída
--limit (-l)Limitar a saída às principais limit strings classificadas
--min-score (-m)Limitar a saída às strings com pontuação >= min-score
--batch (-b)Especificar uma pasta de saídas de strings para processamento em lote

As strings classificadas são escritas na saída padrão, a menos que a opção --batch seja especificada, fazendo com que as saídas classificadas sejam gravadas em arquivos chamados <input_file>.ranked_strings.

O flarestrings suporta a opção -n (ou --min-len) para imprimir sequências de caracteres com pelo menos min-len caracteres, em vez do padrão de 4. Por exemplo:

root@kitploit:~
flarestrings -n 8 <my_sample> | rank_strings

imprimirá e classificará apenas strings de comprimento igual ou superior a 8.

Executando a partir de um contêiner Docker

  • Após clonar o repositório, crie o contêiner. A partir do diretório de nível superior do pacote:
root@kitploit:~
docker build -t stringsifter -f docker/Dockerfile .
  • Execute o contêiner com o argumento flarestrings ou rank_strings para usar o respectivo comando. Os comandos conteinerizados podem ser usados em pipelines:
root@kitploit:~
cat <my_sample> | docker run -i stringsifter flarestrings | docker run -i stringsifter rank_strings
  • Ou execute o contêiner sem argumentos para obter um prompt de shell, usando a flag -v para expor um diretório do host ao contêiner:
root@kitploit:~
docker run -v <my_malware>:/samples -it stringsifter

onde <my_malware> contém amostras para análise, por exemplo:

root@kitploit:~
docker run -v $HOME/malware/binaries:/samples -it stringsifter
  • No prompt do contêiner:
root@kitploit:~
flarestrings /samples/<my_sample> | rank_strings <options>

Todos os argumentos de linha de comando são suportados nos scripts conteinerizados.

Executando na Saída do FLOSS

O StringSifter pode ser aplicado a listas arbitrárias de strings, sendo útil para profissionais que buscam obter insights de fontes alternativas de coleta de inteligência, como dumps de memória ativa, execuções em sandbox ou binários que contêm strings ofuscadas. Por exemplo, o FireEye Labs Obfuscated Strings Solver (FLOSS) extrai strings imprimíveis assim como o Strings faz, mas também revela strings ofuscadas que foram codificadas, empacotadas ou construídas manualmente na pilha. Ele pode ser usado como um substituto direto do Strings, o que significa que o StringSifter pode ser igualmente invocado na saída do FLOSS usando o seguinte comando:

root@kitploit:~
$PY2_VENV/bin/floss –q <options> <my_sample> | rank_strings <options>

Notas:

  1. O argumento –q suprime cabeçalhos e formatação para mostrar apenas as strings extraídas. Para saber mais sobre opções adicionais do FLOSS, consulte a Documentação de Uso.
  2. O FLOSS requer Python 2, enquanto o StringSifter requer Python 3. No comando de exemplo, pelo menos um entre floss ou rank_strings deve incluir um caminho relativo referenciando um ambiente virtual python.
  3. O FLOSS pode ser baixado como um executável autônomo. Nesse caso, não é necessário especificar um ambiente Python porque o executável não depende de um interpretador Python.

Notas sobre como executar o strings

Esta distribuição inclui o programa flarestrings para garantir saída previsível em diferentes plataformas. Se você optar por executar o strings instalado no seu sistema, observe que suas opções não são consistentes entre versões e plataformas:

Linux

A maioria das distribuições Linux inclui o programa strings do GNU Binutils. Para extrair strings "largas" e "estreitas", o programa deve ser executado duas vezes, redirecionando para um arquivo de saída:

root@kitploit:~
strings <my_sample>       > strs.txt   # narrow strings
strings -el <my_sample>  >> strs.txt   # wide strings.  note the ">>"

MacOS

Algumas versões do strings do BSD incluídas no MacOS não suportam strings largas. Observe também que a opção -a do strings para escanear o arquivo inteiro pode estar desabilitada na configuração padrão. Sem -a, strings informativas podem ser perdidas. Recomendamos instalar o GNU Binutils via Homebrew ou MacPorts para obter uma versão do strings que suporte caracteres largos. Tenha cuidado para invocar a versão correta do strings.

Windows

O strings não é instalado por padrão no Windows. Recomendamos instalar Windows Sysinternals, Cygwin ou Malcode Analyst Pack para obter um strings funcional.

Discussão

Esta versão do StringSifter foi treinada usando saídas do Strings de binários de malware amostrados associados ao primeiro conjunto de dados EMBER. Rótulos ordinais foram gerados usando procedimentos de supervisão fraca, e o aprendizado supervisionado é realizado por Gradient Boosted Decision Trees com uma função objetivo de aprendizado para ranqueamento. Consulte Links Rápidos para mais detalhes técnicos. Observe que nem os dados rotulados nem o código de treinamento estão disponíveis atualmente, embora possamos reconsiderar essa abordagem em versões futuras.

Problemas

Usamos o GitHub Issues para reportar bugs e solicitar recursos.

Agradecimentos

  • Agradecimentos às equipes FireEye Data Science (FDS) e FireEye Labs Reverse Engineering (FLARE) pela revisão e feedback.
  • O StringSifter foi projetado e desenvolvido por Philip Tully (FDS), Matthew Haigh (FLARE), Jay Gibble (FLARE) e Michael Sikorski (FLARE).
  • O logotipo do StringSifter foi projetado por Josh Langner (FLARE).
  • O flarestrings é derivado da excelente ferramenta FLOSS.
Baixar ferramenta