Pular para o conteúdo

FLOSS - Extração de String Ofuscada para Malware - Guia de Referência

FLOSS - Extração de String Ofuscada para Malware - Guia de Referência

FLOSS (FLARE Obfuscated String Solver, por Mandiant) automaticamente extrai strings ofuscadas de malware. Autores rotineiramente escondem URLs, chaves de registro e comandos para que o utilitário strings clássico não encontre nada útil. FLOSS vai além: ele identifica rotinas de decodificação dentro do binário, emula elas e recupera o texto plano — superficiando strings de stack, strings tight e strings decodificadas que extração estática perde. É uma ferramenta de triagem de primeiro passo para qualquer amostra de malware Windows.

Analise malware apenas em uma VM/sandbox isolada. FLOSS emula código da amostra.

Instalação

MétodoComando
Binário autossuficienteBaixar de GitHub Releases (Windows/Linux/macOS)
pippip install flare-floss
Verificarfloss --version

Uso Básico

ComandoDescrição
floss malware.exeExtrair todos os tipos de string
floss -j malware.exeSaída JSON
floss --no static malware.exePular strings estáticas simples
floss -n 6 malware.exeComprimento mínimo de string 6
floss --helpLista de opções completa

Tipos de String Que FLOSS Recupera

TipoO que é
EstáticaStrings comuns (o que strings encontra)
StackConstruído caractere-por-caractere na stack em tempo de execução
TightConstruído em loops tight, nunca totalmente na memória de uma vez
DecodificadaProduzido por uma rotina de decodificação (XOR, RC4, customizada)

Os três últimos são o valor adicional — eles são invisíveis a strings porque nunca existem como bytes contíguos no arquivo.

Selecionando Tipos de Análise

FlagEfeito
--only staticApenas strings simples (rápido)
--only stackApenas strings de stack
--only tightApenas strings tight
--only decodedApenas strings emuladas/decodificadas
--no decodedPular a fase de emulação (lenta)
# Triagem rápida: pular emulação
floss --no decoded sample.exe

# Passe profundo: tudo, JSON para ferramentas
floss -j sample.exe > strings.json

Sinais de Triagem para Grep

PadrãoSugere
URLs / IPsInfraestrutura C2
HKLM\, HKCU\Persistência via registro
cmd.exe, powershellExecução de comando
CreateRemoteThread, VirtualAllocInjeção de processo
Blobs Base64Payloads incorporados
.onion, endereços de carteiraRansomware/exfiltração
floss sample.exe | grep -iE "http|\.exe|HKLM|powershell|AppData"

Saída & Integração

OpçãoPropósito
-j / --jsonSaída legível por máquina para pipelines
-v / -vvVerbose / debug
--functions 0x401000Focar emulação em funções específicas
Scripts IDA/GhidraAnotar strings recuperadas de volta na desmonagem

Alimentar saída FLOSS de volta ao Ghidra como comentários torna análise manual subsequente muito mais rápida.

Fluxos de Trabalho Comuns

# Sequência de triagem de malware padrão
floss -j sample.exe > floss.json          # recuperar strings
jq -r '.strings.decoded[].string' floss.json | sort -u   # focar em decodificadas
# → girar para Ghidra/x64dbg nas funções que produziram strings interessantes

# Comparar variantes: quais strings mudaram entre amostras?
floss --no decoded a.exe > a.txt; floss --no decoded b.exe > b.txt
diff a.txt b.txt

FLOSS vs Ferramentas Relacionadas

FerramentaRecupera
FLOSSEstática + stack + tight + decodificada (emulação)
stringsApenas bytes imprimíveis contíguos
capaCapacidades/comportamentos, não strings
Detect It EasyIdentificação de packer/compilador

Uma triagem padrão: Detect It Easy para identificar packing, FLOSS para recuperar strings, capa para enumerar capacidades.

Recursos