Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/omerbenamram/evtx
ForensikDigitale ForensikIncident ResponseLog-Analyse
GitHubomerbenamram/evtx

evtx

Ein schneller (und sicherer) Parser für das Windows XML Event Log (EVTX)-Format

Repository anzeigen
9498115vor 7 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

EVTX

Ein plattformübergreifender Parser für das Windows XML EventLog-Format


Crates.io version Download docs.rs docs safety-dance Build status

Funktionen

  • 🔒 Implementiert mit 100 % sicherem Rust – und läuft auf allen von Rust unterstützten Plattformen (die eine stdlib haben).
  • ⚡ Schnell – siehe Benchmarks unten. Um Größenordnungen schneller als jede andere Implementierung!
  • 🚀 Multithreaded.
  • ✨ Unterstützt XML- und JSON-Ausgaben, beide direkt aus einer gemeinsamen Zwischendarstellung (IR) erstellt (keine xml2json-Konvertierung!).
  • ⛏️ Unterstützt eine grundlegende Wiederherstellung fehlender Datensätze/Chunks!
  • 🐍 Python-Bindings sind ebenfalls verfügbar unter https://github.com/omerbenamram/pyevtx-rs (und auf PyPi https://pypi.org/project/evtx/)

Webbasierter Viewer (EVTX Web)

EVTX Web-Screenshot

Bevorzugen Sie eine installationsfreie Option? Ein voll ausgestatteter EVTX-Explorer läuft direkt in Ihrem Browser, unterstützt von demselben Rust-Kern, der zu WebAssembly kompiliert wurde.

👉 Jetzt ausprobieren: https://omerbenamram.github.io/evtx/

Alles geschieht lokal – Dateien verlassen niemals Ihren Rechner. Highlights:

  • Drag-and-Drop von .evtx-Dateien (oder Klicken zum Durchsuchen) – verarbeitet auch sehr große Logs!
  • Blitzschnelles Parsen via WebAssembly und Virtual-Scroll-Rendering
  • Facettierte Filter auf Level, Anbieter, Kanal, Ereignis-ID und dynamische EventData-Felder – alle unterstützt durch DuckDB-WASM
  • Volltextsuche, Spaltenverwaltung und sofortiger JSON/XML-Export des gefilterten Satzes
  • Helle/dunkle Designs, Tastaturnavigation und eine Windows-ähnliche Benutzeroberfläche

Der Viewer wird statisch von GitHub Pages ausgeliefert; nach dem ersten Laden funktioniert er vollständig offline.

Installation (zugehöriges Binärprogramm):

  • Laden Sie die neueste ausführbare Version von https://github.com/omerbenamram/evtx/releases herunter
    • Releases werden automatisch für Windows, macOS und Linux erstellt. (Nur 64-Bit-Executables)
  • Aus den Quellen erstellen mit cargo install evtx

evtx_dump (Binärprogramm):

Das wichtigste Binärprogramm, das mit dieser Crate bereitgestellt wird, ist evtx_dump, und es bietet eine schnelle Möglichkeit, .evtx-Dateien in verschiedene Ausgabeformate zu konvertieren.

Einige Beispiele

  • evtx_dump <evtx_datei> gibt den Inhalt der EVTX-Datensätze als XML aus.
  • evtx_dump -o json <evtx_datei> gibt den Inhalt der EVTX-Datensätze als JSON aus.
  • evtx_dump -f <ausgabedatei> -o json <eingabedatei> gibt den Inhalt der EVTX-Datensätze als JSON in eine bestimmte Datei aus.
  • cat <evtx_datei> | evtx_dump -o jsonl - liest die EVTX-Datei von der Standardeingabe (nützlich für Piping/Dekompression).

evtx_dump kann mit fd für die bequeme Stapelverarbeitung von Dateien kombiniert werden:

  • fd -e evtx -x evtx_dump -o jsonl durchsucht einen Ordner und gibt alle EVTX-Dateien in eine einzige JSON-Lines-Datei aus.
  • fd -e evtx -x evtx_dump '{}' -f '{.}.xml' erstellt neben jeder EVTX-Datei eine XML-Datei, und zwar für alle Dateien im Ordner rekursiv!
  • Wenn die Quelle der Datei zum JSON hinzugefügt werden muss, können xargs (oder gxargs auf dem Mac) und jq verwendet werden: fd -a -e evtx | xargs -I input sh -c "evtx_dump -o jsonl input | jq --arg path "input" '. + {path: \$path}'"

Hinweis: Standardmäßig versucht evtx_dump, Multithreading zu nutzen. Das bedeutet, dass die Datensätze möglicherweise in falscher Reihenfolge zurückgegeben werden.

Um eine Single-Thread-Nutzung zu erzwingen (die auch die Reihenfolge sicherstellt), kann -t 1 übergeben werden.

Offline-Template-Rendering (WEVT_TEMPLATE)

EVTX-Datensätze können auf Template-Definitionen verweisen, die in Anbieter-Binärdateien (EXE/DLL/SYS) gespeichert sind. evtx_dump kann diese Templates in einen Offline-Cache extrahieren und sie zur Renderzeit verwenden.

Hinweis: Diese Funktionalität erfordert das Erstellen von evtx_dump mit dem Cargo-Feature wevt_templates (Release-Binärdateien enthalten es möglicherweise bereits).

  • Einen Cache erstellen (einzelne tragbare .wevtcache-Datei):
    • evtx_dump extract-wevt-templates --input <anbieter.dll> --output /tmp/wevt_cache.wevtcache --overwrite
  • Eine EVTX-Datei unter Verwendung des Caches ausgeben (deterministische Regel: wird nur angewendet, wenn ein Datensatz aufgrund einer explizit fehlenden/beschädigten Template-GUID fehlschlägt):
    • evtx_dump --wevt-cache /tmp/wevt_cache.wevtcache <log.evtx>

Debugging-Hilfen:

  • Substitutionswerte einer TemplateInstance eines Datensatzes ausgeben (JSONL):
    • evtx_dump dump-template-instances --input <log.evtx> --record-id <ID> | head -n1
  • Eine bestimmte Template-GUID mit Substitutionen rendern (XML nach stdout):
    • evtx_dump apply-wevt-cache --cache /tmp/wevt_cache.wevtcache --template-guid <GUID> --evtx <log.evtx> --record-id <ID>

Siehe docs/wevt_templates.md für Details und Hintergrund (Issue #103).

Beispielverwendung (als Bibliothek):

use evtx::EvtxParser;
use std::path::PathBuf;

// Change this to a path of your .evtx sample.
let fp = PathBuf::from(format!("{}/samples/security.evtx", std::env::var("CARGO_MANIFEST_DIR").unwrap()));

let mut parser = EvtxParser::from_path(fp).unwrap();
for record in parser.records() {
    match record {
        Ok(r) => println!("Record {}\n{}", r.event_record_id, r.data),
        Err(e) => eprintln!("{}", e),
    }
}

Die parallele Version ist aktiviert, wenn mit dem Feature "multithreading" kompiliert wird (standardmäßig aktiviert).

Leistungs-Benchmarking

Bei Verwendung von Multithreading ist evtx deutlich schneller als jeder andere verfügbare Parser. Für die Single-Core-Leistung ist es sowohl der schnellste als auch der einzige plattformübergreifende Parser, der sowohl XML- als auch JSON-Ausgaben unterstützt.

Die Leistung wurde auf meinem Rechner mit hyperfine (statistisches Messwerkzeug) gemessen.

Ich führe Tests auf einem 12-Kern AMD Ryzen 3900X durch.

Bench-Lauf: Juni 2026 (evtx 0.12.2).

System: Arch Linux (Linux 7.0.11-arch1-1 x86_64).

Benchmark-Commit: 99a6def.

Tool herunterladen