TL;DR. Não. Uma entrada do ShimCache prova que o Windows examinou o arquivo — geralmente, mas nem sempre, para execução. Windows 10/11 removeu por completo o flag de execução no cache. Confirme com Prefetch, AmCache ou eventos de criação de processo (Security 4688 / Sysmon 1).
«O ShimCache mostra que executou» é um dos atalhos mais comuns na resposta a incidentes — e é errado com frequência suficiente para morder os investigadores no tribunal. Aqui vai uma resposta cuidadosa à pergunta «uma entrada no ShimCache prova que um programa foi executado?», e o que fazer no lugar.
O que o ShimCache realmente registra
O ShimCache (tecnicamente o Application Compatibility Cache, ou AppCompatCache) armazena entradas para executáveis que o Windows examinou, geralmente para decidir se aplica um shim de compatibilidade. Examinar não é o mesmo que executar. O Windows pode examinar um arquivo quando:
- o usuário dá duplo clique (frequentemente, mas nem sempre, levando à execução),
- o Explorer enumera um diretório e inspeciona um binário,
- uma ferramenta varre o sistema de arquivos (AV, indexadores, agentes de segurança),
- o arquivo é aberto via clique direito «Propriedades» ou fluxos shell similares.
A maior parte desses motivos coincide com execução, mas o vínculo é estatístico, não lógico. Um binário que um atacante soltou e excluiu sem executá-lo ainda pode aparecer no ShimCache porque algo no sistema o tocou.
A mudança Windows 10 / 11 que importa
Em versões mais antigas do Windows, as entradas do ShimCache carregavam um flag Executed ativado quando o binário rodava. Esse flag era amplamente usado como sinal aproximado de «executou?».
No Windows 10 e 11 esse flag foi removido. O ShimCache moderno não tem marcador interno dizendo que houve execução. Assim, mesmo que você confiasse no flag legado, deve parar assim que entrar em Windows moderno.
Para ver exatamente quais campos uma entrada moderna do ShimCache expõe, a referência do formato binário detalha cada offset.
Como confirmar a execução
Trate um hit no ShimCache como hipótese, depois corrobore com artefatos que efetivamente registram execução:
- Prefetch (
C:\Windows\Prefetch\*.pf) — escrito ao iniciar um processo e persiste através de reinícios. Um arquivo Prefetch correspondente é evidência forte de execução. - AmCache (
Amcache.hve) — hive de registro separada que registra programas executados e instalados, com hashes SHA-1 para identificação inequívoca. (Por que ambos? Veja ShimCache vs AmCache.) - Logs Security e Sysmon — os eventos de criação de processo (4688, Sysmon 1) são a evidência de execução de maior fidelidade disponível.
- UserAssist, BAM/DAM, RecentApps — sinais adicionais de execução baseados em registro.
A referência de artefatos de execução de programas resume o que cada um captura e quão confiável é na prática.
Resumo
Uma entrada do ShimCache diz que o Windows olhou para um arquivo específico em algum momento. É um pivô de alto sinal para provar existência, não execução. Para afirmar que um programa rodou, combine o ShimCache com Prefetch, AmCache ou logs de criação de processo — e escreva a conclusão em linguagem que corresponda às evidências realmente disponíveis.
Para analisar o ShimCache de uma hive SYSTEM agora, solte-a no Shimcache Parser. Tudo roda no seu navegador; o arquivo nunca sai da página.
Leitura adicional
Windows.Registry.AppCompatCachedo Velociraptor — inclui notas sobre o histórico do flag de execução.- AppCompatCache deep dive Windows 10/11 (Ø Security) — cobre o flag removido em detalhes.
- ShimCache & AmCache forensic analysis (Mehrnoush) — walkthrough prático baseado em casos.