Como ya hemos visto, comparando dos instantáneas del registro nos puede servir para encontrar valores, aunque controlarlos ya es otra cosa. El método para control más conocido es la Auditoría, aunque puede que las desventajas superen a las ventajas en este caso. Lo primero es la necesidad de saber exactamente donde se encuentra el valor a auditar, ya que auditar el registro al completo sería impracticable. Segundo, descifrar los resultados de una auditoría es bastante engorroso. Está basado en la observación de eventos en el visor de sucesos y la salida no es demasiado intuitiva.
El proceso de auditar el registro en busca de cambios se divide en tres pasos: Habilitar la directiva de auditoría; Auditar las ramas donde creemos tener el valor localizado; Después del seguimiento, revisar los archivos de registro en el visor de sucesos y ver los cambios que han ocurrido.
Habilitar la auditoría
Auditar las ramas elegidas
Abrir el visor y analizar los archivos de registro
Monitorizar
A diferencia de comparar dos instantáneas del Registro aquí vemos el acceso al registro tal como ha sucedido, es decir, si hay un cambio en el interfaz de usuario vamos al monitor y vemos lo que Windows escribió en el Registro.
Una herramienta interesante es Regmon.
Cada vez que algún programa o el mismo Windows accede al Registro, Regmon añade una fila a la ventana, mostrando número de línea, hora, nombre del proceso que accede al registro, tipo de acceso, ruta, resultado y otros.
Lo más interesante es el tipo de acceso, la ruta de la llave y la columna Otros.
La columna Request nos dice que es lo que el programa o Windows intentan hacer, son diversas funciones API, entre las que sobresale SetValue.
Tipo de acceso |
Columna Otros |
CloseKey | Puntero a llave cerrada |
CreateKey | Puntero a nueva llave |
CreateKeyEx | Puntero a nueva llave |
DeleteKey | nada |
DeleteValue | nada |
DeleteValueKey | nada |
EnumerateKey | Nombre de la siguiente subllave |
EnumKeyEx | Nombre de la siguiente subllave |
EnumerateValue | Nada |
FlushKey | Nada |
OpenKey | Puntero a la llave abierta |
OpenKeyEx | Puntero a la llave abierta |
QueryKey | Nombre de la llave |
QueryValue | Datos del valor |
QueryValueEx | Datos del valor |
SetValue | Dato almacenado en el valor |
SetValueEx | Dato almacenado en el valor |
Al abrir Regmon nos encontramos con una multitud de accesos al registro, la salida es ruídosa. Lo que nos interesa es filtrarlo de modo que nos muestre lo que realmente estamos interesados en buscar. Si queremos ver donde Windows almacena un valor, filtraremos todo menos las solicitudes de escritura.
En el menú de Regmon, options, pulsamos en Filter/Highlight y des/seleccionamos las casillas. Si queremos ser más precisos, filtramos por procesos, por llaves…