Glossaire
INDEX.BTR
L'index B-tree du dépôt WMI : des clés textuelles formées de hachages d'espace de noms, de classe et d'instance, pointant vers OBJECTS.DATA.
INDEX.BTR est l'index B-tree du dépôt CIM. Il est organisé en pages de 8 Kio, comme OBJECTS.DATA, et contient des clés textuelles. Chaque clé est un chemin de noms hachés qui se termine par l'emplacement d'un enregistrement : sa page logique, son identifiant d'enregistrement et sa longueur. En suivant une clé à travers le fichier MAPPING courant, on arrive aux bons octets dans OBJECTS.DATA.
Chaque partie d'une clé est composée d'un préfixe suivi du SHA-256 en hexadécimal majuscule du nom mis en majuscules (MD5 sous Windows XP et Server 2003). NS_ désigne un espace de noms, CD_ une définition de classe, et CI_ suivi de IL_ une instance d'une classe.
Pourquoi c'est important en investigation
C'est l'index qui distingue les objets actifs des objets supprimés. Un enregistrement référencé par une clé, via une page que la table courante utilise encore, est actif ; un enregistrement trouvé uniquement par balayage est libéré ou remplacé. L'index attribue aussi à chaque objet son espace de noms, une information que les enregistrements eux-mêmes ne stockent pas. Sans lui, impossible de situer un abonnement récupéré par carving dans root\subscription ou ailleurs.
Comme les noms sont hachés, l'index ne contient jamais de nom d'espace de noms ou de classe lisible. Les noms lisibles proviennent des instances __NAMESPACE et des définitions de classes. Et comme il doit correspondre à la table de pages et au fichier de données, INDEX.BTR n'est fiable que si tous les fichiers du dépôt ont été collectés au même instant.
Exemple
Deux clés, avec les hachages écrits sous forme de fonctions des noms qu'ils encodent :
NS_<h("ROOT\SUBSCRIPTION")>/CD_<h("COMMANDLINEEVENTCONSUMER")>.268.2079887499.561
NS_<h("ROOT\SUBSCRIPTION")>/CI_<h("__EVENTFILTER")>/IL_<h(key)>.271.2079886610.299
La première est la définition de classe de CommandLineEventConsumer dans root\subscription ; la seconde une instance de __EventFilter. Le suffixe se lit page logique 271, identifiant d'enregistrement 2079886610, 299 octets.
Termes associés
WMI Parser parcourt cet index lorsque INDEX.BTR et un fichier MAPPING sont présents, puis applique le carving à l'ensemble du fichier de données. Pour le format en détail, lisez Au cœur d'OBJECTS.DATA.