A Go-based tool for analyzing Windows Event Tracing (ETW) autologger configurations and their associated providers. This tool reads autologger settings from the Windows registry and displays comprehensive information about ETW providers, their configurations, and event filtering settings.
- List Autologgers: Discover all available ETW autologgers on the system
- Analyze Configuration: Display detailed autologger configuration including buffer settings, file modes, and status
- Provider Analysis: Show all ETW providers associated with an autologger
- Event Filtering: Extract and display filtered event IDs for each provider
- Provider Name Resolution: Resolve provider GUIDs to human-readable names when available
- Go 1.19 or later
- Windows operating system (required for registry access)
- Administrator privileges (recommended for full registry access)
go run main.go -listThis command displays all ETW autologgers configured on the system:
Available Autologgers (15 found):
==================================================
- AppModel
- Circular Kernel Context Logger
- DefenderApiLogger
- DefenderAuditLogger
- EventLog-Application
- ...
go run main.go -autologger <autologger-name>Example:
go run main.go -autologger DefenderApiLoggerThis displays:
-
Autologger Configuration Table:
- Registry values and their types
- Buffer settings (size, minimum/maximum buffers)
- File mode flags with descriptions
- Start/stop status
-
ETW Providers Summary Table:
- Provider GUIDs and resolved names
- Enable/disable status
- Event ID filters (if configured)
-
Detailed Event IDs:
- Complete list of filtered event IDs per provider
| Option | Description | Required |
|---|---|---|
-list |
List all available autologgers | No |
-autologger <name> |
Analyze specific autologger by name | Yes (unless using -list) |
The tool displays autologger settings in a structured table format:
Autologger Configuration: DefenderApiLogger
============================================================
| Property | Type | Value |
|----------------------|-----------------|----------------------|
| Age | REG_DWORD | 0 |
| BufferSize | REG_DWORD | 64 |
| ClockType | REG_DWORD | 1 |
| FlushTimer | REG_DWORD | 0 |
| GUID | REG_SZ | {guid} |
| LogFileMode | REG_DWORD | 0x00000004 |
| MaximumBuffers | REG_DWORD | 64 |
| MinimumBuffers | REG_DWORD | 16 |
| Start | REG_DWORD | 1 |
| Status | REG_DWORD | 0 |
Providers are displayed with their associated metadata:
ETW Providers under DefenderApiLogger (5 found):
| GUID | Provider Name | Enabled | Event IDs |
|------------------------------------------|-------------------------------------|----------|----------------------|
| {11cd958a-c507-4ef3-b3f2-5fd9dfbd2c78} | Microsoft-Windows-WDAG-PolicyEval | Yes | [1, 2, 3, 4] |
| {2a576b87-09a7-520e-c21a-4942f0271d67} | Microsoft-Windows-Security-Mitig... | No | No Filters |
The tool reads data from these Windows registry locations:
- Autologger Base Path:
SYSTEM\CurrentControlSet\Control\WMI\Autologger - Provider Publishers:
SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers - WMI Providers:
SYSTEM\CurrentControlSet\Control\WMI
The tool supports multiple event ID storage formats:
- Binary Data: 16-bit and 32-bit little-endian integers
- DWORD Values: Single event IDs stored as registry DWORD
- Multiple Value Names: Checks common registry value names (
EventId,Events,Id)
The tool decodes LogFileMode bitmasks into human-readable descriptions:
FILE_MODE_WRITE(0x00000001)FILE_MODE_CIRCULAR(0x00000004)FILE_MODE_REAL_TIME(0x00000020)FILE_MODE_BUFFERING(0x00000200)- And many more...
- Defender Analysis: Examine Windows Defender's ETW logging configuration
- Event Monitoring: Understand which events are being captured
- Provider Discovery: Find active ETW providers and their settings
- Performance Tuning: Review buffer settings and logging modes
- Troubleshooting: Verify autologger configurations
- Audit Compliance: Document ETW logging settings
- ETW Development: Understand existing provider configurations
- Forensics: Analyze system logging capabilities
- Reverse Engineering: Map ETW provider relationships
The tool gracefully handles common scenarios:
- Missing Autologgers: Clear error messages for non-existent autologgers
- Registry Access: Handles permission issues and missing keys
- Provider Resolution: Falls back to GUID display when names cannot be resolved
- Data Parsing: Robust parsing of various registry data formats
golang.org/x/sys/windows/registry: Windows registry access- Go standard library packages for binary parsing and string manipulation
- Windows Only: Requires Windows OS for registry access
- Registry Permissions: Some registry keys may require administrator privileges
- Provider Names: Not all provider GUIDs can be resolved to friendly names
- Dynamic Changes: Shows static configuration, not runtime state