[Archivo de boletines ^] [< Volumen 2, Número 4] [Volumen 3, Número 1 >]
Boletín interno de sistemas Volumen 2, Número 5
www.sysinternals.com
Copyright (C) 2000 Mark Russinovich
30 de noviembre de 2 000: En este número:
EDITORIAL
NOVEDADES DE SYSINTERNALS
- PsLoggedOn v1.2
- PsShutdown v1.0
- PsTools v1.1
- BgInfo v1.1
- Tokenmon v1.0
- Filemon v4.32
- Regmon v4.32
- Dentro de Windows 2000, 3a Ed.
- Revista Windows 2000 de noviembre e invierno
- Sysinternals en Microsoft
- Licencias de Sysinternals
INFORMACIÓN INTERNA
- NFI
- Claves ocultas del Registro Win9x
PRÓXIMAMENTE
- Nuevas llamadas al sistema Whistler
PATROCINADOR: WINTERNALS SOFTWARE
El boletín Sysinternals está patrocinado por Winternals Software, en la web www.winternals.com. Winternals Software es el principal desarrollador y proveedor de herramientas avanzadas de sistemas para Windows NT/2K. Los productos winternals Software incluyen FAT32 para Windows NT 4.0, NTFSDOS Professional Edition (un controlador NTFS de lectura y escritura para DOS) y Recuperación remota.
El comando netstat, que viene con todas las versiones de Windows 9x y Windows NT/2000, le muestra qué puertos TCP/IP están abiertos en su sistema, sin embargo no le muestra qué proceso tiene el puerto abierto. TCPView Pro, la última herramienta de supervisión de Winternals, no solo viene con una herramienta de línea de comandos equivalente a netstat, Tcpvstat, que muestra qué proceso tiene cada puerto abierto, sino que incluye una interfaz gráfica de usuario que muestra la misma información más un seguimiento en tiempo real de la actividad TCP/IP. El rastreo en tiempo real revela la aplicación que realiza un acceso a la red, las direcciones IP local y remota del acceso con resolución de nombres DNS opcional, el tipo de acceso, el éxito del acceso y la cantidad de datos transferidos. TCPView Pro sólo cuesta 69 $. Descargue hoy mismo la versión de prueba totalmente funcional de 14 días de TCPView Pro en www.winternals.com/products/monitoringtools/tcpviewpro.shtml.
Hola a todos:
Bienvenido al boletín de Sysinternals. El boletín cuenta actualmente con 28 000 suscriptores.
Una de las ventajas de pasar de Windows NT a Windows 2000 es la gran mejora de la fiabilidad. He escrito sobre las razones de las mejoras en varios artículos, y son principalmente el resultado de una herramienta llamada Driver Verifier. Puede configurar el Verificador, que se inicia escribiendo "verifier" en el cuadro de diálogo Ejecutar del menú Inicio, para que vigile de cerca la ejecución de controladores de dispositivos específicos, en busca de violaciones de cualquiera de las diversas reglas de programación de controladores. Sin embargo, el Verificador va un paso más allá de la monitorización pasiva: también agrava las posibles condiciones de error, por ejemplo, asignando bloques de memoria para el controlador que están atravesados por regiones no válidas y poniendo a cero campos específicos en estructuras de datos que se pasan al controlador. Si realmente quiere que sea resistente, puede hacer que el Verificador simule condiciones de poca memoria para el controlador.
Microsoft aprovecha el Verifier a través de su programa de firma de controladores, que exige que cualquier controlador firmado digitalmente por Microsoft supere las estrictas pruebas del Driver Verifier. Cuando se instala un controlador, el asistente de hardware comprueba si está firmado. Si no es así, le avisará o no instalará el controlador, dependiendo de la configuración que haya introducido en el cuadro de diálogo Opciones de firma de controladores, al que puede acceder desde la página Hardware del subprograma Sistema del Panel de control.
El hecho de que la directiva de firma de controladores por defecto advierta a los usuarios finales sobre los controladores no firmados es suficiente para que la mayoría de los proveedores de hardware se tomen la molestia de hacer que sus controladores sean robustos y estén firmados. Sin embargo, los controladores de dispositivos pueden colarse en su sistema sin ser detectados por la directiva de firma de controladores. Solo se comprueban las firmas de los controladores que se instalan mediante archivos INF (archivos de instalación de controladores que terminan en la extensión .inf). Las aplicaciones de instalación pueden instalar controladores manualmente, ya sea utilizando directamente las API de instalación o configurando manualmente los parámetros de registro del controlador. Las aplicaciones de Sysinternals son un buen ejemplo de ello: Filemon, Regmon y otras herramientas de Sysinternals que tienen componentes de controlador instalan sus controladores manualmente, que es la razón por la que no te avisan de que no están firmados por Microsoft.
Entre los controladores que no suelen instalarse con los archivos INF se encuentran los antivirus, el software de encriptación y el software de grabación de CD-ROM. Sin embargo, eso no impide que se cuelen controladores relacionados con el hardware. El controlador Ctrl2cap de Sysinternals para Windows 2000 (www.sysinternals.com/ctrl2cap.htm) es un ejemplo de controlador relacionado con hardware que se instala de forma que elude las comprobaciones de firma de controladores. Esta laguna conduce a la presencia de controladores en su sistema que no han sido verificados, lo que puede comprometer la estabilidad del sistema (yo verifico todos los controladores de Sysinternals en la configuración más alta). Microsoft debería obligar a todos los controladores, no solo a los que se instalan con archivos INF, a pasar por la comprobación de firma.
¿Por qué estoy en cuarentena? Mi software de grabación de CD-ROM, que es el más popular de ese tipo de software en el mercado, tiene un controlador que bloquea de forma reproducible mi sistema Windows 2000 SP1. Si configuro el Driver Verifier para que lo compruebe, el sistema ni siquiera termina de arrancar antes de que el Verifier detecte la primera infracción del controlador y bloquee el sistema. El controlador se instaló sin un archivo INF, por lo que no se me advirtió de que no estaba firmado. Le garantizo que si la directiva de Microsoft fuera más estricta, este proveedor se lo pensaría dos veces antes de enviar un controlador sin firmar (y con errores).
Comparta el boletín de noticias con los amigos que cree que podrían estar interesados en su contenido.
Gracias
-Mark
NOVEDADES DE SYSINTERNALS
PSLOGGEDON V1.2
Además de un cambio de nombre obvio de LoggedOn a PsLoggedOn, esta herramienta de línea de comandos, que tiene la capacidad de mostrar quién está conectado localmente y a través de recursos compartidos en el sistema local o remoto, tiene algunas características nuevas. El primero es el modificador de línea de comandos "-l", resultado de las opiniones de los usuarios. Mucha gente utiliza PsLoggedOn para verificar si alguna cuenta está conectada localmente a sus servidores. Puede haber usuarios conectados a través de archivos compartidos, por ejemplo, pero eso no es relevante a la hora de tomar una decisión sobre cuándo se puede actualizar una cuenta o administrar el servidor de forma remota.
La segunda nueva función de PsLoggedOn le muestra no solo quién está conectado, sino también la hora a la que se produjo la conexión. PsLoggedOn obtiene tiempos de inicio de sesión para inicios de sesión desde recursos compartidos de forma gratuita cuando utiliza una API Win32, NetSessionEnum, para enumerar inicios de sesión de recursos compartidos (el comando Net de línea de comandos también utiliza NetSessionEnum para enumerar sesiones). Sin embargo, no existe ninguna API Win32 que le diga quién ha iniciado sesión en un sistema localmente, y mucho menos a qué hora lo ha hecho.
Para determinar quién ha iniciado sesión en un sistema localmente, PsLoggedOn enumera los identificadores de seguridad (SID) situados bajo la clave de Registro de un ordenadorHKEY_USERS
. Cuando alguien se conecta localmente a un ordenador, ya sea en la consola o a través de un servicio, su perfil se carga en la clave HKEY_USERS
. Las aplicaciones pueden acceder a la configuración del Registro de su perfil a través de la clave HKEY_CURRENT_USER
porque el sistema trata esa clave como un enlace simbólico a su perfil concreto en HKEY_USERS
. Así, PsLoggedOn puede saber quién está conectado localmente traduciendo los SID que encuentra en la clave de un ordenador HKEY_USERS
al nombre de usuario correspondiente. PsLoggedOn utiliza RegConnectKey
para conectarse al Registro de un ordenador remoto cuando se le indica que enumere los usuarios que han iniciado sesión en un sistema remoto.
Para averiguar a qué hora se ha conectado un usuario se utiliza un truco similar. Cuando el proceso de WinLogon carga el perfil de un usuario en HKEY_USERS
luego de que éste inicie sesión, WinLogon crea una subclave volátil (que no se guarda en el perfil en el disco) en su perfil llamada, apropiadamente, Entorno volátil. El Registro almacena las marcas de tiempo de la última modificación de las claves del Registro, y como el sistema no modifica las subclaves de Entorno Volátil después de su creación, PsLoggedOn puede determinar cuándo un usuario inició sesión obteniendo la marca de tiempo de su subclave de Entorno Volátil.
Descargue PsLoggedOn v1.2 con el código fuente completo en
www.sysinternals.com/psloggedon.htm.
PSSHUTDOWN V1.0
Si alguna vez ha necesitado apagar o reiniciar un sistema Windows NT/2000 local o remoto, entonces querrá descargar PsShutdown. PsShutdown es un clon de la herramienta Kit de recursos para apagar Windows NT/2000. Toma los mismos argumentos de la línea de comandos que le permiten especificar un retraso antes del apagado, si reiniciar o no, un mensaje opcional para mostrar a cualquier usuario actualmente conectado al sistema, y el nombre del ordenador a apagar o reiniciar.
Descargue PsShutdown v1.0 en www.sysinternals.com/psshutdn.htm.
PSTOOLS V1.1
Probablemente se haya dado cuenta del creciente número de herramientas en Sysinternals que comienzan con el prefijo "Ps". La primera fue PsList, una herramienta de línea de comandos que enumera información sobre los procesos activos en el sistema Windows NT/2000 local o remoto. Le di el nombre de PsList porque la herramienta estándar de información de procesos de la línea de comandos de UNIX se llama "ps". La siguiente herramienta que obtuvo el prefijo fue PsKill, una utilidad de línea de comandos que permite terminar procesos que se ejecutan en sistemas Windows NT/2000 locales o remotos. Le puse el prefijo "Ps" a PsKill porque era el compañero perfecto de PsList.
Con el tiempo he desarrollado otras herramientas que compartían las mismas características definitorias que PsList y PsKill: se basan en la línea de comandos y funcionan en el sistema Windows NT/2000 local o remoto. Por ejemplo, ElogList le permitía volcar el contenido de los registros de eventos de un sistema, y GetSid le mostraba el SID de un ordenador o de una cuenta concreta. Hace poco, decidí unir todas estas herramientas dándoles el prefijo "Ps" y hacerlas descargables como un único paquete llamado PsTools.
PsTools, que incluye PsList, PsKill, así como las rebautizadas PsLogList y PsGetSid, consta de un total de siete herramientas. Si ve una herramienta de Sysinternals con el prefijo "Ps", sabrá automáticamente que se trata de una herramienta de línea de comandos que funciona tanto local como remotamente.
Descargue PsTools v1.1 en www.sysinternals.com/pstools.htm.
BGINFO V1.1
Bryce ha actualizado BgInfo, una utilidad que establece el fondo de escritorio para mostrar información personalizable sobre la configuración de un sistema, como resultado de los comentarios de los usuarios que ha recibido. Por defecto, BgInfo realiza una cuenta atrás de 10 segundos antes de aplicar los ajustes especificados en su cuadro de diálogo, pero una nueva opción de línea de comandos, /timer
, permite cambiar o eliminar por completo la cuenta atrás. Esto hace que sea más conveniente incluir BgInfo en un script de inicio de sesión, o como un acceso directo en la carpeta de inicio de un perfil.
La versión 1.1 incluye otras novedades, como la posibilidad de mostrar texto arbitrario definido por el usuario y más categorías de información predefinidas. El mapa de bits del escritorio que crea BgInfo v1.1 también es, en general, más pequeño, lo que minimiza la huella de memoria del escritorio de BgInfo.
Descargue BgInfo v1.1 en www.sysinternals.com/bginfo.htm.
TOKENMON V1.0
Tokenmon es la última incorporación al variado conjunto de herramientas de monitorización que puede descargar de Sysinternals. Tokenmon, que comparte la misma interfaz de usuario que sus primos Regmon y Filemon, supervisa la actividad relacionada con la seguridad en un sistema Windows NT/2000. ¿Qué es una actividad "significativa" relacionada con la seguridad? En el corazón de la seguridad de Windows NT/2000 se encuentra el objeto token, una estructura de datos que contiene un SID de cuenta, SID de grupo y privilegios. Cada vez que un proceso intenta acceder a un objeto seguro, el Monitor de Referencia de Seguridad utiliza los SID de su token como parte de la validación de acceso. Si un proceso intenta realizar una operación restringida, como reiniciar el sistema, el sistema comprueba el privilegio apropiado en el token del proceso.
Una de las potentes (y patentadas) características del modelo de seguridad de Windows NT/2000 es la suplantación de identidad. La suplantación permite a un hilo anular temporalmente su identidad basada en procesos y adoptar una identidad alternativa mediante el uso de un token de suplantación. Las aplicaciones servidoras se aprovechan de la suplantación cuando acceden a recursos en nombre de un cliente, cuando adoptan la identidad del cliente mientras dura el acceso.
Tokenmon instala ganchos de llamada al sistema del mismo modo que Regmon lo hace para las API del Registro, con el fin de supervisar la creación y eliminación de tokens, la activación y desactivación de privilegios y la suplantación de identidad. Tokenmon también utiliza ganchos de creación de procesos proporcionados por el kernel NT/2000 para supervisar la creación y eliminación de procesos, y otras API para determinar cuándo un usuario se conecta y cuándo se desconecta.
Se ha publicado el código fuente completo de Tokenmon, y merece la pena comentar algunas de las interesantes técnicas que demuestra el código. Tokenmon detecta un evento de inicio de sesión enganchando la llamada al sistema NtCreateToken, que es la que utilizan los agentes de inicio de sesión como WinLogon para crear un token inicial para el primer proceso de una nueva sesión de inicio de sesión. Los procesos creados por el primer proceso heredan una copia del primer token. Para detectar el cierre de sesión, Tokenmon se registra para la notificación de cierre de sesión a través de la función SeRegisterLogonSessionTerminatedRoutine del modo kernel, una API que existe en beneficio de los controladores del sistema de archivos, llamados redirectores de red, que almacenan en caché los datos de la sesión de inicio de sesión y desean limpiarlos cuando un usuario cierra la sesión. Los redireccionadores de red implementan el lado cliente de las conexiones cliente/servidor de compartición de archivos.
Otro detalle interesante de la implementación de Tokenmon es la forma en que Tokenmon engancha las API que supervisa. Algunas de las API que engancha Tokenmon no se exportan para su uso por los controladores de dispositivos, pero se exportan en la biblioteca NTDLL.DLL en modo usuario para su uso por aplicaciones que utilizan sus equivalentes Win32. Todas las API de registro que utiliza Regmon se exportan en modo kernel, por lo que es posible que el controlador de dispositivo Regmon obtenga sus números de llamada al sistema y se conecte a la tabla de llamadas al sistema de forma adecuada. Para las API no exportadas para su uso por los controladores, la GUI de Tokenmon debe obtener los números de llamada utilizando las exportaciones en NTDLL.DLL, y luego, pasar los números al controlador para que éste pueda enganchar la tabla de llamadas del sistema. Así, Tokenmon demuestra cómo enganchar llamadas al sistema que no se exportan en modo kernel.
Descargue Tokenmon v1.0 con el código fuente completo en www.sysinternals.com/tokenmon.htm.
Filemon v4.32
Esta última actualización de Filemon introduce un filtrado más intuitivo y completo, la visualización de nombres de ruta UNC completos para el acceso a archivos de red de Windows 9x/Me y la visualización de nombres de archivos de metadatos NTFS.
Las versiones anteriores de Filemon requerían la introducción de filtros con comodines obligatorios. Por ejemplo, si quisiera monitorizar los accesos al directorio Temp de la unidad C:
, tendría que introducir un filtro como este "c:\temp\*
".
Con la nueva sintaxis de filtrado, los comodines son opcionales, por lo que, aunque el filtro del ejemplo funcionaría, "c:\temp
" conseguiría el mismo efecto. Además, Filemon aplica ahora los filtros introducidos a todos los campos de la pantalla, incluidos el nombre del proceso, el tipo de solicitud, la ruta y la columna "otros". Esta flexibilidad le permite vigilar tipos específicos de solicitudes, o solicitudes con determinados datos en la otra columna, algo que antes no era posible.
Los usuarios de Filemon en sistemas Windows 9x/Me verán ahora que Filemon muestra los nombres de ruta con la sintaxis UNC completa cuando accedan a recursos remotos. Anteriormente, Filemon no mostraba el nombre del servidor o del recurso compartido para dichos accesos, lo que daba lugar a nombres de ruta incompletos.
Por último, si ha utilizado Filemon en Windows NT/2000, sin duda habrá visto el texto "DASD" en la columna de ruta de muchos accesos ("DASD" proviene de "Direct Access Storage Device", un término que Microsoft utiliza para describir los accesos a un volumen que eluden las estructuras del sistema de archivos). Para la mayor parte de la actividad en volúmenes NTFS, DASD es ya cosa del pasado. En su lugar, verá los nombres de los archivos de metadatos NTFS que se están leyendo y escribiendo. Por ejemplo, antes una actualización de un registro MFT habría dado lugar a una línea de salida DASD, pero ahora lo verá como un acceso a "$Mft", el nombre del archivo de metadatos interno del MFT.
¿Por qué Filemon no mostraba antes los nombres de los archivos de metadatos y cómo los obtiene ahora? Los objetos de archivo que representan archivos de metadatos NTFS no almacenan un nombre de archivo, por lo que Filemon no puede extraer el nombre del objeto de archivo. El método alternativo de Filemon para obtener el nombre de un archivo, consultando al controlador del sistema de archivos, tampoco funciona para los archivos de metadatos NTFS. Aunque NTFS responde con los nombres de los archivos de metadatos, NTFS en NT 4 provoca caídas aleatorias, y NTFS en Win2k se cuelga ocasionalmente al responder a dichas consultas.
Por ello, Filemon tiene que recurrir a un truco para obtener los nombres de los archivos de metadatos. Cuando ve una solicitud dirigida a un objeto de archivo en un volumen NTFS sin nombre, envía a NTFS una consulta para el índice del archivo. Este es el mismo índice que devuelve la función Win32 GetFileInformationByHandle, y para archivos en volúmenes NTFS el índice es el índice MFT del archivo. Las 16 primeras entradas de la MFT están reservadas para archivos de metadatos específicos, por lo que, dado un índice en ese rango, Filemon simplemente busca el nombre del archivo de metadatos en su propia tabla.
Desafortunadamente, aún verá DASD para los accesos a los metadatos de directorio y a la tabla de asignación de archivos (FAT) en volúmenes FAT, porque FAT no almacena nombres para los archivos de metadatos de directorio o la FAT. Le sorprenderá la frecuencia con la que se accede al archivo de registro NTFS ($LogFile). Casualmente, NTFS en Whistler almacena los nombres de los archivos de metadatos, por lo que el truco es innecesario en Whistler.
La última mejora de Filemon le permite mostrar marcas de tiempo con una resolución de milisegundos. Esta compatibilidad requería trucos sucios en el controlador Filemon de Windows 9x/Me debido a fallos en una función de temporización del kernel de Windows 9x/Me. Consulte el código fuente para obtener más información.
Descargue Filemon v4.32 con el código fuente en www.sysinternals.com/filemon.htm.
REGMON V4.32
Los cambios de Regmon no son tan importantes como los de Filemon, pero Regmon admite ahora la misma sintaxis de filtrado más intuitiva que Filemon y, al igual que Filemon, aplica los filtros a todos los campos. También puede mostrar una resolución de milisegundos en las marcas de tiempo.
Los que haya empezado a jugar con Whistler (el sucesor de Windows 2000) Beta 1 puede que haya notado que las versiones anteriores de Regmon bloqueaban Whistler cuando se iniciaba. Esto se debe a que Microsoft ha colocado la tabla de llamadas al sistema, que Regmon modifica para insertar sus ganchos, en memoria protegida contra escritura. Regmon v4.32 soluciona este problema utilizando una técnica para la que no he proporcionado el código fuente a petición de Microsoft, ya que la técnica puede romperse en la versión final de Whistler, y Microsoft está explorando formas de apoyar el enganche de llamadas al sistema. Windows NT no se diseñó para admitir llamadas al sistema, algo en lo que fuimos pioneros con la primera versión de Regmon a mediados de 1996.
He aquí un consejo indocumentado sobre Filemon/Regmon. A menudo recibo correos electrónicos que preguntan cómo ejecutar Regmon o Filemon desde una cuenta no administrativa en Windows NT/2000 Hay muchos casos en los que una determinada aplicación funciona correctamente cuando se ejecuta desde la cuenta de administrador, pero no desde la de un usuario sin privilegios, en los que Regmon y Filemon serían útiles para determinar por qué falla la aplicación (suele ser un problema relacionado con la configuración de seguridad de un archivo o clave del Registro). Sin embargo, ejecutar Regmon y Filemon desde una cuenta sin privilegios fallará porque tanto Filemon como Regmon instalan controladores de dispositivo, algo que requiere privilegios de administrador.
Sin embargo, existe un truco para evitarlo: Si se conecta como administrador e inicia Filemon o Regmon, podrá ejecutarlos posteriormente desde cuentas sin privilegios. Esto se debe a que Filemon y Regmon instalan un controlador en su primera ejecución, y en las siguientes ejecuciones acceden al controlador ya cargado. Como no implemento ningún tipo de seguridad en el controlador, un usuario sin privilegios puede ejecutar las herramientas después de cargar el controlador. ¿Hay problemas de seguridad? Sí, pero Filemon y Regmon están pensadas para ser herramientas de solución de problemas, por lo que yo, y las personas que preguntan cómo ejecutar las utilidades desde cuentas sin privilegios, vemos esto como una característica.
Descargue Regmon v4.32 con el código fuente completo en www.sysinternals.com/regmon.htm.
DEBUGVIEW V4.02
Una de las aplicaciones por las que he recibido más comentarios de los usuarios es, sorprendentemente, DebugView. Esta nueva versión tiene algunas mejoras significativas que abordan muchas de las peticiones de características y funcionalidades que he recibido, y hacen que DebugView sea más potente que nunca.
Más visiblemente, DebugView ahora admite hasta cinco filtros de resaltado diferentes, cada uno con sus propios colores personalizables. Esto le permite localizar simultáneamente diferentes palabras clave en la salida de depuración y distinguirlas fácilmente. Además, DebugView implementa la misma nueva sintaxis de filtrado que Filemon y Regmon, haciendo que los comodines sean opcionales para la coincidencia de subcadenas.
Una queja que recibí sobre las versiones anteriores de DebugView es que, incluso si solo quería capturar la salida de depuración Win32, todavía necesitaba privilegios administrativos para ejecutar DebugView, porque DebugView no se ejecutaría si no podía instalar su controlador de dispositivo. Esta nueva versión funciona incluso desde cuentas que no tienen privilegios especiales. Si no puede instalar o acceder a su controlador, simplemente desactive sus elementos de menú relacionados con la captura en modo kernel.
Dos características que facilitan que DebugView comience a capturar la salida automáticamente al iniciar sesión son su opción de minimizar a bandeja y la compatibilidad con conmutadores de línea de comandos. Usando interruptores de línea de comandos, puede hacer que DebugView se inicie en la bandeja del sistema y registre la salida que captura en un archivo, y después de haber iniciado DebugView puede usar una opción de menú para alternar el comportamiento de su botón de minimizar entre minimizar normalmente, y minimizar a la bandeja del sistema.
Para los usuarios que ejecutan DebugView en sesiones remotas en servicios de terminal de Windows 2000, DebugView captura ahora la salida Win32 generada por las aplicaciones que se ejecutan en su sesión remota y, opcionalmente, desde la sesión de consola. Esto es útil para depurar servidores COM y servicios Win32 de forma remota, ya que este tipo de programas se ejecutan en la sesión de consola.
Por último, DebugView funciona ahora en Whistler Beta 1, con soporte para capturar la salida de las nuevas variantes de Whistler en la función DbgPrint en modo kernel.
Descargue DebugView v4.02 en www.sysinternals.com/dbgview.htm.
DENTRO DE WINDOWS 2000, 3.ª ED.
El libro oficial sobre el funcionamiento interno de Windows 2000 ya está disponible. Esta edición, de la que son coautores David Solomon (www.solsem.com) y Mark Russinovich, es más de un 40 % mayor que la anterior, con nueva cobertura de redes, plug-and-play, administración de energía, servicios, el Registro, WMI, arranque y apagado, y almacenamiento. También incluye un CD con varias herramientas potentes, no disponibles en ningún otro sitio, para investigar las funciones internas de Windows 2000.
Una de las herramientas que escribí específicamente para el libro es LiveKd, un programa que le permite ejecutar los dos depuradores del kernel de Microsoft, i386kd y WinDbg, en un sistema en vivo como si estuviera viendo un volcado de error. Muchos de los experimentos presentados en el libro funcionan en un sistema en vivo cuando se ejecutan utilizando LiveKd. LiveKd funciona instalando un controlador de filtro de sistema de archivos que presenta la memoria física del ordenador al depurador de Microsoft como si fuera un archivo de volcado de fallos. LiveKd crea un pseudo archivo de volcado de longitud 0, y cuando el depurador lee del archivo, LiveKd devuelve datos de la memoria física. Consulte la página de erratas y actualizaciones del libro para ver un parche de LiveKd que corrige una incompatibilidad entre LiveKd v1.0 y varios escáneres de virus en acceso.
Consulte el índice del libro y solicítelo ahora a través de www.sysinternals.com/insidew2k.htm.
REVISTA WINDOWS 2000 DE NOVIEMBRE E INVIERNO
¿Tiene curiosidad por saber qué ha cambiado exactamente entre NTFS v4 y NTFS v5? Si es así, consulte mi serie de dos partes en los números de noviembre e invierno de la revista Windows 2000. En la Parte 1 se describen los puntos de reparación, las uniones de directorios, los puntos de montaje de volúmenes, el soporte de cuotas y la configuración de seguridad consolidada. La segunda parte concluye con un análisis detallado del cifrado, los flujos, el seguimiento de enlaces distribuidos y el diario de cambios. Ambos artículos profundizan más que otros, presentando los cambios en el disco y el comportamiento interno de estas nuevas funciones.
Una cosa de la que no hablo en los artículos es cómo NTFS para Windows NT 4 no es realmente la versión
Encontrará enlaces a todas nuestras publicaciones en www.sysinternals.com/publ.htm.
SYSINTERNALS EN WWW.MICROSOFT.COM
Sysinternals ha aparecido en varios artículos nuevos de la Base de conocimientos de Microsoft (KB) desde el último boletín, y también he localizado algunos artículos anteriores de la KB que hacen referencia a Sysinternals.
Q260513 PRB: Se produce un error al instalar productos de Visual Studio
http://support.microsoft.com/support/kb/articles/Q260/5/13.ASP
Este artículo recomienda a los lectores que utilicen Filemon y Regmon para solucionar problemas de instalación de Microsoft Visual Studio.Q202258 XADM: El sistema no puede encontrar la ruta especificada - ID No: 0cx002003
http://support.microsoft.com/support/kb/articles/Q202/2/58.ASP
Microsoft muestra a los usuarios cómo utilizar Filemon para solucionar problemas de actualización del Service Pack Exchange 5.0, con una línea de salida de Filemon de ejemplo y recomendaciones sobre la configuración de filtros.Q269383 PRB: Mensaje "Error al acceder al registro del sistema" al mostrar referencias VB/VBA
http://support.microsoft.com/support/kb/articles/Q269/3/83.ASP
Regmon recibe la referencia de este artículo, que habla de su uso para determinar por qué el diálogo Referencias en el IDE de Visual Basic informa cuando no puede acceder a una clave del Registro como resultado de un error en Seagate Crystal Reports que aplica permisos incorrectos a varias claves.Q269251 BUG: La automatización del Windows Installer puede bloquearse al enumerar productos
http://support.microsoft.com/support/kb/articles/q269/2/51.asp
Regmon se destaca de nuevo aquí, donde se utiliza para revelar un error de automatización de Windows Installer.Q276525 Su ordenador puede dejar de responder cuando monitorea controladores
http://support.microsoft.com/support/kb/articles/Q276/5/25.asp
NtHandle es responsable de revelar un error en Windows NT 4 SP6a, donde el kernel se colgaba bajo ciertas condiciones cuando se utilizaba NtHandle. Microsoft trabajó conmigo para resolver el problema y han publicado una revisión. Si su sistema NT 4 se cuelga al usar NtHandle, debe seguir el enlace a este artículo.Q160660 Ntregmon.exe provoca la PARADA 0x0000001E con el nuevo Paquete de servicios
http://support.microsoft.com/support/kb/articles/Q160/6/60.asp
Este último es un viejo, pero bueno. La primera versión de Regmon utilizaba números de llamada al sistema codificados para parchear la tabla de servicios del sistema con el fin de enganchar las API del Registro. Dado que los números de llamada al sistema a veces cambian entre paquetes de servicios, esta técnica es bastante frágil, y yo no había codificado a la defensiva en previsión de esto (en contra del consejo de Andrew Schulman, que temía que Regmon se rompiera). Efectivamente, SP3 introdujo unas cuantas llamadas nuevas al sistema, y Regmon bloqueaba el sistema cuando enganchaba llamadas incorrectas al sistema. Aunque esto seguramente molestó a algunas personas, ¡conseguí mi propio artículo KB de ello!
LICENCIAS DE SYSINTERNALS
Aunque el software que descarga de Sysinternals es gratuito, lo que significa que puede utilizarlo sin pagar un honorario, no está permitido redistribuirlo ni derivar productos que distribuya a partir del código fuente de Sysinternals. Por ejemplo, si trabaja en una empresa en la que varios usuarios encuentran útiles determinadas herramientas de Sysinternals, puede que no publique las herramientas en un recurso compartido interno o en un sitio web. En su lugar, coloque un enlace en su sitio a la página de inicio de cada herramienta en Sysinternals. Esto también ayuda a asegurarse de que sus colaboradores descargan siempre las últimas versiones.
Si desea redistribuir las herramientas de Sysinternals internamente, con un producto comercial o en un CD de shareware, o si desea basar un producto comercial o un programa redistribuible en el código fuente de Sysinternals, envíe un correo electrónico explicando los detalles del uso que desea hacer a licensing@.....
INFORMACIÓN INTERNA
NFI
Hace unos cuantos boletines atrás revelé la existencia de la herramienta DiskEdit que Microsoft incluyó inadvertidamente en el CD de NT 4 SP4. DiskEdit es un visor de estructuras de sistemas de archivos muy potente, aunque peculiar, que puede utilizar para examinar estructuras de datos en disco NTFS y FAT (aunque lo interesante es la compatibilidad con NTFS). Si se perdió el CD de NT 4 SP 4 y está interesado en explorar las estructuras NTFS en disco, no está totalmente perdido. Microsoft ha lanzado una herramienta gratuita llamada NFI (NTFS Information) que entiende y puede volcar las estructuras internas de los volúmenes NTFS. Aunque su resultado no es tan detallado como el de DiskEdit, es interesante y revelador.
Puede descargar NFI como parte de las herramientas de soporte OEM en http://support.microsoft.com/support/kb/articles/q253/0/66.asp. Ejecutar NFI con un nombre de archivo vuelca el registro NTFS MFT para ese archivo. El siguiente ejemplo muestra a NFI volcando el registro MFT para el archivo de metadatos $Quota
, un archivo que solo existe si tiene habilitada la administración de cuotas en un volumen:
C:\nfi c:\$extend\$quota
File 24
\$Extend\$Quota
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$INDEX_ROOT $O (resident)
$INDEX_ROOT $Q (resident)
La salida muestra que el archivo ocupa la 24ª entrada en la MFT (su índice de archivo es 24), y que contiene cuatro atributos, incluyendo información estándar, nombre de archivo y dos raíces de índice (y el índice es esencialmente una lista cotejada de entradas, como un directorio). Describo cómo NTFS utiliza los índices $Quota
en mi última serie de Windows 2000 Magazine sobre NTFS v5.
Para volcar todos los archivos de un volumen, especifique la letra de la unidad en la línea de comandos de NFI sin un nombre de archivo, por ejemplo nfi c:
. Verá una lista de cada entrada MFT, incluidos todos los archivos de metadatos.
NFI tiene algunos otros talentos, como la capacidad de traducir un número de sector en el archivo en el que reside. ¿Desea saber en qué archivo se encuentra el sector 2 345 de la unidad C:
? use el comando nfi c: 2345
. Tenga en cuenta que esto falla en volúmenes software-RAID como conjuntos de volúmenes y conjuntos de franjas. NFI funciona tanto en NT 4 como en Windows 2000.
CLAVES OCULTAS DEL REGISTRO WIN9X
Dos problemas atrás dije que trataría el tema de las "claves ocultas del Registro de Win9x" en el siguiente boletín, y varios de ustedes me recordaron que lo había olvidado. Así que este mes les hablaré de las claves ocultas del Registro en Windows 9x.
Hace varios años descubrí una forma de crear claves de Registro ocultas en Windows NT. Por oculto, me refiero a que, aunque puede ver las claves a las que accede la aplicación que las crea con Regmon, no puede escribir un programa Win32 para ver los valores de la clave, ni puede ver las claves con los editores del Registro Regedit o Regedt32. Las claves ocultas son útiles para almacenar datos que no desea que los usuarios finales puedan modificar, como la fecha de caducidad de un producto de prueba.
El truco para crear una clave de Registro oculta fue darme cuenta de que la API nativa de NT, que es la interfaz de llamada al sistema sobre la que se construye la API Win32, requiere que las claves de Registro se especifiquen como cadenas Unicode contadas.
Una cadena Unicode contada es aquella cuya longitud viene indicada por un campo de longitud, no por la presencia de un terminador nulo. Por tanto, utilizando la API nativa puede crear claves de Registro que contengan un carácter nulo, como "test\0test"
. Dado que la API de claves de Registro de Win32 API se basa en cadenas terminadas en cero, no hay forma de abrir una clave de Registro que contenga un terminador nulo utilizando la API Win32. Si intentara pasar el nombre de clave de ejemplo anterior a RegOpenKey
o RegCreateKey
se trataría como "test"
, con la cadena truncada en el carácter nulo. Dado que todos los editores de Registro existentes, incluidos los incluidos en Windows NT y Windows 2000, utilizan la API Win32, una aplicación que utiliza la API nativa para crear nombres con caracteres nulos incrustados crea claves ocultas.
Este método funciona en Windows NT, pero ¿y en Windows 9x? No pensaba que hubiera una forma de hacer claves de Registro ocultas en Windows 9x hasta que alguien me envió por correo electrónico un archivo de registro Regmon que muestra Internet Explorer (IE) accediendo a claves que no aparecen en Regedit. Para comprobarlo, inicie Regmon y establezca el siguiente filtro de inclusión: "policydata". A continuación, inicie IE (esto funciona para todas las versiones de IE 4 e IE 5) y visite un sitio web. Si no ve ningún resultado en Regmon, vaya al cuadro de diálogo de configuración de opciones de IE y asegúrese de que el Asesor de contenidos está activado.
Si el Asesor de contenidos está activado, o lo ha estado alguna vez en su sistema, verá accesos a la HKLM\PolicyDat
una clave y sus subclaves. Sin embargo, no encontrará una clave PolicyData en HKEY_LOCAL_MACHINE
cuando se mira en Regedit. Tómese un minuto y vea si puede averiguar qué está pasando.
La respuesta es que IE carga dinámicamente una colmena del Registro mediante la RegLoadKey
API Win32, lee los valores que necesita, y luego, descarga la colmena con RegUnloadKey
. El archivador se llama C:\Winows\System\Ratings.pol
: El archivo está oculto y es de solo lectura, pero puede revelarlo escribiendo attrib –r –h c:\windows\system\ratings.pol
.
Las trazas que ve en Regmon le muestran la información que el Asesor de contenidos está buscando en la colmena. Si desea explorar su contenido por usted mismo, descargue mi utilidad Regload de www.sysinternals.com/regload.zip y ejecútela con la siguiente sintaxis: regload test c:\windows\system\ratings.pol
. A continuación, abra Regedit y busque HKLM\test
. Los valores que encontrará corresponden a la configuración que especifique en el Asesor de contenidos y están relacionados con el archivo de configuración cuyo nombre figura en el valor Users\FileName0
del archivador. El valor suele apuntar a C:\Windows\System\RSACi.rat
, el archivo de clasificaciones definido por la Asociación de Clasificación de Contenidos de Internet. Por cierto, es posible que vea un valor con el nombre un tanto humorístico de "PleaseMom" en la configuración del Registro del Asesor de contenidos, por ejemplo en HKLM\Test\Users\Default
. Este valor se deriva de la casilla de verificación "El supervisor puede escribir una contraseña para permitir a los usuarios ver contenidos restringidos" de la página General del cuadro de diálogo de configuración del Asesor de contenidos.
La razón por la que Microsoft ocultaría la existencia de estos valores del Registro debería ser obvia. Sin embargo, hay una debilidad bastante grave en su diseño. Tenga en cuenta que al activar el Asesor de contenidos debe especificar una contraseña que proteja el cuadro de diálogo de configuración del Asesor de contenidos. Esta contraseña se almacena en HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Ratings\Key
. Elimine ese valor y, listo, podrá acceder a la configuración del Asesor de contenidos sin necesidad de introducir una contraseña. Ahora bien, si los desarrolladores de IE se tomaron la molestia de ofuscar la configuración del Asesor de contenidos, ¿por qué dejan esta puerta trasera al descubierto? Típico diseño de seguridad de Microsoft, supongo. Por cierto, para descargar la clave que cargó con Regload solo debe escribir regload test
.
PRÓXIMAMENTE
NUEVAS LLAMADAS AL SISTEMA WHISTLER
Whistler es una evolución incremental del sistema operativo Windows 2000 centrada en aumentar la fiabilidad y facilitar la migración de los usuarios desde los sistemas operativos Windows 9x. Sin embargo, incluye algunos cambios en el Kernel. Las más visibles son el puñado de nuevas llamadas al sistema y funciones del núcleo exportadas (disponibles para su uso por los controladores de dispositivos). La próxima vez le daré un avance de estas nuevas API del kernel.
Gracias por leer el boletín de Sysinternals.
Publicado el día jueves 30 de noviembre del año 2 000 a las 7:05 PM por ottoh
[Archivo de boletines ^] [< Volumen 2, Número 4] [Volumen 3, Número 1 >]