
Um analisador rápido (e seguro) para o formato Windows XML Event Log (EVTX)
Um analisador multiplataforma para o formato Windows XML EventLog

Prefere uma opção sem instalação? Um explorador EVTX completo é executado diretamente no seu navegador, alimentado pelo mesmo núcleo Rust compilado para WebAssembly.
👉 Experimente agora: https://omerbenamram.github.io/evtx/
Tudo acontece localmente – os arquivos nunca saem da sua máquina. Destaques:
.evtx (ou clique para procurar) – lida com logs muito grandes!EventData – todos apoiados pelo DuckDB-WASMO visualizador é servido estaticamente pelo GitHub Pages; após o primeiro carregamento, funciona completamente offline.
cargo install evtxevtx_dump (Utilitário Binário):O principal utilitário binário fornecido com este crate é evtx_dump, e oferece uma forma rápida de converter arquivos .evtx para
diferentes formatos de saída.
Alguns exemplos
evtx_dump <evtx_file> irá despejar o conteúdo dos registros evtx como xml.evtx_dump -o json <evtx_file> irá despejar o conteúdo dos registros evtx como JSON.evtx_dump -f <output_file> -o json <input_file> irá despejar o conteúdo dos registros evtx como JSON para um arquivo específico.cat <evtx_file> | evtx_dump -o jsonl - irá ler o arquivo EVTX da entrada padrão (útil para pipes/descompressão).evtx_dump pode ser combinado com fd para processamento em lote conveniente de arquivos:
fd -e evtx -x evtx_dump -o jsonl irá escanear uma pasta e despejar todos os arquivos evtx para um único arquivo jsonlines.fd -e evtx -x evtx_dump '{}' -f '{.}.xml' criará um arquivo xml ao lado de cada arquivo evtx, para todos os arquivos na pasta recursivamente!xargs (ou gxargs no mac) e jq podem ser usados: fd -a -e evtx | xargs -I input sh -c "evtx_dump -o jsonl input | jq --arg path "input" '. + {path: \$path}'"Nota: por padrão, evtx_dump tentará utilizar multithreading, o que significa que os registros podem ser retornados fora de ordem.
Para forçar o uso de única thread (o que também garantirá a ordem), -t 1 pode ser passado.
Registros EVTX podem referenciar definições de modelo armazenadas em binários de provedores (EXE/DLL/SYS). evtx_dump pode extrair esses modelos para um cache offline e usá-los no momento da renderização.
Nota: esta funcionalidade requer a compilação de evtx_dump com a funcionalidade Cargo wevt_templates (as versões de lançamento podem já incluí-la).
.wevtcache portátil):
evtx_dump extract-wevt-templates --input <provider.dll> --output /tmp/wevt_cache.wevtcache --overwriteevtx_dump --wevt-cache /tmp/wevt_cache.wevtcache <log.evtx>Ajudantes de depuração:
TemplateInstance) de um registro (JSONL):
evtx_dump dump-template-instances --input <log.evtx> --record-id <ID> | head -n1evtx_dump apply-wevt-cache --cache /tmp/wevt_cache.wevtcache --template-guid <GUID> --evtx <log.evtx> --record-id <ID>Veja docs/wevt_templates.md para detalhes e contexto (issue #103).
use evtx::EvtxParser;
use std::path::PathBuf;
// Change this to a path of your .evtx sample.
let fp = PathBuf::from(format!("{}/samples/security.evtx", std::env::var("CARGO_MANIFEST_DIR").unwrap()));
let mut parser = EvtxParser::from_path(fp).unwrap();
for record in parser.records() {
match record {
Ok(r) => println!("Record {}\n{}", r.event_record_id, r.data),
Err(e) => eprintln!("{}", e),
}
}
A versão paralela é habilitada ao compilar com a funcionalidade "multithreading" (habilitada por padrão).
Ao usar multithreading, evtx é significativamente mais rápido que qualquer outro analisador disponível.
Para desempenho de núcleo único, é tanto o mais rápido quanto o único analisador multiplataforma que suporta saídas XML e JSON.
O desempenho foi testado na minha máquina usando hyperfine (ferramenta de medição estatística).
Estou executando testes em um AMD Ryzen 3900X de 12 núcleos.
Execução do benchmark: Junho de 2026 (evtx 0.12.2).
Sistema: Arch Linux (Linux 7.0.11-arch1-1 x86_64).
Commit do benchmark: 99a6def.