Glossar
OBJECTS.DATA
Die Datei des WMI-Repositorys, die jede Klassendefinition und Instanz in Seiten zu 8 KiB enthält, einschließlich Event-Filter, Consumer und Bindings.
OBJECTS.DATA ist die Hauptdatei des CIM-Repositorys in C:\Windows\System32\wbem\Repository. Sie speichert jede Klassendefinition und jede Instanz aller Namespaces als Datensätze in Seiten zu 8 KiB. Eine Seite, in der Datensätze beginnen, startet mit einem kleinen Inhaltsverzeichnis: ein Eintrag zu 16 Byte pro Datensatz (Datensatz-ID, Offset in der Seite, Größe, Prüfsumme), abgeschlossen durch einen Eintrag aus Nullen. Ein Datensatz, der für den Rest seiner Seite zu groß ist, setzt sich auf den folgenden logischen Seiten fort.
Event-Filter, Consumer und Bindings sind darin gewöhnliche Instanzen. Ein Instanzdatensatz beginnt mit dem Hash seines Klassennamens, geschrieben als 64 UTF-16-Zeichen (SHA-256; unter Windows XP 32 Zeichen MD5), gefolgt von zwei undokumentierten FILETIMEs und den Eigenschaftswerten. Strings liegen als lesbarer Text im Heap des Datensatzes.
Warum das für Untersuchungen wichtig ist
Hier liegen die Beweise. Freigegebene Seiten und das ungenutzte Ende von Seiten behalten alte Datensätze, bis WMI den Platz wiederverwendet; gelöschte Subscriptions und ältere Versionen von Objekten lassen sich daher oft carven. Der Hash des Klassennamens am Anfang jeder Instanz macht Datensätze auch ohne Index per Scan leicht auffindbar, und dank der lesbaren Strings bringt schon eine einfache Textsuche Befehlszeilen und Binding-Referenzen zum Vorschein.
Behalten Sie die Grenzen im Blick. Datensätze speichern ihren Namespace nicht; nur INDEX.BTR kennt ihn. Ob ein Datensatz aktiv oder freigegeben ist, ergibt sich aus der aktuellen MAPPING-Datei. Und die beiden FILETIMEs sind Anhaltspunkte, keine dokumentierten Erstellungszeitpunkte.
Beispiel
Der Anfang eines __FilterToConsumerBinding-Instanzdatensatzes und Strings, die weiter hinten in seinem Heap stehen:
record header UTF-16 hex SHA-256 of "__FILTERTOCONSUMERBINDING" (64 characters)
FILETIME, FILETIME
heap strings __EventFilter.Name="IntelPerfMonitor"
CommandLineEventConsumer.Name="IntelPerfMonitor"
OBJECTS.DATA allein genügt, um Subscriptions wie diese zu carven; nehmen Sie Index und Zuordnungen hinzu, um Namespaces und den Status aktiv oder gelöscht zu erhalten.
Verwandte Begriffe
WMI Parser analysiert OBJECTS.DATA im Browser, über den Index und per Carving. Den Aufbau im Detail beschreibt OBJECTS.DATA: forensische Analyse des WMI-Repositorys.