TL;DR. No. Una voce dello ShimCache dimostra che Windows ha esaminato il file, di solito ma non sempre per l'esecuzione. Windows 10/11 ha rimosso completamente il flag di esecuzione nella cache. Conferma l'esecuzione con Prefetch, AmCache o eventi di creazione processo (Security 4688 / Sysmon 1).
"Lo ShimCache mostra che è stato eseguito" è la singola frase più costosa nell'incident response Windows. Finisce nei report. Viene contestata dalla controparte legale. Mette l'analista al banco a spiegare perché una mtime non è un avvio di processo, mentre tutti nella stanza imparano sull'Application Compatibility Cache più di quanto desiderassero. Non essere quell'analista.
Cosa registra davvero lo ShimCache
La cache, formalmente l'Application Compatibility Cache memorizzata in HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache, cattura gli eseguibili che Windows ha esaminato per decidere se applicare uno shim di compatibilità. Esaminare non è eseguire. Windows esamina un binario quando:
- Un utente ci fa doppio clic.
- Explorer enumera una cartella e ispeziona un header PE per dati di icona.
- Un antivirus, un indicizzatore o un EDR cammina il file system.
- Un "Proprietà" dal tasto destro estrae la version resource.
- Una system call risolve un percorso che termina in
.exe.
La maggior parte di questi avviene insieme all'esecuzione. Alcuni no. Un binario che un attaccante ha rilasciato, rinominato e cancellato senza mai lanciarlo può comunque finire nella cache perché Defender lo ha scansionato al volo.
Il flag che Windows 10 si è portato via
Le build più vecchie (da XP a Windows 8.1) incorporavano un flag Executed in ogni voce. Molti analisti hanno imparato a fare grep di "yes" e a chiudere la pratica. Windows 10 ha rimosso quel flag. Windows 11 non lo ha rimesso. La cache moderna porta il percorso, una mtime e metadati strutturali. Non c'è alcun marcatore nella cache che dica "questo è stato eseguito".
Se ti sei formato su hive legacy e ora leggi un SYSTEM di Windows 10/11, ricalibra. La colonna "Executed" che ricordi non c'è più. Ogni parser che valga la pena (AppCompatCacheParser di Eric Zimmerman, Mandiant Shim Cache Parser, questo strumento) riflette quell'assenza in modo onesto. Se vedi uno strumento che riporta un flag di esecuzione su un hive moderno, quello strumento se lo sta inventando.
Per il layout a livello di campi, vedi la guida al formato binario di Windows 10/11.
Cosa conferma l'esecuzione
Tratta il hit dello ShimCache come un'ipotesi. Poi vai a cercare prove che registrino davvero la creazione di processo.
- Prefetch. I file
C:\Windows\Prefetch\*.pfvengono scritti entro ~10 secondi da ogni avvio di processo sulle SKU workstation. Conteggio esecuzioni, ultime otto run time, moduli caricati. Se il file esiste, il binario è stato eseguito. Il parser Prefetch spiega il formato e i casi di disattivazione. - AmCache.
Amcache.hveporta hash SHA-1 e timestamp espliciti di prima esecuzione, scritti in modo continuo. Il parser AmCache ha la guida ai campi. - EVTX / Sysmon. Security 4688 (con il command-line auditing abilitato) e Sysmon Event ID 1 sono i record di massima fedeltà che otterrai. Il parser EVTX copre il workflow di triage.
- BAM / DAM. Tempi di ultima esecuzione per utente sotto
HKLM\SYSTEM\CurrentControlSet\Services\bam\State. Economici da leggere, criminalmente sottoutilizzati. - UserAssist. Solo lanci interattivi via Explorer, nomi codificati in ROT13. Utile per "l'utente ha fatto doppio clic?", non per "il binario è mai stato eseguito?".
Gli schemi di riferimento incrociato sono nella referenza degli artefatti di esecuzione programmi.
Come formularlo in un report
Male: "ShimCache mostra che mimikatz.exe è stato eseguito alle 14:33:21 UTC del 2026-04-11."
Meglio: "ShimCache registra il file C:\Users\Public\mimikatz.exe con mtime $STANDARD_INFORMATION 2026-04-11 14:33:21 UTC. La voce Prefetch MIMIKATZ.EXE-A1B2C3D4.pf mostra un'esecuzione alle 14:34:02 UTC. L'SHA-1 di AmCache corrisponde alla build nota di mimikatz 2.2.0."
La seconda frase regge a un controesame. La prima no.
Parsare un hive senza lasciare il browser
Trascina il tuo hive SYSTEM nello Shimcache Parser. Tutto gira lato client. Niente upload, il che conta quando l'hive proviene da un ambiente regolamentato o da un ingaggio con un cliente.
Letture aggiuntive
- Caching Out the Val di Mandiant. il reverse engineering pubblico originale dell'artefatto.
- AppCompatCacheParser di Eric Zimmerman. parser C# di riferimento il cui schema di output è lo standard de facto del settore.
- Il Windows 10/11 AppCompatCache deep dive su Ø Security. copre il flag rimosso in dettaglio.