viernes, marzo 31, 2006

¿Valores codificados en ROT13 en el Registro?

Si ha "trasteado" alguna vez con el Registro de Windows quizá se haya encontrado con una determinada clave que contiene valores un tanto extraños, aparentemente codificados y que puede que no sepa ni para qué sirven. Concretamente esos valores le permiten a Windows generar el listado de aplicaciones más utilizadas y aquí obtendrá más información sobre cómo mantiene Windows toda esa información.

Si abre Editor del Registro (Regedit.exe) y accede a la rama HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count, es muy probable que se encuentre con una ristra más o menos extensa de valores binarios cuyos nombres parecen estar codificados, observe la siguiente figura a modo de ejemplo:

Ejemplo de un valor contenido en la clave antes citada. Concretamente hace referencia a la Calculadora de Windows.

Efectivamente esos nombres están cifrados en ROT13, un sistema de codificación que se basa en la sustitución de cada caracter de una cadena por el ASCII situado trece posiciones después (considerando el alfabeto de manera cíclica). Puede obtener más información sobre este método de codificación así como un disponer de un espacio para codificar/descodificar automáticamente en la web http://rot13.de/ (en inglés).

¿Qué significan esos valores?

Si copia en la caja de texto de la web que comento anteriormente el nombre de alguno de los valores binarios que le aparecerán en la clave del Registro antes mencionada, obtendrá su descodificación desde ROT13. Y se encontrará con rutas bastante familiares, sin duda. ¿Qué hacen ahí?

Windows XP mantiene un cierto control sobre la utilización de las aplicaciones instaladas. Esto le permite generar listados como el que por defecto se encontrará al abrir el menú Inicio (suponiendo que use el menú de Inicio estilo XP). Cuando un usuario ejecuta una aplicación, Windows se prepara para almacenar en el Registro el dato acerca de que ésta ha sido utilizada una vez más, pero no sin antes consultar una lista de "excepciones". Este paso permite que no aparezcan entre el listado de aplicaciones más utilizadas un instalador de un programa, por ejemplo (cosa que sería absurda). La lista de excepciones la obtiene el sistema operativo desde la siguiente clave del Registro: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ FileAssociation.

Excepciones por defecto para la lista de programas usados frecuentemente

Una vez que Windows decide que efectivamente debería controlar la frecuencia de uso de esa aplicación que el usuario tiene la intención de abrir, se crea en la clave HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count un valor binario codificado en ROT13 que incluye (de manera igualmente codificada) el número de ejecuciones que lleva el programa en cuestión.

Nota: Windows no lee continuamente de la anterior clave del Registro (sería una pérdida importante de rendimiento). Solamente lo hace en ciertas situaciones, entre las que se encuentran las siguientes: Cuando se añade un nuevo acceso directo a la clave, o bien cuando se modifica alguna propiedad del menú Inicio, o bien cuando se elimina manualmente alguna entrada (haciendo clic con el botón derecho del ratón sobre la misma y seleccionado Quitar de esta lista). Por ello es posible que si elimina manualmente algún valor de la clave (a modo de experimento) observe que los cambios no se producen instantáneamente en la lista de programas más utilizados del menú Inicio.

Agregar o quitar programas también utiliza toda esa información

Agregar o quitar programas también recoge esa información acerca de los programas y su frecuencia de uso. Basándose en el valor DisplayName de cada subclave de HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, Windows obtiene la ruta del programa en cuestión utilizando dos palabras de dicho texto como palabras clave de búsqueda. La información una vez recabada se almacena regularmente en una caché situada en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache.

Si por algún motivo la información de la clave HKLM\Microsoft\Windows\CurrentVersion\App Management\ARPCache se pierde o se corrompe, observará que Windows tardará unos molestos segundos de más la primera vez que vuelva a abrir Agregar o quitar programas. Esto se debe a que durante ese tiempo el sistema está "consultando" al menú Inicio la frecuencia de uso de las aplicaciones, además de recorriendo el directorio Archivos de programa de manera intempestiva para calcular una estimación del espacio ocupado por cada programa. Toda la información queda compactada de nuevo en diferentes subclaves de la clave ARPCache, una para prácticamente cada aplicación.

Espero que el artículo les haya servido para profundizar sobre el funcionamiento interno de la característica "programas más usados" del menú Inicio estilo XP así como para comprender qué eran esos valores con nombres codificados en ROT13, en caso de que se los haya encontrado alguna vez en sus "buceos" por el Registro del sistema operativo.

miércoles, marzo 15, 2006

Actualizaciones de marzo de 2006 y MMC 3.0

En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a marzo de 2006 así como la aparición de la versión 3.0 de MMC (Microsoft Management Console) para Windows XP. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

Hay disponibles 2 nuevas actualizaciones de seguridad correspondientes al mes de marzo de 2006:

Crítica

- 905413

Importante

- 914798

Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.

Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de marzo de 2006.

Por otra parte está disponible para descarga pública la versión 3.0 de MMC (Microsoft Management Console), una consola que simplifica enormemente la administración del sistema operativo Windows. Puede descargar la versión para Windows XP (32 bits) desde http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=61fc1c66-06f2-463c-82a2-cf20902ffae0 (requiere validación).

jueves, marzo 09, 2006

Problemas con Opciones de carpeta y cuentas no administrativas

En un artículo anterior de mi bitácora expliqué una razón para trabajar con una cuenta con los menores privilegios posibles. Sin embargo, cumplir a rajatabla los requisitos de todo software que quiera funcionar en cuentas sin privilegios administrativos es algo que hasta Microsoft puede "saltarse" en algún momento, produciendo efectos tan curiosos como el que se describe en este artículo.

Windows incorpora desde hace bastantes años un panel que permite personalizar el modo en el que se presenta el contenido de carpetas, las asociaciones de las extensiones de archivo, etc. Se llama Opciones de carpeta y está situado en Panel de control.

Aspecto del panel Opciones de carpeta en un sistema Windows XP

Si se accede a ese panel desde una cuenta sin privilegios administrativos y se selecciona alguna de las siguientes opciones:

  • Subrayar los títulos de iconos que coincidan con el explorador
  • Subrayar los títulos de iconos cuando yo los señale

Al pulsar Aplicar o Aceptar no notará cambio alguno en la configuración del subrayado de las carpetas y/o archivos del explorador.

Si inicia sesión con una cuenta administrativa, según seleccione una opción u otra notará que los nombres de los iconos quedan siempre subrayados (si activa la primera opción), o bien sólo se subrayan cuando se pasa el puntero del ratón sobre ellos (si activa la segunda). Este es el efecto esperado.

¿Por qué no funciona esta característica en una cuenta sin privilegios administrativos?

El explorador de Windows hace el uso del archiconocido Registro para almacenar la selección de esta opción del panel Opciones de carpeta: En concreto el valor IconUnderline de la clave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer le dirá a Windows qué opción se ha elegido (y por tanto la que deberá aplicar):

Valor

Acción seleccionada

03 00 00 00

Subrayar los títulos de los iconos que coincidan con el explorador

02 00 00 00

Subrayar los títulos de los iconos cuando yo los señale


El problema en sí no reside en la lectura del valor, reside en su creación: en una cuenta con privilegios no administrativos no se llega a generar. Se preguntará por qué, si dicho valor está situado en una clave que pende de la rama principal HKCU\ (donde un usuario cualquiera puede escribir). Pues la razón es que el explorador "silenciosamente" trata de escribir en una rama no permitida a un usuario no administrador (HKLM\) y, al no conseguirlo, no se llega a generar el valor IconUnderline en su lugar correspondiente.

Concretamente Explorer.exe trata de crear cada vez las siguientes claves en el Registro de Windows:
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
Lo hace por si éstas no existieran. En una cuenta administrativa la creación de ambas no presenta ningún problema, pero en una cuenta limitada la segunda no se podrá crear y le devolverá un mensaje de "access denied" a Explorer.exe. Éste no "sabe" cómo seguir y no genera el valor IconUnderline en la clave que corresponde.

Solución al problema

He ideado un rodeo para evitar el problema:

Afirma el dicho que si Mahoma no va a la montaña, la montaña va a Mahoma; así que si Explorer.exe no "sabe" crear el valor en el Registro, créemoslo manualmente por él:

Nota: El siguiente procedimiento implica la manipulación del Registro de Windows. Le recomiendo que genere un punto de restauración antes de continuar.


  1. Inicie sesión con la cuenta limitada.

  2. Abra Inicio, Ejecutar, escriba notepad y pulse Aceptar.

  3. Copie y pegue en la ventana de Bloc de notas alguno de los siguientes textos (indicados en color rojo):
  4. Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
    "IconUnderline"=hex(0):03,00,00,00

    (Si desea activar la opción "Subrayar los títulos de los iconos que coincidan con el explorador").

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
    "IconUnderline"=hex(0):02,00,00,00

    (Si desea activar la opción "Subrayar los títulos de los iconos cuando yo los señale").

  5. Pulse Archivo, Guardar como, seleccione Todos los archivos en la lista desplegable Tipo, escoja una ubicación cualquiera, escriba Subrayado.reg en la caja Nombre y pulse Guardar.

  6. Cierre Bloc de notas.

  7. Haga doble clic sobre el fichero que acaba de crear, pulse y haga clic sobre Aceptar.

Espero que les haya parecido interesante, ya ven que hasta Microsoft a veces no piensa lo suficiente en los entornos sin privilegios administrativos. Afortunadamente el error no es demasiado grave.