Dateiformat: Header

Der Header ist ein gutes Kriterium, um Logdateien als solche zu identifizieren. Er enthält einige Informationen zum Aufbau der Datei. Gültig sind die meisten Daten jedoch nur bei geschlossenen Logdateien.

Der Header entspricht dem allgemeinen Format für Datensätze in einem Log. Seine Länge ist konstant 48 Bytes.

Aufbau des Headers
Lfd. Nr.OffsetLängeBedeutung
10x004Länge, stets 0x30
20x044Magic, stets "LfLe"
30x084unbekannt, stets 1 (s.u.)
40x0c4unbekannt, stets 1 (s.u.)
50x104Offset des ersten Eintrags
60x144Offset des nächsten Eintrags (= Position des Cursors)
70x184Nummer des nächsten Eintrags
80x1c4Nummer des ersten Eintrags
90x204Dateigröße (s.u.)
100x244Flags (s.u.)
110x284Mindest-Vorhaltedauer in Sekunden
120x2c4Länge, stets 0x30

Da die ersten 16 Bytes des Headers konstant sind, lassen sie sich gut zur Identifikation von Logdateien verwenden. Sie sind auch eine hilfreiche Marke, wenn bereits gelöschte Logdateien wieder hergestellt werden sollen. Zu beachten ist jedoch, dass die entsprechende Bytefolge auch in der Systemdatei eventlog.dll zu finden ist. Anhand der "binären" Umgebung ist diese Fundstelle in der Regel jedoch leicht von einer Logdatei mit ihren Unicode-Strings zu unterscheiden.

Der Eventlog-Dienst überprüft beim Öffnen einer Datei die beiden unbekannten Werte (Nr. 3 und 4) . Jeder andere Wert wird auf 1 zurückgesetzt. Möglicherweise handelt es sich um Versions-/Revisions-Informationen.

Die Dateigröße wird beim Erstellen auf den zutreffenden Wert 64 kiB gesetzt. Das Feld wird jedoch nicht aktualisiert, wenn die Datei wächst. Erkennt der Eventlog-Dienst jedoch beim Öffnen einer Datei kleinere Fehler, wie zum Beispiel einen unerwarteten Wert in den beiden unbekannten Feldern oder ein Flag, das auf eine nicht ordnungsgemäß geschlossene Datei hindeutet, dann passt er auch die Dateigröße im Header der tatsächlichen Länge an.

Die Flags signalisieren vier Zustandswerte der Logdatei.

Flags im Header der Logdatei
FlagNameWertBedeutung
0x0001DIRTY0Die Datei wurde ordnungsgemäß geschlossen. Alle Daten des Headers sind gültig.
1In die Datei wurde seit Anlage bzw. Öffnen geschrieben. Die Daten im Header sind nicht gültig.
0x0002WRAPPED0Die Daten lassen sich liniear vom Dateianfang zum Ende hin verarbeiten.
1Ältere Einträge wurden überschrieben. Datensätze sollten vom Cursor ab gelesen werden; bei Erreichen des Dateiendes ist hinter dem Header fortzufahren.
0x0004FULL0Die Datei kann Daten aufnehmen.
1Die Datei ist voll. Mindestens ein Datensatz konnte nicht geschrieben werden.
0x0008PRIMARY0Die Datei ist einem Log zugeordnet.
1Die Datei ist keinem Log zugeordnet. Typischerweise wurde die Datei durch eine der Backup-Funktionen erstellt.

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.