Vista Eventlog

Evtx Block-Header

Jede Protokolldatei enthält einen oder mehrere sogenannte "Blöcke" (chunks), die die Ereignismeldungen enthalten. Im Betrieb ist dabei jeweils nur der aktuelle Block einer Protokolldatei im Arbeitsspeicher abgebildet.

Jeder Block ist 64 kiB groß. Die ersten 0x200 Bytes enthalten dabei den Block-Header, die String-Tabelle und eine Template-Tabelle.

Evtx Block-Header
OffsetTypeBedeutung
0x000char[8]Magic, const 'ElfChnk', 0x00
0x008int64NumLogRecFirst
0x010int64NumLogRecLast
0x018int64NumFileRecFirst
0x020int64NumFileRecLast
0x028uint32OfsTables, const 0x080
0x02cuint32OfsRecLast
0x030uint32OfsRecNext
0x034uint32DataCRC
0x038char[68]unbekannt
0x07cuint32HeaderCRC
0x080uint32[64]StringTable
0x180uint32[32]TemplateTable

Der Block-Header enthält zwei Paare von Datensatznummern, die jeweils die erste und die letzte Satznummer innerhalb des Blocks angeben. Das erste Paar bezieht sich dabei auf das Ereignisprotokoll als Gesamtheit; es kann sich durchaus über mehrere Dateien hin fortsetzen. Das zweite Paar hingegen bezieht sich auf die jeweilige Protokolldatei. Der Unterschied wird in einem späteren Beitrag offensichtlich werden, wenn einige ungewöhnliche Protokolldateien betrachtet werden. In leeren Protokolldateien sind alle Zähler auf den Wert -1 gesetzt, mit Ausnahme von NumLogRecFirst, der als Nummer des nächsten zu schreibenden Datensatzes eine 1 anzeigt.

Die CRC32-Prüfsumme in HeaderCRC wird über die ersten 0x200 Bytes des Blocks berechnet. Hierbei werden jedoch 8 Bytes ab dem Offset 0x78 ausgelassen. Betroffen sind also die Prüfsumme selbst und das ihr unmittelbar vorangehende DWORD (vgl. die Berechnung im Datei-Header).

Für den Datenbereich von 0x200 bis zum Ende des letzten Ereigniseintrags wird ebenfalls eine CRC32-Prüfsumme berechnet und in DataCRC gespeichert.

Die StringTable und TemplateTable enthalten 64 beziehungsweise 32 Einträge. Der Ereignisprotokolldienst verwendet diese beiden Tabellen, um die redundante Deklaration bestimmter Strings und XML-Strukturen zu vermeiden. Beide Tabellen werden nicht benötigt, um eine Protokolldatei in eine lesbare Form zu überführen.

29.08.2010: DataCRC hinzugefügt.

English

International edition

Rubriken

Abonnieren

Impressum

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

Copyright © 2005-2010 by
Andreas Schuster
Alle Rechte vorbehalten.