ShimCache vs AmCache: qual artefato do Windows responde a qual pergunta

3 min de leitura

TL;DR. O ShimCache prova que um arquivo existiu em disco; AmCache prova que foi executado e o identifica por SHA-1. ShimCache só é gravado no desligamento limpo — AmCache escreve continuamente. Puxe os dois; são co-testemunhas, não substitutos.

ShimCache e AmCache são os dois artefatos baseados em registro mais citados nas investigações de execução de programas no Windows. Eles parecem intercambiáveis. Não são. Esta é uma referência rápida para decidir qual usar com base na pergunta que você está tentando responder.

Árvore de decisão ShimCache vs AmCache

Visão geral

ShimCacheAmCache
LocalHKLM\SYSTEM\…\AppCompatCacheC:\Windows\AppCompat\Programs\Amcache.hve
CapacidadeAté 1.024 entradasMilhares de entradas, sem teto fixo
Dados por entradaCaminho, mtime, (legado) flag de execuçãoCaminho, SHA-1, tamanho, editor, data de instalação, muito mais
Escrito quandoApenas no desligamentoContinuamente (e em intervalos agendados)
Sobrevive a crashNão — entradas recentes perdidasSim — já em disco
Ideal paraProvar que um arquivo existiu em discoProvar que um arquivo foi executado + identificá-lo por hash

Quando o ShimCache vence

O ShimCache mantém uma entrada para todo executável que o Windows simplesmente examinou por razões de compatibilidade. Isso o torna sensível: um binário que um atacante soltou e excluiu imediatamente pode ainda deixar um rastro no ShimCache. Se sua pergunta é «este arquivo já existiu neste host?» — o ShimCache é seu aliado.

Também é o único dos dois que captura o mtime $STANDARD_INFORMATION do arquivo. Esse carimbo de tempo não é o momento da execução (um equívoco comum que cobrimos em outro post), mas ancora a identidade do arquivo no tempo.

Quando o AmCache vence

AmCache é o que você quer quando a pergunta é «este arquivo foi realmente executado, e qual arquivo exatamente?». Cada entrada AmCache carrega um hash SHA-1, o tamanho do arquivo, o editor, a data de instalação — o suficiente para identificar um binário sem ambiguidade, mesmo se o arquivo em disco foi desde então substituído ou apagado.

AmCache também persiste. Como o Windows o escreve continuamente em vez de apenas no desligamento, a atividade recente em um sistema que travou ou foi reiniciado bruscamente tem mais chances de estar no AmCache do que no ShimCache.

Como usá-los juntos

Na prática, trate-os como co-testemunhas:

  • Uma entrada em ambos, ShimCache e AmCache, com caminhos coincidentes e um carimbo AmCache recente, é evidência forte de execução.
  • Uma entrada apenas no ShimCache diz que o arquivo esteve ao menos em disco em algum momento. Procure evidências corroborantes (Prefetch, AmCache, logs de eventos) antes de afirmar execução.
  • Uma entrada apenas em AmCache sem Prefetch e sem ShimCache geralmente significa que o host não foi desligado de forma limpa desde a atividade — o ShimCache nunca foi gravado em disco.

Para os detalhes técnicos do layout binário do ShimCache, veja Analisando o ShimCache: o formato binário do Windows 10 e 11. Para analisar uma hive agora sem instalar nada, use o Shimcache Parser — tudo roda no seu navegador.

Leitura adicional

Artigos relacionados