Glossaire
OBJECTS.DATA
Le fichier du dépôt WMI qui contient chaque définition de classe et instance en pages de 8 Kio, y compris filtres, consommateurs et liaisons.
OBJECTS.DATA est le fichier principal du dépôt CIM, dans C:\Windows\System32\wbem\Repository. Il stocke chaque définition de classe et chaque instance de chaque espace de noms sous forme d'enregistrements dans des pages de 8 Kio. Une page qui commence des enregistrements s'ouvre sur une petite table des matières : une entrée de 16 octets par enregistrement (identifiant d'enregistrement, décalage dans la page, taille, somme de contrôle), terminée par une entrée entièrement à zéro. Un enregistrement trop grand pour le reste de sa page se poursuit sur les pages logiques suivantes.
Les filtres d'événements, consommateurs et liaisons y sont des instances ordinaires. Un enregistrement d'instance commence par le hachage du nom de sa classe, écrit sous forme de 64 caractères UTF-16 (SHA-256 ; 32 caractères de MD5 sous Windows XP), suivi de deux FILETIME non documentés et des valeurs des propriétés. Les chaînes résident en texte lisible dans le tas de l'enregistrement.
Pourquoi c'est important en investigation
C'est là que se trouvent les preuves. Les pages libérées et la fin inutilisée des pages conservent d'anciens enregistrements jusqu'à ce que WMI réutilise l'espace : les abonnements supprimés et les anciennes versions d'objets peuvent donc souvent être récupérés par carving. Le hachage du nom de classe au début de chaque instance permet de repérer facilement les enregistrements par balayage, même sans l'index, et les chaînes lisibles permettent à une simple recherche textuelle de révéler des lignes de commande et des références de liaison.
Gardez ses limites à l'esprit. Les enregistrements ne stockent pas leur espace de noms ; seul INDEX.BTR le connaît. Le caractère actif ou libéré d'un enregistrement est déterminé par le fichier MAPPING courant. Enfin, les deux FILETIME sont des pistes, pas des dates de création documentées.
Exemple
Le début d'un enregistrement d'instance __FilterToConsumerBinding, et des chaînes trouvées plus loin dans son tas :
record header UTF-16 hex SHA-256 of "__FILTERTOCONSUMERBINDING" (64 characters)
FILETIME, FILETIME
heap strings __EventFilter.Name="IntelPerfMonitor"
CommandLineEventConsumer.Name="IntelPerfMonitor"
OBJECTS.DATA suffit à lui seul pour récupérer par carving des abonnements comme celui-ci ; ajoutez l'index et les tables de pages pour obtenir les espaces de noms et le statut actif ou supprimé.
Termes associés
WMI Parser analyse OBJECTS.DATA dans le navigateur, par l'index et par carving. Pour sa structure en détail, lisez Au cœur d'OBJECTS.DATA.