Linchakin

Etl-Parser - Event Trace Log File Parser In Pure Python

 November 07, 2021     No comments   

Event Trace Log file reader in pure Python

etl-parser is a pure Python 3 parser library for ETL Windows log files. ETL is the default format for ETW as well as the default format for the Kernel logger.

etl-parser has no system dependencies, and will work well on both Windows and Linux.

Since this format is not documented, we merged information from the blog of Geoff Chappel and reverse engineering activities conducted by Airbus CERT team.

What is ETL and why is it a pain to work with? Consider ETL as a container, like AVI is for video files. Reading ETL is similarly frustrating as reading an AVI file without the right codec.

etl-parser tries to solve this problem by including parsers for the following well known log formats:

  • ETW manifest base provider
  • TraceLogging
  • MOF for kernel log
How to use etl-parser?

etl-parser offers two scripts. The first script, etl2xml transforms all known ETL events into XML:

etl2xml -i example.etl -o example.xml

The second script, etl2pcap transforms network captures created through netsh into the pcap file format:

netsh start trace capture=yes
netsh stop trace
etl2pcap -i NetTrace.etl -o NetTrace.pcap


You can also use etl-parser as a library:

from etl.etl import IEtlFileObserver, build_from_stream
from etl.system import SystemTraceRecord
from etl.perf import PerfInfo
from etl.event import Event
from etl.trace import Trace
from etl.wintrace import WinTrace
class EtlFileLogger(IEtlFileObserver):
def on_system_trace(self, event: SystemTraceRecord):
"""Mof kernel message with Process Id and Thread Id"""
mof = event.get_mof() # Invoke MOF parser


def on_perfinfo_trace(self, event: PerfInfo):
"""Mof kernel message with timestamp"""
mof = event.get_mof() # Invoke MOF parser


def on_trace_record(self, event: Trace):
"""unknown"""


def on_event_record(self, event: Event):
"""ETW event this is what you search"""
# Choose the "parse_" function which corresponds to your event
message = event.parse_tracelogging() # Invoke TraceLogging parser
me ssage = event.parse_etw() # Invoke Manifest based parser


def on_win_trace(self, event: WinTrace):
"""unknown"""
etw = event.parse_etw()


with open("example.etl", "rb") as etl_file:
etl_reader = build_from_stream(etl_file.read())
etl_reader.parse(EtlFileLogger())


Installation

etl-parser is available from pip:

pip install etl-parser

Alternatively, you can install etl-parser using setup.py:

git clone https://github.com/airbus-cert/etl-parser.git
cd etl-parser
pip install -e .

Missing a parser?

If you encounter a parsing error, please open an issue on the Airbus CERT GitHub repository.


Why an ETL Parser?

The EVTX log format is fairly well documented, with lots of libraries and tools available today. This is not true for ETL: at time of development, there is no significant open-source project that we know of and the ETL format is not well documented.

ETL is massively used by Windows system programmers to log useful artifacts:

  • C:\Windows\System32\WDI\LogFiles\BootPerfDiagLogger.etl
  • C:\Windows\System32\WDI\LogFiles\ShutdownPerfDiagLogger.etl
  • NetTrace.etl via netsh
  • C:\Windows\System32\WDI\<GUID>\<GUID>\snapshot.etl
  • etc.

A lot of new APIs such as Tracelogging or WPP are based on ETW. These APIs are used extensively by Microsoft developers for Windows. Tracelogging is addressed by etl-parser, WPP will be addressed in a future release.

Microsoft offers a lot of consumers that create ETL traces, such as xperf.exe, logman.exe, netsh.exe, etc.

We believe it is a gold mine for DFIR analysts.


Credits

License

etl-parser is released under the Apache 2.0 license.

Adblock test (Why?)


You may be interested in:
>> Is a Chromebook worth replacing a Windows laptop?
>> Find out in detail the outstanding features of Google Pixel 4a
>> Top 7 best earbuds you should not miss

Related Posts:
>> Recognizing 12 Basic Body Shapes To Choose Better Clothes
>>Ranking the 10 most used smart technology devices
>> Top 5+ Best E-readers: Compact & Convenient Pen
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • You Share Your Birthday Online with Well-Wishers and Phishers When you share your birthday publicly, it brings some risks for you, and you might become a victim of a phishing attack. I am sure you are so happy w… Read More
  • Can Machines Think? Exploring beyond the Imitation Game The study of the human mind, and specifically its mental processes is a subject that has fascinated humanity since the time of the first Greek thinke… Read More
  • 'Decentralization Fosters Group Cohesion': Interview with Devendra Singh Khati Devendra Singh Khati currently is working at a cryptocurrency exchange called BuyUcoin. He says decentralization means having control over our data, … Read More
  • Which iPad should you buy? iPad vs. iPad mini vs. iPad Air vs. iPad ProNot sure which iPad to buy? This guide will help.Buying an iPad is easy enough these days, as Apple's tablets haven't been as hard to find as a good PS5 restock. but buying the right iPad for your ne… Read More
  • 11 Underrated Nintendo Switch Games Everyone Should Try The Nintendo eShop doesn’t make it easy to find something new to play on the Nintendo Switch. Dodgeball Academia is one of the most underrated games … Read More
Newer Post Older Post Home

0 Comments:

Post a Comment


Copyright © 2025 Linchakin | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates