Prefetch, AmCache, ShimCache: referência rápida de artefatos de execução de programas

4 min de leitura

TL;DR. Leia em ordem de prioridade: Prefetch (o mais forte, quando ativo) → BAM/DAM (última execução por usuário no Win10+, criminalmente subutilizado) → AmCache (identificação SHA-1) → ShimCache (existência do arquivo) → UserAssist (lançamentos via Explorer apenas, codificado ROT13). Triangule; nenhum artefato fecha um caso sozinho.

Não existe um único artefato do Windows que responda perfeitamente a «este programa rodou, quando e por quem?». Os investigadores triangulam entre vários. Esta é a lista curta prática, com o que cada um diz e o que não diz.

A lista curta

ArtefatoLocalRegistraConfiabilidade para execução
PrefetchC:\Windows\Prefetch\*.pfCaminho, contador de execuções, 8 últimas execuções, arquivos carregadosMuito alta — escrito apenas no início do processo
AmCacheC:\Windows\AppCompat\Programs\Amcache.hveCaminho, SHA-1, tamanho, editor, instalação + 1ª execuçãoAlta — carimbos de execução explícitos
ShimCacheHive SYSTEM …\AppCompatCacheCaminho, mtime do arquivoMédia — prova existência, frequentemente (nem sempre) implica execução
UserAssistNTUSER.DAT …\UserAssistLançamentos GUI por usuário via ExplorerAlta — mas apenas iniciados por usuário, nomes codificados em ROT13
BAM / DAMHive SYSTEM …\bam\StateÚltima execução por usuário de cada binárioMuito alta — Win10+, fácil de analisar, frequentemente esquecido

Ler em ordem de prioridade

1. Prefetch primeiro. Um arquivo .pf é a coisa mais próxima de um recibo «isto rodou» que o Windows oferece. Armazena até oito últimas execuções, e o Windows moderno mantém Prefetch ativado por padrão em estações de trabalho. PECmd de Eric Zimmerman é o parser padrão.

2. BAM / DAM em segundo. Background e Desktop Activity Moderator são serviços que limitam apps em segundo plano. Mantêm um carimbo «última execução» por usuário e por binário na hive SYSTEM sob …\bam\State e …\dam\State. Presentes no Windows 10/11, de baixo ruído, fáceis de ler com qualquer ferramenta de registro.

3. AmCache em terceiro. AmCache cobre o que Prefetch não vê onde está desabilitado (servidores!) e fornece hashes SHA-1 para identificação inequívoca de arquivos. Veja ShimCache vs AmCache para o detalhamento.

4. ShimCache em quarto. Trate-o como âncora «o arquivo existiu», não como afirmação de execução. O post sobre prova de execução explica exatamente por quê.

5. UserAssist por último. Evidência forte de lançamento interativo (iniciado pelo Explorer), mas cega a qualquer coisa lançada de shell, tarefa agendada ou serviço. Útil para «o usuário clicou nisto?», não para «este binário já foi executado?».

Armadilhas comuns

  • Prefetch pode estar desabilitado em SSDs ou por política. Não assuma que sua ausência significa que nada rodou.
  • AmCache rotaciona e expira. Entradas antigas são purgadas. Colete o artefato cedo na triagem.
  • Carimbos do ShimCache são mtime do arquivo, não momento da execução. Muitos investigadores aprenderam isso da pior forma.
  • Nomes UserAssist são codificados em ROT13. Trivial de decodificar mas confunde o leitor casual.
  • BAM é criminalmente subutilizado. É um dos sinais mais limpos de «este binário foi executado para este usuário?» no Windows moderno.

Ferramentas

Para parsing offline de alta fidelidade, a suíte de ferramentas Eric Zimmerman é o padrão de fato — AppCompatCacheParser, AmcacheParser, PECmd, RBCmd e companhia. A biblioteca de artefatos Velociraptor lida com triagem ao vivo. E para ShimCache especificamente, você pode usar o Shimcache Parser diretamente no seu navegador sem instalar nada.

Leitura adicional

Artigos relacionados