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
| Artefato | Local | Registra | Confiabilidade para execução |
|---|---|---|---|
| Prefetch | C:\Windows\Prefetch\*.pf | Caminho, contador de execuções, 8 últimas execuções, arquivos carregados | Muito alta — escrito apenas no início do processo |
| AmCache | C:\Windows\AppCompat\Programs\Amcache.hve | Caminho, SHA-1, tamanho, editor, instalação + 1ª execução | Alta — carimbos de execução explícitos |
| ShimCache | Hive SYSTEM …\AppCompatCache | Caminho, mtime do arquivo | Média — prova existência, frequentemente (nem sempre) implica execução |
| UserAssist | NTUSER.DAT …\UserAssist | Lançamentos GUI por usuário via Explorer | Alta — mas apenas iniciados por usuário, nomes codificados em ROT13 |
| BAM / DAM | Hive SYSTEM …\bam\State | Última execução por usuário de cada binário | Muito 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
- AppCompatCacheParser (Zimmerman) — parser ShimCache de referência.
- Artefato ShimCache do Velociraptor — lógica de coleta em sistemas vivos.
- ShimCache & AmCache forensic analysis (Mehrnoush) — walkthrough estendido baseado em casos.