PEStudio: análise estática de malware Windows sem executar a amostra

Ferramenta

PEStudio: análise estática de malware Windows sem executar a amostra

Rodrigo ColissiRodrigo Colissi
04 de setembro de 202616 min de leitura—
MalwareForense Digital

O que é

O PEStudio (escrito em minúsculas como pestudio pelo próprio autor) é uma ferramenta gratuita de análise estática de binários Windows criada pelo analista de malware Marc Ochsenmeier, mantida desde 2009 no site winitor.com e utilizada por CERTs (Computer Emergency Response Teams, equipes de resposta a incidentes), SOCs (Security Operations Centers, centros de operações de segurança) e profissionais de DFIR (Digital Forensics and Incident Response, forense digital e resposta a incidentes) em todo o mundo — inclusive como material de apoio do curso SANS FOR610, referência em engenharia reversa de malware. Diferente de um sandbox, o PEStudio nunca executa o arquivo analisado: ele abre o binário, decompõe sua estrutura e apresenta em segundos o que o arquivo revela — hashes, metadados, seções, bibliotecas importadas, funções, strings, entropia e assinaturas — sem nenhum risco de infecção para a máquina que faz a análise. O alvo é o formato PE (Portable Executable, o formato padrão de executáveis, bibliotecas e drivers do Windows), reconhecido pelos bytes "MZ" (4D 5A em hexadecimal) gravados no início de todo arquivo .exe, .dll ou .sys.

O nome da ferramenta resume seu papel: ela entrega a triagem (avaliação inicial rápida para decidir se uma amostra merece investigação aprofundada), o primeiro passo de todo fluxo de análise de malware. Antes de detonar um binário em um sandbox ou abrir um depurador, o analista precisa responder três perguntas: o arquivo é malicioso? O que ele é capaz de fazer? E como procurá-lo na rede? O PEStudio responde às três com dados concretos — o score no VirusTotal (serviço que agrega detecções de dezenas de antivírus por hash) dá a primeira resposta, os imports e as strings revelam capacidades, e os hashes viram IOCs (Indicators of Compromise, indicadores de comprometimento) para busca nos endpoints. Como a ferramenta é portátil — não exige instalação e roda a partir de um pendrive, sem tocar no registro do Windows — ela pode ser levada para qualquer máquina de investigação sem deixar rastros.

Análise de malware, mesmo estática, deve ser feita em uma máquina isolada e descartável — uma VM (máquina virtual) com snapshot (cópia de estado do sistema que permite restaurar o ambiente) e, de preferência, sem acesso à rede. O PEStudio não executa o arquivo, mas o analista nunca sabe de antemão o que um binário desconhecido pode fazer.

Principais características

O PEStudio organiza tudo o que extrai do binário em visões laterais que funcionam como camadas de uma investigação: cada aba revela um aspecto do arquivo e alimenta a seguinte. A tabela abaixo resume as visões principais e o que cada uma contribui para a triagem:

VisãoO que revelaValor na triagem
MainHashes MD5 e SHA-1, imphash, tamanho, entropia do arquivo, primeiros bytes, timestamp de compilação, arquitetura (32/64 bits), compilador/empacotador detectado e score do VirusTotalIdentidade do arquivo e primeira leitura de suspeita
IndicatorsLista de anomalias classificadas por nível de confiança (1 a 3), como seções executáveis, imports blacklistados, bibliotecas suspeitas e arquivos embutidosRoteiro da análise: indica exatamente onde olhar primeiro
SectionsNome, tamanho, permissões e entropia de cada seção do PEDetecção de packing (empacotamento, técnica que comprime e ofusca o código) e de código auto-modificável
LibrariesDLLs (Dynamic Link Libraries, bibliotecas de vínculo dinâmico) importadas pelo binário, com marcação de blacklist e gruposCapacidades por biblioteca: rede, áudio, registro, criptografia
ImportsFunções importadas, também conhecidas como IAT (Import Address Table, tabela de endereços de importação), com grupos e dicas por funçãoO que o malware "sabe fazer" sem precisar ser executado
StringsStrings ASCII e Unicode com tipo, localização no arquivo, blacklist, dicas e gruposURLs, IPs, chaves de registro, user-agents e caminhos de arquivo
VirusTotalScore e detecções dos antivírus por hash da amostraReputação pública: quantos AVs já classificaram o arquivo
RecursosManifesto (metadados de identidade do aplicativo), ícones, recursos embutidos e overlay (dados anexados após o fim do PE), com extraçãoArquivos escondidos dentro do binário, como um segundo estágio

O coração da ferramenta é a visão Indicators: cada anomalia detectada recebe um nível de confiança de 1 a 3, em que 1 é o indicador mais confiável de malícia e 3 é apenas uma observação a ser verificada. Os exemplos abaixo, retirados da apresentação do próprio autor no Black Hat London 2019, mostram como os indicadores traduzem a análise em pistas acionáveis:

Indicador (traduzido)Nível
O arquivo referencia strings marcadas como blacklist (25 ocorrências)1
O arquivo importa símbolos marcados como blacklist (14 ocorrências)1
O arquivo contém outro arquivo embutido (localização: overlay)1
O arquivo é pontuado pelo VirusTotal (59/69 detecções)1
A última seção do arquivo é executável1
O arquivo referencia bibliotecas marcadas como blacklist (3 ocorrências)1
O tamanho do DOS stub (pequeno programa exibido quando o executável roda em DOS) é suspeito (2.696 bytes)2
O checksum (soma de verificação) do arquivo é inválido (0x00000000)2
O arquivo contém várias seções executáveis (2)2
O manifesto do aplicativo foi detectado3

Além desses, a ferramenta calcula métricas que o analista não enxerga a olho nu: a entropia (medida de aleatoriedade dos dados, em uma escala de 0 a 8) de cada seção e do arquivo inteiro, o imphash (hash MD5 calculado sobre o conjunto de funções importadas, que permanece igual entre variantes da mesma família de malware mesmo quando o arquivo muda), o file-ratio (proporção entre o tamanho do arquivo e o das seções, que expõe discrepâncias de compactação) e o rich header (estrutura que registra a cadeia de compiladores e linkers usados para gerar o binário). Valores de entropia entre 7 e 8 em seções como .text, .data ou .rsrc indicam código empacotado ou criptografado; a detecção automática de empacotadores como o UPX (empacotador de executáveis de código aberto) confirma a suspeita em um clique.

O PEStudio existe em duas versões, com a mesma base de análise e recursos diferentes:

RecursoBásica (grátis)Professional
Assinatura de arquivo, URLs/IPs hard-coded, metadados, imports, exports e stringsSimSim
Manifesto, recursos, overlay, entropia, imphash, rich header, TLS callbacks e DOS stubSimSim
Score do VirusTotal (envia apenas o hash MD5, nunca o arquivo)SimSim
Execução em lote via linha de comando (pestudiox.exe)—Sim
Relatório XML para integração com outras ferramentas—Sim
Mapeamento de táticas e técnicas do MITRE ATT&CK—Sim
Análise de .NET (plataforma da Microsoft para aplicações gerenciadas): namespaces, recursos e arquivos embutidos—Sim
Detecção de imports e bibliotecas duplicados e spoofados (falsificados)—Sim
Agrupamento e coloração de itens, tabelas de exceções e realocações—Sim

A versão basic é gratuita e suficiente para aprender e para uso pessoal de estudo; a professional custa 159 euros por usuário/ano e destina-se a uso profissional, tema que retomamos na seção de riscos porque envolve a licença de uso.

Casos de uso práticos

Triagem rápida de um binário suspeito: o workflow completo

O cenário clássico é um arquivo recebido por e-mail, baixado de um site de download ou encontrado em uma máquina comprometida — por exemplo, um hipotético suspeito.exe descoberto em uma pasta de Downloads durante uma investigação. O primeiro passo é arrastar o arquivo para a janela do PEStudio; em poucos segundos, a visão Main confirma que o arquivo é um PE legítimo (os bytes iniciais 4D 5A, o "MZ") e apresenta os hashes MD5 e SHA-1, o timestamp de compilação, a arquitetura de 64 bits e a entropia geral de 7,9 — valor alto, típico de código empacotado. O score do VirusTotal mostra 3 detecções em 70 antivírus: um sinal fraco, mas não suficiente para descartar a amostra, já que famílias novas e evasivas demoram a acumular detecções.

Em seguida, a visão Indicators resume o veredito preliminar em uma lista ordenada por nível: strings blacklistadas (nível 1), imports blacklistados (nível 1), outro arquivo embutido no overlay (nível 1) e checksum inválido (nível 2). O caminho é claro — a amostra não é um binário inocente. O passo seguinte é confirmar o empacotamento na visão Sections: as seções UPX0 e UPX1, com nomes característicos e entropia acima de 7, indicam que o suspeito.exe foi compactado com UPX; a seção UPX1 ocupa quase 88% do arquivo, e é nela que o código real está escondido.

Depois, a visão Imports mostra o que o binário é capaz de fazer, mesmo antes de ser desempacotado — as funções importadas sobrevivem ao empacotamento porque o carregador do Windows precisa delas:

ImportGrupoCapacidade indicada
URLDownloadToFileARedeBaixar arquivos adicionais da internet
RegCreateKeyA / RegSetValueExARegistroCriar persistência em chaves de inicialização
VirtualAlloc / WriteProcessMemoryMemóriaAlocar e escrever em memória de outros processos (injeção)
CreateServiceAServiçoInstalar-se como serviço do Windows
GetProcAddressExecuçãoResolver APIs dinamicamente, padrão de ofuscação
ShellExecuteAExecuçãoExecutar outros programas

Por fim, a visão Strings completa o retrato com o texto embutido no binário: um user-agent (identificador enviado em requisições HTTP) antigo e incomum, o caminho Software\Microsoft\Windows\CurrentVersion\Run — a chave de registro clássica de persistência — e um domínio que não aparece em nenhuma listagem de reputação, provável C2 (Command and Control, servidor de comando e controle). Com isso, o analista tem elementos para decidir: a amostra é empacotada, com indicadores de nível 1 e capacidades de download, injeção e persistência. O próximo passo natural é desempacotar o binário para aprofundar a análise estática ou detoná-lo em um sandbox para observar o comportamento dinâmico — e, em paralelo, os hashes e o domínio já podem ser usados para caçar a amostra em outros hosts da rede.

Caça a variantes e escrita de regras YARA

Além da triagem de um arquivo isolado, o PEStudio é uma ferramenta de agrupamento: o imphash permite identificar, entre dezenas de amostras coletadas, quais pertencem à mesma família — duas amostras com o mesmo conjunto de imports provavelmente vieram do mesmo kit de construção, mesmo que os hashes MD5 e SHA-1 sejam diferentes. É o ponto de partida para a caça a variantes em um diretório de amostras ou em um feed de threat intelligence (inteligência de ameaças, a coleta e análise de informações sobre ataques).

O mesmo material alimenta a escrita de regras YARA (linguagem de assinaturas para identificar padrões em arquivos, amplamente usada para detectar malware): as strings distintivas reveladas na visão Strings — o domínio de C2, o user-agent, a chave de registro e o caminho de instalação — viram os padrões da regra. O PEStudio não executa regras YARA nativamente; o motor de avaliação roda em ferramentas dedicadas, mas é o ponto de partida ideal para identificá-las. Uma regra mínima baseada nos achados do suspeito.exe teria a seguinte forma:

rule Suspeito_Familia_2026 {
    meta:
        author = "Zero Day Security"
        description = "Detecta amostras da familia suspeito.exe"
    strings:
        $ua  = "Mozilla/4.0 (compatible; MSIE 8.0; Win32)"
        $c2  = "hxxp://malicioso[.]example/delivery"
        $key = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
    condition:
        uint16(0) == 0x5A4D and 2 of them
}

A condição uint16(0) == 0x5A4D exige que o arquivo seja um PE (os bytes "MZ") e que pelo menos duas das três strings estejam presentes — um bom equilíbrio entre sensibilidade e precisão. Na notação acima, o domínio aparece defangado (com [.] no lugar do ponto) para evitar que a própria regra seja tratada como link ou IOC acidental.

Triagem em lote, relatórios e análise de .NET no SOC

Em um SOC com fluxo de alertas constante, a versão professional adiciona duas capacidades que mudam de escala: o pestudiox.exe, a versão em linha de comando, processa arquivos em lote e gera um relatório XML por amostra — um formato que pode ser consumido por outras ferramentas da cadeia de análise, integrando a triagem estática a um pipeline maior. O relatório organiza os achados por estrutura do arquivo, como mostra o trecho real da documentação do autor, com o mapeamento de táticas e técnicas:

<mitre hint="6">
  <mitre-tactic name="Initial Access" ta="TA0001"/>
  <mitre-tactic name="Defense Evasion" ta="TA0005">
    <mitre-technique name="Process Injection" ti="T1055"/>
  </mitre-tactic>
  <mitre-tactic name="Discovery" ta="TA0007">
    <mitre-technique name="Process Discovery" ti="T1057"/>
  </mitre-tactic>
</mitre>

Essa visão de táticas e técnicas vem do mapeamento nativo da versão professional para o MITRE ATT&CK (base de conhecimento de táticas e técnicas de ataque observadas em ataques reais), que transforma os imports e strings em técnicas catalogadas — como Process Injection (T1055) e Process Discovery (T1057) — e acelera a escrita de relatórios padronizados.

Outro caso recorrente é a análise de malwares escritos em .NET, cada vez mais comuns entre stealers (programas que roubam credenciais, cookies e dados de navegadores), como o XWORM, analisado aqui no Zero Day Security. Para binários gerenciados, a visão .NET da versão professional lista namespaces, classes, funções, streams e permite extrair os arquivos embutidos — uma vantagem enorme, porque grande parte do código ofensivo fica visível como metadados legíveis, sem precisar de engenharia reversa.

Como se defender e riscos

Ambiente de análise isolado. O PEStudio não executa a amostra, mas ainda assim analisa arquivos não confiáveis — e um PE malformado, projetado para explorar falhas em parsers, é um risco real em qualquer ferramenta de análise. A análise deve acontecer sempre em uma VM descartável, com snapshot antes de cada amostra, rede bloqueada ou controlada e o PEStudio atualizado; a mesma máquina nunca deve ser usada para trabalho de produção, e o pendrive com as amostras não deve ser conectado a máquinas comuns.

Controle sobre o que sai da máquina. A consulta ao VirusTotal é o único ponto em que o PEStudio toca a rede, e seu modelo de privacidade é bem desenhado: ele envia apenas o hash MD5 do arquivo — a amostra em si nunca sai da máquina, e o envio pode ser completamente desabilitado por uma chave de configuração nos arquivos XML da ferramenta. Em investigações sensíveis, vale desabilitar a consulta ou executar a análise offline e fazer a consulta de reputação em um ambiente controlado, porque até o hash é um dado que pode identificar a amostra.

Reconhecer os limites da análise estática. Empacotamento e criptografia escondem o código real, e é comum malware usar API hashing (ofuscação que substitui nomes de funções por valores numéricos calculados) para esconder os imports — nesses casos, a visão Imports fica vazia e as strings legíveis praticamente somem. Entropia alta não é prova de malícia: softwares legítimos usam empacotadores e protetores comerciais, e um score baixo no VirusTotal não significa arquivo limpo — amostras novas, sob medida ou de famílias evasivas frequentemente acumulam zero detecções. Indicadores são heurísticas, não vereditos: um programa legítimo pode muito bem usar APIs de rede e chaves de inicialização. O analista deve tratar o PEStudio como gerador de hipóteses, nunca como juiz final.

Respeitar a licença de uso. A versão gratuita é licenciada para uso privado e educacional, e a documentação oficial é explícita: a versão standard "não pode ser usada em ambiente profissional". Um SOC, uma equipe de resposta a incidentes ou um consultor que use a versão gratuita no trabalho está violando a licença — o uso profissional exige a licença professional (159 euros por usuário/ano), que inclusive adiciona os recursos de lote, relatório XML e mapeamento ATT&CK que o trabalho profissional normalmente exige.

Sempre confirmar com análise dinâmica. A análise estática responde o que o binário pode fazer; a análise dinâmica responde o que ele faz de fato. Após a triagem, o fluxo completo exige detonar a amostra em um sandbox para observar processos, rede e persistência reais, e usar um depurador como o x64dbg (depurador de código aberto para Windows) para acompanhar a execução instrução por instrução quando o código estiver desempacotado. Na ponta da defesa, os IOCs extraídos — hashes, domínios, chaves de registro e strings — alimentam EDRs (Endpoint Detection and Response, soluções que monitoram endpoints), SIEMs (Security Information and Event Management, plataformas de correlação de logs) e regras YARA na rede, transformando a triagem estática em detecção contínua.

Conclusão

O PEStudio é, para a análise de malware, o que uma radiografia é para a medicina: um exame rápido, não invasivo e revelador, que mostra o que está por dentro antes de qualquer procedimento mais agressivo. Em segundos, ele transforma um binário opaco em um conjunto ordenado de pistas — hashes, entropia, seções, imports, strings e indicadores de nível 1 — que permitem ao analista decidir se a amostra merece investigação aprofundada, o que ela é capaz de fazer e como procurá-la na rede. Sua combinação de portabilidade, ausência de risco de infecção e profundidade técnica o tornou o primeiro passo padrão de triagem em CERTs, SOCs e laboratórios de DFIR do mundo inteiro. O profissional que domina o PEStudio não apenas acelera seu fluxo de análise: aprende a ler a anatomia do executável Windows, uma habilidade que permanece útil em qualquer estágio da carreira de segurança ofensiva ou defensiva — desde que mantenha a humildade de confirmar com a análise dinâmica o que a estática apenas sugeriu.

Fontes e leituras adicionais

Gostou? Receba novos conteúdos por e-mail.

Entre na comunidade

Discussões técnicas e novidades em primeira mão.