Cos'è un file .evtx? Il formato del Windows Event Log spiegato
Un file .evtx è un Windows Event Log binario. Dove si trovano, cosa contengono, in cosa differiscono dai .evt e come aprirli senza installare nulla.
Un file .evtx è il formato binario del Windows Event Log che Microsoft ha introdotto con Windows Vista nel 2007 per sostituire il vecchio formato .evt. Ogni evento scritto sul Windows Event Log dal sistema operativo, da un driver, da un servizio o da un'applicazione finisce in un file .evtx su disco. Sono la spina dorsale di qualsiasi indagine su Windows.
Risposta rapida
I file .evtx vengono scritti dal servizio EventLog di Windows in C:\Windows\System32\winevt\Logs\. C'è un file per canale (Security.evtx, System.evtx, Application.evtx, più i canali per singola applicazione). Internamente ogni file è un contenitore binario a chunk con record codificati in BinXML — non testo semplice. Si leggono con il Visualizzatore eventi, wevtutil, Get-WinEvent o un parser di terze parti.
Dove vivono i file .evtx
La posizione standard su tutte le versioni Windows supportate (da Vista a Windows 11 / Server 2025):
C:\Windows\System32\winevt\Logs\
Ogni file .evtx mappa un canale di eventi. I default che troverai sempre:
Security.evtx— accessi, uso dei privilegi, modifiche alla audit policy. Il valore forense più alto nella maggior parte dei casi.System.evtx— driver, servizi, errori a livello kernel.Application.evtx— errori applicativi ed eventi informativi.Setup.evtx— record di installazione.ForwardedEvents.evtx— eventi raccolti da altri host via Windows Event Forwarding (WEF).
I canali per singola applicazione sono salvati nella stessa cartella con %4 al posto del separatore di percorso:
Microsoft-Windows-Sysmon%4Operational.evtx— eventi Sysmon di processi, rete e file (quando installato).Microsoft-Windows-PowerShell%4Operational.evtx— scriptblock e module logging di PowerShell.Microsoft-Windows-TaskScheduler%4Operational.evtx— creazione ed esecuzione di attività pianificate.Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx— ciclo di vita delle sessioni RDP.
I canali ruotati producono file di archivio con timestamp nella stessa cartella (Security.evtx, Archive-Security-2026-05-23-…evtx). Il file attivo resta tenuto aperto dal servizio EventLog finché Windows è in esecuzione.
Cosa c'è dentro un file .evtx
Il file è un contenitore binario, non testo semplice. Un header di 4 KB (magic ElfFile\0) è seguito da una sequenza di chunk da 64 KB. Ogni chunk ha il suo header (ElfChnk), una tabella dei template XML che compaiono al suo interno e un flusso di record che fanno riferimento a quei template tramite ID. Un parser ricostruisce ogni evento sostituendo i valori a livello di record nei placeholder del template — è ciò che rende .evtx più compatto di XML letterale su disco.
Una volta decodificato, ogni record è un documento XML diviso in due metà:
<System>— nome del provider, canale, Event ID, livello (1 Critico → 5 Verbose), nome del computer, contesto di sicurezza e timestamp UTC di scrittura.<EventData>— parametri specifici del provider: l'account target su un logon, il path dell'immagine su un process create, la chiave di registro su una scrittura sottoposta ad audit, e così via.
Il solo Event ID raramente basta per il triage. Il segnale forense vive in <EventData>. Per la meccanica del formato in profondità — chunk, BinXML, template, recupero dei dirty chunk — vedi Dentro il formato di file EVTX.
.evtx vs .evt: perché il formato è cambiato
Il vecchio formato .evt usato da Windows fino a XP e Server 2003 aveva tre limiti rigidi che il nuovo formato è stato progettato per risolvere:
- Stringhe a dimensione fissa. I record
.evtportavano riferimenti a message-table invece del messaggio completo; le join al render-time si rompevano quando le DLL sorgenti erano mancanti o aggiornate. - Nessuna query strutturata. Filtrare richiedeva di leggere e analizzare ogni record linearmente.
- Un solo canale per file. I log applicativi custom dovevano usare formati non standard propri.
.evtx (Vista, 2007) ha introdotto record BinXML, file per canale con annidamento arbitrario, filtri in stile XPath via wevtutil qe e Get-WinEvent -FilterHashtable, e una struttura a chunk che sopravvive a scritture parziali. Il trade-off è stata una rottura completa di compatibilità — .evt ed .evtx non sono interscambiabili, e l'unico strumento integrato che legge .evt su un Windows moderno è wevtutil con il flag legacy (e solo per l'export verso .evtx).
Come aprire un file .evtx
Cinque percorsi comuni, in ordine approssimativo di attrito:
- Nel browser, senza installazione — trascina il file nel parser sulla home page di questo sito. Esegue la crate Rust
omerbenamram/evtxcompilata in WebAssembly dentro un Web Worker. Niente lascia la tua macchina. Adatto per il triage ad-hoc quando non vuoi accendere una VM forense. - Visualizzatore eventi (
eventvwr.msc) — la GUI integrata di Windows. Apri il Visualizzatore eventi → Azione → Apri registro salvato… → seleziona il file.evtx. Buono per la navigazione, debole per filtrare su scala. wevtutil/Get-WinEvent— riga di comando e PowerShell, entrambi inclusi in Windows.wevtutil qe path\to\file.evtx /f:text /lf:trueesporta ogni record;Get-WinEvent -Pathrestituisce oggetti pipeable versoWhere-Object.- EvtxECmd — il parser di Eric Zimmerman. Multipiattaforma via .NET, veloce, produce CSV con una riga per record e l'intero
<EventData>appiattito. python-evtx— pure-Python, facile da scriptare. Più lento della crate Rust ma utile quando hai già una toolchain Python.
Per una guida completa di ciascun metodo con i comandi che useresti davvero, vedi Come aprire un file .evtx.
Quando incontri .evtx sul campo
- Incident response. Estratto da un host compromesso come parte del triage. I canali di interesse dipendono dal lead —
Securityper accessi e abuso di privilegi,Sysmonper gli alberi di processo,PowerShellper il contenuto degli scriptblock. - Audit di compliance. Gli auditor richiedono
Security.evtxsu una finestra definita per verificare la storia di logon e modifiche di policy. - Debug applicativo.
Application.evtxinsieme ai canali per vendor spesso contengono contesto di crash ed errori che i log propri dell'applicazione non hanno. - Threat hunting. Regole long-tail su
.evtxarchiviati (o un SIEM che inoltra il canale live) catturano pattern lenti come RDP fuori orario o drift delLogonTypesu un service account.
Il pivot singolo più utile è l'Event ID. Per la shortlist che vale la pena conoscere in un SOC reale — 4624 logon riuscito, 4625 logon fallito, 1102 log cancellato, 4104 scriptblock PowerShell, 7045 servizio installato, Sysmon 1 process create — vedi l'orientamento di partenza.