Come aprire un file .evtx (5 metodi, nessuna installazione richiesta)
Cinque modi per aprire un file .evtx di Windows — nel browser, con il Visualizzatore eventi, wevtutil, EvtxECmd o python-evtx. Scegli in base al tuo OS e all'attrito che puoi tollerare.
Un file .evtx è il formato binario del Windows Event Log (cosa contiene →). Non puoi leggerlo con un editor di testo — è BinXML dentro contenitori binari a chunk. Qui sotto ci sono i cinque metodi che coprono ogni caso realistico, in ordine da «trascina il file e hai finito» fino a «collegalo a una pipeline Python».
Metodo 1 — aprirlo nel browser (nessuna installazione)
Il percorso più rapido su qualsiasi sistema operativo: trascina il file .evtx sul parser nella home page di questo sito. Il file viene letto nella memoria del tuo browser e analizzato localmente da un Web Worker che esegue la crate Rust omerbenamram/evtx compilata in WebAssembly. Niente lascia la tua macchina — puoi confermarlo disconnettendoti dalla rete prima di rilasciare il file.
Ottieni la stessa vista a livello di record che produce un tool desktop: una timeline filtrabile, l'intero <EventData> appiattito in tabella, l'XML completo a un clic e l'export CSV/JSON del set filtrato. Ideale per il triage ad-hoc quando non vuoi installare nulla, non vuoi caricare nulla o sei su una macchina che non è la tua.
Vincoli. I limiti di memoria del browser fanno sì che file più grandi di ~500 MB diventino lenti. Per log archiviati di più gigabyte, scendi a uno strumento nativo.
Metodo 2 — Visualizzatore eventi (solo Windows, integrato)
Ogni installazione Windows include il Visualizzatore eventi. Avvialo con eventvwr.msc, poi Azione → Apri registro salvato… e seleziona il file .evtx. Il Visualizzatore eventi proporrà di importare il file nella vista corrente; accetta e potrai sfogliarlo come qualsiasi canale live.
Azione → Apri registro salvato… → Sfoglia → seleziona .evtx → OK
Buono per: sfogliare un singolo file, vedere il messaggio formattato in modo amichevole di un record, copiare-incollare una vista XML. Debole per: filtrare migliaia di record (la UI diventa lenta), export massivo o eseguire query da scriptare.
Metodo 3 — wevtutil / Get-WinEvent (riga di comando Windows)
wevtutil è lo strumento integrato di Windows per la gestione dei log; Get-WinEvent è la sua controparte PowerShell. Entrambi funzionano su file .evtx salvati, non solo sui canali live.
Esporta ogni record da un .evtx salvato in testo:
wevtutil qe "C:\triage\Security.evtx" /lf:true /f:text > security.txt
Filtra con XPath (qui, ogni 4624 nelle ultime 24 ore):
wevtutil qe "C:\triage\Security.evtx" /lf:true /q:"*[System[EventID=4624 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" /f:text
PowerShell con la stessa intenzione, ma restituendo oggetti tipizzati:
Get-WinEvent -Path C:\triage\Security.evtx |
Where-Object { $_.Id -eq 4624 } |
Select-Object TimeCreated, Id, @{n='User';e={$_.Properties[5].Value}}
Buono per: estrazioni scriptate, job pianificati, filtraggio chirurgico. Il trade-off è la verbosità — XPath contro XML è preciso ma non amichevole.
Metodo 4 — EvtxECmd (CLI multipiattaforma, lo standard DFIR)
EvtxECmd di Eric Zimmerman è il parser su cui ripiega la maggior parte dei praticanti IR. Gira nativamente su Windows e su macOS / Linux sotto .NET, analizza più velocemente di wevtutil e appiattisce ogni campo di <EventData> in una colonna CSV. Una riga per record.
EvtxECmd.exe -f Security.evtx --csv out --csvf parsed.csv
Per un'intera cartella winevt\Logs\ in una sola passata, con map che decodificano i campi degli eventi noti in colonne amichevoli:
EvtxECmd.exe -d "C:\triage\winevt\Logs" --csv out --csvf all.csv --maps "C:\Tools\EvtxECmd\Maps"
Buono per: parsing massivo di collezioni multi-file, import verso un SIEM o un notebook, workflow analista cross-platform. EvtxECmd è la risposta giusta per quasi ogni compito di tipo «analizza questo offline».
Metodo 5 — python-evtx (scriptarlo in una pipeline)
Quando il file deve alimentare una pipeline Python, python-evtx è il parser pure-Python.
pip install python-evtx
python -m Evtx.evtx_dump path/to/file.evtx > out.xml
In un notebook o script:
from Evtx.Evtx import Evtx
with Evtx("Security.evtx") as log:
for record in log.records():
xml = record.xml()
...
Più lento della crate Rust (Python interpretato su chunk binari) ma la scelta giusta quando sei già dentro una toolchain Python — notebook forensi Jupyter, job di threat hunting, arricchimenti custom.
Quale metodo usare e quando
- Vuoi solo dare un'occhiata al file: trascinalo sul parser della home page. Percorso più veloce, zero installazione.
- Sei su un endpoint Windows con admin e il file è piccolo: Visualizzatore eventi.
- Devi scriptare un'estrazione una tantum:
wevtutiloGet-WinEvent. - Stai facendo vero DFIR su collezioni multi-canale: EvtxECmd.
- Stai costruendo una pipeline in Python:
python-evtx.
Errori comuni e come leggerli
- «Il file non sembra essere valido» nel Visualizzatore eventi di solito significa che il chunk finale è sporco (il file è stato copiato mentre il servizio EventLog ci stava ancora scrivendo). La maggior parte dei parser lo gestisce — prova il parser nel browser o
EvtxECmd, che entrambi segnalano i dirty chunk come avviso e continuano. - «Accesso negato» da
wevtutilsu un file inwinevt\Logs\è il servizio EventLog che mantiene un lock esclusivo. Vedi raccogliere .evtx da un sistema live per i quattro modi standard per aggirarlo. - Output vuoto da
Get-WinEventsu un log salvato: passa il file con-Path, non con-LogName.-LogNamelegge solo i canali live. Get-WinEventdi PowerShell dice «No events were found that match the specified selection criteria» — le chiavi del tuo-FilterHashtablesono case-sensitive su alcune proprietà. Prova prima senza filtro per confermare che il file viene analizzato.
Per il background su cosa c'è davvero dentro un .evtx e perché il formato è fatto così, vedi Cos'è un file .evtx?.