Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
etl-parser — 事件跟踪日志文件解析器,纯Python实现。 | Kitploit
工具/GitHubGitHub/airbus-cert/etl-parser
逆向工程取证分析数字取证日志分析
GitHubairbus-cert/etl-parser

etl-parser

事件跟踪日志文件解析器,纯Python实现。

查看仓库
15624484个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

etl-parser

纯Python的事件跟踪日志文件读取器

etl-parser 是一个纯 Python 3 解析库,用于解析 ETL Windows 日志文件。ETL 是 ETW 的默认格式,也是内核日志记录器的默认格式。

etl-parser 没有系统依赖,在 Windows 和 Linux 上都能良好运行。

由于该格式没有文档记录,我们结合了 Geoff Chappel 博客中的信息以及 Airbus CERT 团队进行的逆向工程成果。

什么是 ETL,为什么处理它很麻烦?可以将 ETL 视为容器,就像 AVI 对于视频文件一样。读取 ETL 的体验与在没有正确编解码器的情况下读取 AVI 文件类似令人沮丧。

etl-parser 通过包含以下知名日志格式的解析器来尝试解决这个问题:

  • ETW manifest base provider
  • TraceLogging
  • MOF for kernel log

如何使用 etl-parser?

etl-parser 提供了两个脚本。 第一个脚本 etl2xml 将所有已知的 ETL 事件转换为 XML:

etl2xml -i example.etl -o example.xml

第二个脚本 etl2pcap 将通过 netsh 创建的网络捕获转换为 pcap 文件格式:

netsh trace start capture=yes
netsh trace stop 

etl2pcap -i NetTrace.etl -o NetTrace.pcap

你也可以将 etl-parser 作为库使用:

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
        message = 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())

安装

etl-parser 可通过 pip 安装:

pip install etl-parser

或者,你也可以使用 setup.py 安装 etl-parser:

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

缺少解析器?

如果遇到解析错误,请在 Airbus CERT GitHub 仓库中提交一个 issue。

为什么需要 ETL 解析器?

EVTX 日志格式有相当完善的文档,目前有许多库和工具可用。但 ETL 并非如此:在开发时,我们不知道有任何重要的开源项目,而且 ETL 格式没有良好的文档。

ETL 被 Windows 系统程序员大量用于记录有用的工件:

  • 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
  • 等等。

许多新的 API,如 Tracelogging 或 WPP,都基于 ETW。这些 API 被 Microsoft 开发人员广泛用于 Windows。Tracelogging 已由 etl-parser 处理,WPP 将在未来的版本中处理。

Microsoft 提供了许多可以创建 ETL 追踪的消费者,例如 xperf.exe、logman.exe、netsh.exe 等。

我们相信这是 DFIR 分析师的金矿。

致谢

  • 本项目版权归 Airbus 计算机应急响应团队 (CERT) 所有,并根据 Apache 2.0 许可证分发
  • 感谢 Geoff Chappel 在其博客上提供的所有信息

许可证

etl-parser 在 Apache 2.0 许可证下发布。

下载工具