Skip to content

Glosario

INDEX.BTR

El índice en árbol B del repositorio WMI: claves de texto con hashes de espacios de nombres, clases e instancias que apuntan a registros de OBJECTS.DATA.

INDEX.BTR es el índice en árbol B del repositorio CIM. Se almacena en páginas de 8 KiB, como OBJECTS.DATA, y contiene claves de texto. Cada clave es una ruta de nombres convertidos en hash que termina con la ubicación de un registro: su página lógica, su id de registro y su longitud. Seguir una clave a través del archivo MAPPING actual lleva a los bytes correctos de OBJECTS.DATA.

Cada parte de una clave es un prefijo seguido del SHA-256, en hexadecimal y en mayúsculas, del nombre convertido a mayúsculas (MD5 en Windows XP y Server 2003). NS_ marca un espacio de nombres, CD_ una definición de clase, y CI_ seguido de IL_ una instancia de una clase.

Por qué importa en una investigación

El índice es lo que separa los objetos activos de los eliminados. Un registro al que hace referencia una clave, a través de una página que el mapa actual todavía usa, está activo; un registro encontrado solo mediante escaneo está liberado o ha sido sustituido por una versión más reciente. El índice también da a cada objeto su espacio de nombres, algo que los propios registros no almacenan. Sin él, una suscripción recuperada mediante carving no puede situarse en root\subscription ni en ningún otro lugar.

Como los nombres están convertidos en hash, el índice nunca contiene un nombre legible de espacio de nombres o de clase. Los nombres legibles proceden de las instancias de __NAMESPACE y de las definiciones de clase. Y como debe coincidir con el mapa y con el archivo de datos, INDEX.BTR solo es fiable cuando todos los archivos del repositorio se recopilaron en el mismo instante.

Ejemplo

Dos claves, con los hashes escritos como funciones de los nombres que codifican:

NS_<h("ROOT\SUBSCRIPTION")>/CD_<h("COMMANDLINEEVENTCONSUMER")>.268.2079887499.561
NS_<h("ROOT\SUBSCRIPTION")>/CI_<h("__EVENTFILTER")>/IL_<h(key)>.271.2079886610.299

La primera es la definición de clase de CommandLineEventConsumer en root\subscription; la segunda, una instancia de __EventFilter. El sufijo se lee página lógica 271, id de registro 2079886610, 299 bytes.

Términos relacionados

WMI Parser recorre este índice cuando INDEX.BTR y un archivo MAPPING están presentes y, después, aplica carving a todo el archivo de datos. Para el formato en profundidad, lea Dentro de OBJECTS.DATA.