Forensicsforensicswindowsevent-logsevtxdatabase

grokevt

GrokEVT is a collection of scripts for reading Microsoft Windows NT/2000/XP/2003 event log files. It extracts registry entries, message templates, and log files from mounted Windows partitions to convert logs to human-readable format.

Description

Grokevt provides a suite of tools designed for forensics investigations involving Microsoft Windows event logs. The scripts work together on mounted Windows partitions to gather necessary components like registry entries, message templates, and log files, enabling conversion of binary event logs into human-readable output. This is particularly useful for analyzing system activity in forensic contexts.

The toolset includes utilities for building databases from Windows systems, parsing logs into CSV, extracting messages from DLLs, finding log fragments in memory dumps or disk images, and managing databases. It supports workflows where a database is first constructed from a target system, then used to decode multiple event logs.

Primarily targeted at incident response and digital forensics, grokevt aids in reconstructing timelines and events from Windows environments without needing the original system running.

How It Works

Grokevt operates by first building a database tree using grokevt-builddb from a mounted Windows system's registry, message files, and templates. This database captures message resources via grokevt-ripdll, which extracts from PE-formatted DLLs into message databases. Logs are then parsed with grokevt-parselog using this database to decode binary .evt files into CSV, replacing message IDs with human-readable text from RVA lookups. Additional tools like grokevt-findlogs scan raw binaries for log fragments, and grokevt-addlog incorporates new logs into existing databases.

Installation

bash
sudo apt install grokevt

Flags

-vVerbose output (seen in grokevt-builddb, grokevt-findlogs, grokevt-parselog)
-c CSIDSpecify CSID in grokevt-builddb
-hShow help (multiple tools)
-HOption in grokevt-findlogs and grokevt-parselog
-o <OFFSET>Offset for grokevt-findlogs
-l <DATABASE_DIR>List mode for grokevt-parselog
-m <DATABASE_DIR> <LOG_TYPE>Mode for grokevt-parselog

Examples

Show usage for adding a raw event log to an existing GrokEVT database
grokevt-addlog -h
Display help for building a database tree from a Windows system
grokevt-builddb -h
Dump contents of one or more message databases to stdout
grokevt-dumpmsgs message-db1 [message-db2 ...]
Show help for finding log file fragments in raw binary files
grokevt-findlogs --help
Scan a raw file like memory dump for Windows event log fragments
grokevt-findlogs [-v] [-h] [-H] [-o <OFFSET>] <RAW_FILE>
Show usage for parsing a Windows event log to CSV output
grokevt-parselog -h
Parse event log using database directory and log type to generate human-readable CSV
grokevt-parselog [-v] [-H] [-h] <DATABASE_DIR> <LOG_TYPE>
Extract message resources from a PE-formatted DLL to a database
grokevt-ripdll <INPUT_DLL> <OUTPUT_DB>
Updated 2026-04-16kali.org ↗