Introduction
EVTX is the format of the Windows event
logs, used since Windows Vista. The System, Application and Security logs, and the logs
of many other services, are EVTX files kept in
C:\Windows\System32\winevt\Logs. Each event records its source, an event ID,
a level, a time and details that depend on the event.
Events are shown as XML, but stored in a compact binary form of XML that reuses templates, so that thousands of similar events take little space. The format replaced the older EVT format of Windows XP.
Structure
The file starts with a 4096-byte file header beginning ElfFile and a zero
byte. It records the first and last chunk numbers, the next record number, the format
version, the number of chunks, flags such as whether the log was closed cleanly, and a
checksum.
Chunks of 64 KB follow, each starting ElfChnk and a zero byte. A chunk
header gives the range of records in the chunk and checksums, and holds tables of the
strings and templates its records share. Event records fill the rest of the chunk. Each
record starts with the signature 2A 2A 00 00, then its size, record number
and time, then the event as binary XML, and ends with its size again.
0File headerElfFile, chunk count, next record number, checksum4,096 bytes4096Chunk one per 64 KB of the logrepeated+0Chunk headerElfChnk, record range, checksums, string and template tables512 bytes+512Event records2A 2A 00 00, size, number, time, binary XMLrepeated
Links
Software
Developers
- python-evtx, Python library that parses EVTX files
- evtx, Rust library and command line tool that parses EVTX files
- libevtx, C library with Python bindings, and its notes on the format