Compartir a través de


[Archivo de boletines ^] [< Volumen 2, Número 3] [Volumen 2, Número 5 >]

Boletín de información interna de sistemas Volumen 2, Número 4

www.sysinternals.com
Copyright © 2000 Mark Russinovich


30 de agosto de 2000: En este problema:

  1. EDITORIAL

  2. NOVEDADES DE SYSINTERNALS

    • ListDlls v2.23
    • HANDLEEX v2.26
    • ElogList v2.02
    • LoggedOn v1.1
    • Bluescreen v2.21
    • PageDefrag v2.01
    • LoadOrder v1.1
    • ClockRes v1.0
    • BgInfo v1.0
    • Dentro de Windows 2000, 3.ª Ed.
    • Sysinternals en Microsoft
  3. INFORMACIÓN INTERNA

    • Potencia del privilegio de depuración
    • ¿Qué novedades hay en API en Win2K SP1?
    • WinDev 2000 West
  4. PRÓXIMAMENTE

    • Tokenmon

COPATROCINADOR: 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 de 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.

Winternals Software's ERD Commander 2000 es la última versión de su galardonada línea de productos ERD Commander. Las nuevas características de ERD Commander 2000, incluidos los editores de archivos y registro integrados, lo convierten en la herramienta de recuperación de Windows NT y Windows 2000 más avanzada que existe. Puede instalar ERD Commander 2000 en disquetes, un CD-ROM e incluso el disco duro de un sistema para el acceso rápido, y su asistente para instalación hace que agregar SCSI de terceros y otros controladores de almacenamiento masivo sea sencillo. ERD Commander 2000 vale 349 dólares, o solo 49 dólares para los propietarios de ERD Commander Professional existentes. Obtenga más información y descargue la versión de prueba en www.winternals.com/products/erdcommander2000.shtml.

COPATROCINADOR: WINDOWS 2000 MAGAZINE

Windows 2000 Magazine contiene soluciones prácticas para las personas que trabajan con Windows NT/2000 todos los días. Pida un problema de muestra gratuito ahora y sin riesgo. Si decide continuar con la suscripción, recibirá 13 problemas más al 40 % del precio de newsstand. Suscríbase hoy en: http://www.win2000mag.com/sub.cfm?code=fs00inhs13

Hola a todos:

Bienvenido al boletín de Sysinternals. El boletín tiene actualmente 25.000 suscriptores.

Paso mucho tiempo en Regmon, Filemon y DebugView, herramientas que Bryce y yo hemos desarrollado en Sysinternals. Regmon es un monitor de acceso al registro (www.sysinternals.com/regmon.htm), Filemon es un monitor de acceso a archivos (www.sysinternals.com/filemon.htm) y DebugView es un monitor de depuración-salida (www.sysinternals.com/dbgview.htm). En ocasiones, me encuentro una aplicación o controlador de dispositivo instalado en uno de mis diversos sistemas que genera actividad continua visible en una de estas herramientas. No estoy hablando de actividad necesaria, sino de las acciones que realiza el software de tipo repetitivo y la evaluación de la salida revela que el software usa una técnica de sondeo donde es posible usar algún otro mecanismo menos intrusivo.

Por ejemplo, varios escáneres de virus comerciales consultan su archivo de firma de virus varias veces por segundo para ver si se ha actualizado. Uno de mis sistemas tiene un controlador de impresora de un fabricante de impresoras conocido que genera continuamente instrucciones de depuración que, a través de su inclusión de la palabra "sondeo", informan de que sondean. En uno de mis ejemplos favoritos, una utilidad anunciada como mejorar el rendimiento del sistema de un importante proveedor de servicios consulta varias de las claves del registro del proveedor varias veces por segundo. Un ejemplo de otro tipo de codificación descuidada está en un adaptador de red de un proveedor de red conocido que incluye un componente de software en modo de usuario que contiene puntos de interrupción de depuración incrustados que se ejecutan continuamente mientras se ejecuta el software. Si una aplicación necesita detectar un cambio en el archivo, puede solicitar una notificación de cambio de directorio. De forma similar, si necesita detectar cambios en una clave del registro, puede solicitar una notificación de cambio de clave y el software comercial nunca debe contener puntos de interrupción de depuración o salida de depuración habilitados de forma predeterminada.

Sin embargo, quizás el ejemplo más escandaloso es el servicio de programa de Microsoft Windows Media que viene incluido con Windows 2000 Server (\Winnt\System32\Windows Media\Server\Npsm.exe): lee los primeros 2 KB de \Winnt\System32\Windows Media\Server\ASDB\mdsas.mdb a la velocidad de aproximadamente 60 veces por segundo en un sistema en el que, de lo contrario, no hay ninguna actividad (incluido ningún servicio multimedia). No hay excusa para que ocurra esto, especialmente porque esto puede afectar negativamente al rendimiento general del servidor.

Estoy seguro de que si ha usado Regmon, Filemon o DebugView durante cualquier período de tiempo que probablemente haya encontrado ejemplos similares. Cuando vea uno, no solo establezca un filtro y olvídese de él, envíe un correo electrónico al proveedor para quejarse de su programación descuidada.

Por favor, pase el boletín de noticias a los amigos que cree que podrían estar interesados en su contenido.

Gracias

-Mark

NOVEDADES DE SYSINTERNALS

LISTDLLS V2.23

ListDLLs es una utilidad de línea de comandos que muestra información detallada sobre los archivos DLL que los procesos han cargado. Por ejemplo, ListDLL muestra la dirección de memoria base, el tamaño, la versión y la ruta de acceso completa de cada DLL. Esta nueva versión muestra la línea de comandos que se usó para iniciar un proceso, incluidos los parámetros que se indicaron en la línea de comandos. Esto puede ayudarle a distinguir entre varios procesos y solucionar problemas relacionados con opciones de línea de comandos específicas.

Descargue ListDLLs v2.23 en www.sysinternals.com/listdlls.htm.

HANDLEEX V2.26

HandleEx es una aplicación que presenta información sobre qué identificadores y procesos DLL están abiertos o cargados. Su pantalla consta de dos ventanas secundarias. La parte superior siempre muestra una lista de los procesos activos actualmente, incluidos los nombres de sus cuentas propietarias, mientras que la información que se muestra en la ventana inferior depende del modo en que HandleEx está: si HandleEx está en modo de control, verá los identificadores que el proceso seleccionado en la ventana superior ha abierto; Si está en modo DLL, verá los archivos DLL y los archivos asignados a memoria que el proceso ha cargado.

La versión más reciente de HandleEx incluye varias características nuevas. En primer lugar, al igual que ListDLLs, ahora muestra la línea de comandos que se usó para iniciar un proceso al ver las propiedades del proceso.

Una de las deficiencias de HandleEx antes de esta versión era que, aunque mostraba el nombre de la cuenta en la que se ejecutaban procesos del sistema y procesos de la sesión de inicio de sesión, no era capaz de eludir el modelo de seguridad de Windows NT/2000 para mostrar al propietario de los procesos iniciados desde otras cuentas de usuario (el programa Pview de los Kits de recursos de Windows NT/2000 también sufre esta limitación). Esto era muy evidente en los entornos Nt 4 Terminal Server y Windows 2000 Terminal Services, donde HandleEx indicó que los procesos iniciados desde otras sesiones de usuario tenían propietarios desconocidos. HandleEx v2.26 implementa un truco para que pueda determinar la cuenta propietaria de todos los procesos, sin excepción, lo que hace que sea una herramienta ideal para entornos de Terminal Services.

La última nueva característica de HandleEx v2.26 le permite forzar el cierre de cualquier controlador abierto. He agregado esta característica después de recibir muchas solicitudes. No obstante, se recomienda usarlo con extrema precaución, ya que las aplicaciones generalmente no se escriben para esperar que los identificadores no sean válidos de repente, y las aplicaciones con identificadores cerrados forzados pueden comportarse erráticamente o bloquearse como resultado.

Descargue HandleEx v2.26 en www.sysinternals.com/handleex.htm.

ELOGLIST V2.02

El kit de recursos de Windows 2000 incluye una herramienta denominada ELogDmp que permite volcar registros desde un registro de eventos en el equipo local o remoto. ELogList tiene más potencia que ElogDmp porque también le permite especificar un nombre de cuenta y una contraseña opcionales para que pueda acceder a los registros de eventos de un equipo desde una cuenta diferente a la de la que ejecuta la herramienta. Además, mientras que la herramienta ElogDmp muestra entradas de registro de eventos en su formato sin procesar, lo que dificulta la interpretación de la salida, esta actualización ElogList da formato a entradas del registro de eventos para mostrar texto tal como aparece en los Visores de eventos de Windows NT/2000. Incluso cuando se muestran registros de eventos desde sistemas remotos, ElogList usa los archivos de mensaje correctos en el sistema remoto para sus datos de cadena de formato.

Descargue ElogList v2.02 en www.sysinternals.com/eloglist.htm.

LOGGEDON V1.1

LoggedOn es un applet de línea de comandos que indica quién ha iniciado sesión en un equipo determinado, ya sea localmente o a través de recursos compartidos de recursos. La actualización de la versión 1.1 le permite buscar en la red las sesiones de inicio de sesión asociadas a un usuario determinado. Esta característica es útil en situaciones en las que desea hacer actualizaciones en una cuenta de usuario y debe comprobar que el usuario no tiene la sesión iniciada.

Descargue LoggedOn v1.1 con código fuente completo en www.sysinternals.com/misc.htm.

BLUESCREEN V2.21

La mayoría de ustedes están, sin duda, familiarizados con el famoso protector de pantalla de Pantalla azul de Sysinternals, que representa con precisión el bloqueo y el reinicio de Windows NT o Windows 2000. Desde su versión inicial he recibido continuamente solicitudes de usuarios de Windows 9x que quieren ejecutar el protector de pantalla en sus equipos, por lo que finalmente lo he migrado a Windows 9x. En Windows 9x, simula un bloqueo y reinicio de Windows 2000.

El único requisito para usar el protector de pantalla de pantalla azul Sysintenals en Windows 9x es que se debe tener una copia de un archivo de Windows 2000 Ntoskrnl.exe para colocar en el directorio \Windows\System: La pantalla azul requiere el archivo para la pantalla de presentación de Windows 2000.

Ahora puede confundir realmente a los usuarios de Windows 9x que vuelven a su equipo solo para descubrir que está bloqueado en un bloqueo de Windows 2000 y un ciclo de reinicio.

Descargue Bluescreen Screen Saver v2.21 en www.sysinternals.com/bluescreen.htm.

PAGEDEFRAG V2.01

PageDefrag es una utilidad de desfragmentación que se ejecuta en tiempo de arranque para desfragmentar los archivos de paginación del sistema y los subárboles del registro. PageDefrag fue la primera utilidad capaz de desfragmentar los subárboles del registro, pero desde su lanzamiento esa funcionalidad se ha agregado a varios desfragmentadores comerciales. Sin embargo, PageDefrag sigue siendo gratuito y la versión 2.01 funciona en Windows 2000, así como en Windows NT 4.

Si está interesado en la interfaz de desfragmentación proporcionada por Windows NT 4 y Windows 2000, puede obtener información sobre ella y descargar código fuente en un desfragmentador de archivos interactivo en www.sysinternals.com/defrag.htm. Sysinternals documentó la interfaz de desfragmentación años antes de que Microsoft la incluyera en el SDK de plataforma, y varios desfragmentadores comerciales usaron nuestra documentación y código de ejemplo.

Descargue PageDefrag v2.01 en www.sysinternals.com/pagedfrg.htm. Vea la documentación de la interfaz de desfragmentación en www.sysinternals.com/defrag.htm.

LOADORDER V1.1

¿Alguna vez se ha preguntado en qué orden se cargan y se inicializan los controladores de dispositivos y los servicios? Ahora puede averiguarlo fácilmente. LoadOrder es una utilidad que procesa la información en HKLM\System\CurrentControlSet\Services para crear una imagen del controlador y el orden de carga del servicio.

Descargue LoadOrder v1.1 en www.sysinternals.com/misc.htm.

CLOCKRES V1.0

En mis artículos sobre el programador he hablado del hecho de que la cuantita de subprocesos de Windows NT/2000 (la longitud del turno de un subproceso para ejecutarse en una CPU) se basa en la resolución del reloj del sistema. La resolución del reloj también afecta a la latencia de los eventos basados en el temporizador de Windows. En el artículo de www.sysinternals.com/timer.htm incluso se describe la forma en que las aplicaciones pueden manipular la resolución del reloj. En la mayoría de los SMP, la resolución es de 15 ms y, en los uniprocesadores es de 10 ms, los valores establecidos por los SMP estándar y las HBA del uniprocesador (capa de abstracción de hardware).

Aunque la mayoría de los sistemas usan los valores comunes enumerados anteriormente, ¿cómo puede determinar la resolución real del reloj en los equipos? La respuesta se encuentra en la API GetSystemTimeAdjustment Win32, que indica si el sistema está aplicando un ajuste periódico al reloj de hora del día. También cabe destacar que esta API también devuelve el intervalo del reloj. El applet de ClockRes usa la API para indicarle la resolución del reloj de un sistema.

Descargue ClockRes más el origen en www.sysinternals.com/misc.htm.

BGINFO V1.0

Si es administrador encargado de varios servidores, probablemente dedique una cantidad significativa de tiempo a abrir varios cuadros de diálogo de información para reviar los valores de varias propiedades del sistema, como la versión instalada del Service Pack, las direcciones IP, el nombre del equipo, el tamaño de memoria y la velocidad del procesador. Ahora puede tener toda esta información en vista sin formato en el escritorio de cada servidor mediante la utilidad BgInfo que Bryce desarrolló.

Al ejecutarlo, BgInfo crea un fondo de escritorio que informa automáticamente de una variedad de características útiles del sistema. Puede colocar BgInfo en la carpeta Inicio para que la información esté disponible cada vez que inicie sesión, y puede modificar los datos que muestra BgInfo, incluso agregando los suyos propios. Con BgInfo instalado en los servidores, ahorrará el tiempo que pasó repetidamente buscando que se olvida fácilmente.

Descargue BgInfo v1.0 en www.sysinternals.com/bginfo.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.

Consulte el índice del libro y solicítelo ahora a través de www.sysinternals.com/insidew2k.htm.

SYSINTERNALS EN WWW.MICROSOFT.COM

No tengo ningún nuevo artículo de KB que haga referencia a Sysinternals para informar, pero Microsoft ha agregado algunos vínculos bastante altos a Sysinternals en la parte de TechNet de su sitio. La primera está en la columna "Preguntarnos acerca de... Seguridad" en www.microsoft.com/TechNet/security/au022800.asp, donde el columnista Joel Scambray advierte a los lectores que NTFSDOS (www.sysinternals.com/ntfspro.htm) puede ser utilizados por usuarios con malas intenciones para modificar el contenido de un Controlador de dominio de Windows 2000 Active Directory.

La segunda referencia está en la columna "Dentro de Microsoft" en www.microsoft.com/technet/inside/default.asp. La columna es de estilo QA (Preguntas frecuentes) y comienza con dos preguntas relacionadas con la determinación de qué aplicación tiene abierto un archivo determinado. En el curso de la respuesta, donde se da información a los lectores sobre HandleEx (www.sysinternals.com/handleex.htm) y NtHandle (www.sysinternals.com/nthandle.htm), el autor del artículo (el "Mole") indica esto sobre Sysinternals: "Hay una BARBARIDAD de utilidades que no le costarán un céntimo. Incluso el Mole hace referencia a Sysinternals de vez en cuando (¿Qué? Se pensaba que Mole tiene toda esta información en la cabeza?). Una vez más, aquí es donde te va a enviar." Esto es lo más parecido a una aprobación oficial del sitio por parte de Microsoft que podemos esperar.

INFORMACIÓN INTERNA

POTENCIA DEL PRIVILEGIO DE DEPURACIÓN

A diferencia de otros monitores de salida de depuración, incluido dbmon, mi monitor depuración-salida DebugView (www.sysinternals.com/dbgview.htm) requiere privilegios de administrador local para ejecutarse, ya que instala un controlador de dispositivo que captura la salida de depuración en modo kernel. Como resultado, he recibido docenas de correos electrónicos de los desarrolladores que se quejan de que su equipo directivo no les da privilegios de administrador local, solo el privilegio Depurar. El argumento es que el privilegio Depurar está ahí por un motivo, y es todo lo que los desarrolladores de aplicaciones necesitan desarrollar. Estos desarrolladores me piden que cambie DebugView para que solo instale el controlador si el usuario tiene privilegios de administrador y, de lo contrario, simplemente recopile la salida de depuración de Win32.

Estas solicitudes siempre me hacen reír, porque lo que la administración que hace que el argumento Debug-privilege no se dé cuenta es que este privilegio abre la puerta a los privilegios de administrador local. Con el privilegio Depurar, un desarrollador puede tener un depurador asociado al proceso de autoridad de seguridad local (LSASS) y manipularlo para concederles privilegios de administrador local en su siguiente inicio de sesión. O bien, pueden insertar código en cualquier proceso que se ejecute en la cuenta del sistema que agregaría su cuenta al grupo de administradores locales. Cuando lo explico a los desarrolladores que se quejan a veces responden que su equipo de directivo no se cree la explicación. Hasta ahora, no he tenido nada para que puedan responderle a su equipo directivo, pero una erupción reciente de tales correos electrónicos ha hecho que tome medidas.

LogonEx, una utilidad que puede descargar en www.sysinternals.com/logonex.zip, muestra gráficamente la potencia del privilegio Depurar. LogonEx funciona en Windows NT y Windows 2000. Para mostrarla mejor, cree una cuenta que sea una cuenta de usuario normal, excepto con el privilegio "Depurar programas". Cierre sesión e inicie sesión en esa cuenta y ejecute LogonEx. Necesitará los archivos de símbolos para msv1_0.dll para la instalación concreta (los desarrolladores suelen tener instalados símbolos del sistema), que LogonEx usa para buscar el punto de entrada de la función MsvpPasswordValidate y aplicarle revisiones. Después de que LogonEx haga su revisión, podrá iniciar sesión en el sistema mediante cualquier cuenta sin especificar una contraseña. Complete la demostración iniciando sesión como administrador y agregando la cuenta que creó al grupo de administradores locales.

LogonEx es solo un ejemplo de cómo el privilegio Depurar permite a un desarrollador tomar el control de un sistema, pero hay muchos otros. Espero que LogonEx convenza al equipo directivo de que no tiene sentido no conceder privilegios de administrador local a los desarrolladores (tenga en cuenta, sin embargo, que no estoy hablando de privilegios de administrador de dominio, que es otra historia: un administrador local solo tiene el control sobre su propio equipo, no en ningún otro, mientras que un administrador de dominio tiene el control de la red).

¿QUÉ NOVEDADES HAY EN API EN Win2K SP1?

Después de que muchos usuarios encontraran problemas con los paquetes de servicio NT 4 (SP) que provocaban errores nuevos, Microsoft adoptó una directiva de no incluir ninguna nueva funcionalidad en un SP para minimizar la posibilidad de que surgieran nuevos problemas al corregir los antiguos. O eso pensábamos. Windows 2000 SP 1 se publicó recientemente y parecía no tener ninguna nueva funcionalidad. Sin embargo, una inspección detallada de Ntoskrnl.exe, el archivo que contiene los componentes ejecutivos y kernel de Windows 2000, y Ntdll.dll, la biblioteca que contiene la API nativa y el cargador, revela que una nueva API ya estaba presente en SP 1.

La nueva API consta de las siguientes funciones:

   RtlTraceDatabaseAdd
   RtlTraceDatabaseCreate
   RtlTraceDatabaseDestroy
   RtlTraceDatabaseEnumerate
   RtlTraceDatabaseFind
   RtlTraceDatabaseLock
   RtlTraceDatabaseUnlock
   RtlTraceDatabaseValidate

Los nombres de las funciones son bastante descriptivos, por lo que es claramente una API para registrar eventos. Un aspecto interesante de la API es que su implementación se duplica en Ntdll y Ntoskrnl esto es diferente de otras API Ntdll que llaman a los servicios de una implementación en Ntoskrnl.

El examen de la implementación de la API muestra que se usa de la siguiente manera: una aplicación crea una base de datos de seguimiento, que se almacena en la memoria virtual de la aplicación y agrega entradas a la base de datos. En algún momento, la aplicación puede enumerar el contenido de la base de datos y, cuando termine con la base de datos, la elimina. Curiosamente, no parece haber una manera de eliminar entradas de base de datos.

¿Para qué se puede usar esta nueva API? Para nada que tenga instalado en mi instalación bastante completa de Windows 2000 Advanced Server, por lo que no está claro qué función hace. Quizás se trata de una API de depuración que se incluyó accidentalmente en el código de versión de SP 1.

Publicado el miércoles, 30 de enero de 2000, 19:07 por ottoh

[Archivo de boletines ^] [< Volumen 2, Número 3] [Volumen 2, Número 5 >]