Dateiformat: Event

Sinn des Eventlog-Dienstes und seiner Dateien ist es natürlich, Ereignisse zu protokollieren. Dass ich die wichtigste aller Datensatzarten, nämlich den Ereignis-Satz, erst jetzt beschreibe, liegt einfach daran, dass Microsoft die Struktur EVENTLOGRECORD ausführlich beschrieben hat. Zu verdanken ist dieser Umstand wohl der Tatsache, dass ReadEventLog() Ereignis-Sätze aus einer Protokolldatei unverändert durchreicht.

Der Vollständigkeit halber also jetzt die Beschreibung:

Aufbau des Ereignis-Satzes
Lfd. Nr.OffsetLängeBedeutung
10x004Länge
20x044Magic, stets "LfLe"
30x084Satznummer
40x0c4Zeitpunkt der Meldung
50x104Zeitpunkt der Protokollierung
60x144Ereignis-ID
70x182Ereignis-Typ
80x1a2Anzahl einzufügender Strings
90x1c2Ereignis-Kategorie
100x1e2Flags, stets 0
110x204Closing Record, stets 0
120x244Offset der einzufügenden Strings
130x284Länge der SID
140x2c4Offset der SID
150x304Länge binärer Daten
160x344Offset binärer Daten
170x38var.Datenquelle, UNICODE, mit NUL terminiert
18var.var.Computer, UNICODE, mit NUL terminiert
19var.var.SID
20var.var.einzufügende Strings, Array von UNICODE strings, jeweils mit NUL terminiert, optional
21var.var.binäre Daten, optional
22var.var.Ausrichtung auf DWORD-Grenze
23var.4Länge

Bei genauer Betrachtung lassen sich innerhalb des Datensatzes zwei Teile unterscheiden:

  1. Datenfelder fester Länge, die gegebenenfalls über Offset/Länge auf den zweiten Teil verweisen
  2. Datenfelder variabler Länge, überwiegend mit NUL terminierte UNICODE Strings
Die Grenze beider Teile liegt an der Position 0x38 (dezimal 56). Diese Grenze wird in einem späteren Artikel von Bedeutung sein, wenn es um das Phänomen des Paddings geht.

Archiv

Impressum

Dieses Blog ist ein Projekt von:
Andreas Schuster
Im Äuelchen 45
D-53177 Bonn
impressum@forensikblog.de

Copyright © 2005-2012 by
Andreas Schuster
Alle Rechte vorbehalten.
Powered by Movable Type 5.12