Controla el sistema operativo con Windows Sysinternals

La web de Windows Sysinternals es el punto de encuentro de aquellos que quieren entrar en el mundo del control del sistema operativo mediante programas libres, documentos, vídeos, código fuente, etc , ya que ofrece herramientas gratuitas para nuestro sistema

Javier García-Retamero Redondo

Controla el sistema operativo con Windows Sysinternals

18 septiembre 2009

Cerrado en 1996 por Bryce Cogswell y Mark Russinovich, y adquirido diez años después por Microsoft, Sysinternals (http://technet.microsoft.com/es-es/sysinternals/default.aspx) engloba un conjunto de pequeñas herramientas que no necesitan instalación y que aparecen en tres formatos: archivos ejecutables desde la línea de comandos, pequeñas aplicaciones para el entorno Windows y utilidades ejecutables desde Internet. Estos programas amplían la funcionalidad e información de aquellas herramientas que se instalan por defecto con Windows, como pueden ser el administrador de tareas, Microsoft Management Console, etc.

Hay muchísimas herramientas, de modo que, en estas páginas, nos centraremos en algunas de ellas, animándote a que investigues el resto. Puedes encontrar las aplicaciones agrupadas por funcionalidad, así como en paquetes del tipo de sysinternals (el que vamos a utilizar y más completo), pstools, etcétera, los cuales recogen varias de estas utilidades.

Paso 1

Consideraciones previas

En la mayoría de las herramientas que se ejecutan desde la línea de comandos puedes añadir al final /?, de manera que aparezcan las opciones de cada uno de los comandos (por ejemplo, psinfo /?). Algunas aplicaciones gráficas también se pueden ejecutar desde la línea de comandos, pudiendo añadirlas a scripts que automaticen las operaciones (es recomendable que consultes la ayuda en cada una de ellas).

Por su parte, para ejecutar las herramientas desde Internet, abre una ventana de comandos y teclea \\live.sysinternals.com\tools, seguido de la aplicación (tienes el listado de las aplicaciones en http://live.sysinternals.com/tools/). Ten paciencia, ya que puede tardar un tiempo en abrirse.

Finalmente, para ejecutar las aplicaciones desde tu ordenador en local, descarga el paquete SysinternalsSuite desde la dirección http://download.sysinternals.com/Files/SysinternalsSuite.zip. En alguno de los programas, tras un cambio que no se visualice en pantalla, es preciso pulsar F5 para que se actualice.

Paso 2

Componentes con Windows

El software autoruns.exe monitoriza aquellos elementos que carga cada usuario en el sistema. Accede al menú User y selecciona el usuario. En Options puedes ocultar los componentes de Windows. Activa la opción Hide Windows Entries para dedicarte en exclusiva a las entradas que no sean del sistema. Si optas por Verify Code Signatures, verás en la columna Publisher si los componentes están firmados digitalmente.

Autoruns está lleno de pestañas, entre las que podemos destacar Logon (ubicaciones de los programas y de la carpeta de usuario, que se cargan al arrancar el sistema), Internet Explorer (extensiones, objetos de ayuda del navegador, toolbar, etcétera), Scheduled Tasks (tareas programadas), Services (servicios), Drivers (no muestra los controladores deshabilitados), KnownDLLs (localización de las DLLs que carga Windows en cada aplicación).

Para que no se cargue un componente, desactiva la casilla que aparece a su izquierda; para eliminarlo, selecciónalo y sigue la ruta Entry/Delete.

Pulsa con el botón derecho sobre un elemento que se encuentre iniciado (los servicios que se cargan, pestaña Services, suelen estar iniciados) y, en el menú contextual, escoge Process Explorer. Se abrirá el Explorador de Procesos y una ventana adicional con sus propiedades, lo analizaremos en un paso posterior.

Paso 3

Filtra la información

El programa que vamos a utilizar, Process Monitor, sustituye a RegMon y FileMon, los cuales se conservan por compatibilidad con versiones anteriores de Windows. Ejecuta el archivo Procmon.exe para que aparezca una ventana en la cual puedes aplicar filtros. Déjalo como está y pulsa OK.

Te encontrarás con una serie de botones con los que puedes filtrar los elementos que se visualizan: Show registry Activity (operaciones de los procesos en el Registro), Show File System Activity (accesos a los archivos por los procesos, incluso a aquellos compartidos por red), Show Network Activity (actividad a través de TCP y UDP), Show Process and Thread Activity (procesos, creación y destrucción de hilos de ejecución, así como carga de DLLs y drivers) y Show Profiling Events (hilos de ejecución activos; genera un perfil que guarda el tiempo consumido del kernel, de la CPU y el número de cambios de contexto).

Vamos a crear un filtro para ver los componentes relacionados con un determinado proceso y poder analizar todas las acciones que lleva a cabo. Como ejemplo, vamos a crear un filtro que nos muestre las acciones que realiza Word.

Primero, localiza el proceso, buscando en la columna Process Name o en el menú Tools/Process Tree (aparecerá el árbol de procesos). Anota su PID. Pulsa sobre el botón Filter. Elige en los desplegables PID, IS, PID de tu proceso e Include. Pulsa sobre Add y después en OK.

Una forma más rápida de aplicar un filtro consiste en pulsar sobre el botón Include Process from Windows y, sin soltar, pinchar sobre la ventana del programa que tienes abierto. Así, aparecerán los eventos seleccionados con el proceso. Para los siguientes pasos, recuerda eliminar el filtro.

Además de la información sobre la que ya hemos hablado, el programa te muestra la hora en la que el proceso ha realizado la acción (Time of Day), el tipo de operación que ha llevado a cabo (Operation), si ésta ha sido satisfactoria (Result), la ruta del programa que lanzó el proceso (Image Path) y la entrada o archivo que está modificando o al que está accediendo (Path).

Pulsa con el botón derecho del ratón sobre la barra de cabecera y, después, pincha en Select Columns. Elige qué columnas mostrará el programa. Puedes ejecutar Process Monitor desde la línea de comandos y así incluirlo en scripts para monitorizar alguna aplicación.

Paso 4

Propiedades de los eventos

Dentro de Process Monitor, elige un evento y pulsa con el botón derecho del ratón. En el menú contextual, escoge la opción Properties…, para que se abra una ventana con varias pestañas. En concreto, Event (con información sobre el evento), Process (si es un proceso en 32 o 64 bits, el ID del proceso y del padre o la lista de DLLs que utiliza) y Stack (pila de ejecución de hilos correspondiente al evento seleccionado, aparecen con una K aquellos hilos correspondientes al kernel y con U los del usuario).

Paso 5

Sumarios de actividad

En Process Monitor, pincha sobre el botón Show Process and Thread Activity y desmarca el resto. Si accedes al menú Tools/Process Activity Summary, aparecerá información gráfica sobre los procesos que están funcionando en el sistema. Pulsa dos veces sobre alguno de ellos y te encontrarás con una pantalla con gráficos detallados sobre el proceso.

Pulsa sobre Tools/File Summary (deja habilitada solo la opción Show File System Activity) y sobre Tools/Registry Summary (marca solo Show Registry Activity) para acceder a las operaciones realizadas sobre ficheros y el Registro, respectivamente, así como al número de esas operaciones.

Paso 6

Procesos e hilos

Ejecuta Process Explorer (procexp.exe), que muestra los procesos en forma de árbol. En el menú File destacan dos grupos de comandos: los run as…, para ejecutar comandos como un usuario determinado, y los Shutdown, con opciones de apagado.

Entra en el menú Options y activa las opciones Verify Image Signatures, que indica si los procesos están marcados digitalmente, y Replace Task Manager, para que se sustituya el administrador de tareas que viene por defecto con Windows por Process Explorer.

Por su parte, en el menú View, activa Show Processes from All Users, Show Fractional CPU, Show New Processes y Show Lower Panel. Pulsa sobre System Information, de modo que aparezca una ventana con gráficos de consumo de recursos, entre los que destaca el gráfico sobre la actividad de cada núcleo de tu CPU. Si mueves el ratón sobre las gráficas, puedes ver qué proceso es el que ha provocado que varíe.

Entra en Users para realizar operaciones con los usuarios que estén conectados al sistema, por ejemplo, para enviarles mensajes, desconectarlos, etc. Pincha una vez sobre alguno de los procesos. Verás que, en la parte inferior de la ventana, aparecen todas las entradas del Registro, archivos, etcétera (Ctrl + H) o las DLLs (Ctrl + D) a las que tiene acceso el proceso.

Pulsa con el botón derecho del ratón para acceder a operaciones del proceso: matarlo (Kill), matar el árbol (Kill tree), establecer la prioridad (Set Priority), indicar el procesador para que se ejecute (Set Affinity) y acceder a las propiedades (Properties).

Paso 7

El uso de memoria

Vmmap (Vmmap.exe) muestra los distintos tipos de memoria que tiene asignado un proceso. Esto permite analizar la cantidad y tipo de memoria que se está consumiendo, algo muy útil para desarrolladores que quieren controlar la que consumen sus programas. Se puede ejecutar desde la línea de comandos.

Al entrar, el programa nos pedirá que seleccionemos el proceso del cual queremos ver la memoria. Puedes cambiar posteriormente de proceso pulsando Ctrl + P.

Los tipos de memoria aparecen por colores. Entre estos tipos se encuentran: Privada (memoria para la aplicación), Image (archivo ejecutable EXE o DLL almacenado), Shareable (memoria compartida con otros procesos), Mapped File (archivos guardados en disco que suelen almacenar datos del programa), Heaps (memoria controlada por el manejador de pila del modo usuario), Stack (la usada para almacenar aquello relacionado con funciones), System (memoria física del núcleo del sistema asociada al proceso, que suele contener las tablas de paginación del proceso), Free (la libre, que se visualiza desde Options/ Show Free Regions).

Pulsa sobre alguno de estos tipos. Se filtran en la ventana inferior aquellas direcciones de memoria que se están utilizando. Puedes ver el texto que hay en cada posición de memoria. Selecciónala y teclea Ctrl + T. En Virtual Memory Summary Graph se encuentra la memoria virtual mientras que en Working Set Summary Graph está la física, ambas empleadas por el proceso.

Paso 8

La seguridad

Si ejecutas AccessEnum.exe, puedes visualizar quién y qué tipo de acceso se encuentran en cada directorio, archivos y entradas en el Registro. Es útil para comprobar posibles agujeros de seguridad en nuestro sistema. Selecciona el directorio (Directory) o la entrada del Registro (Registry) y pulsa el botón Scan. En la ventana, puedes ver las columnas Read, Write y Deny, y dentro de cada una los usuarios que gozan de esos permisos.

Paso 9

Entrada/Salida

En este repaso, no podemos olvidarnos de dos programas que destacan sobre el resto: Disk monitor (Diskmon.exe), que muestra la hora de acceso, duración, disco, tipo de acceso, el sector, etcétera, de cada una de las operaciones que se llevan a cabo en los discos; y PageDefrag (pagedfrg.exe), que desfragmenta aquellos archivos del sistema que no pueden desfragmentarse porque se encuentran en uso.

PageDefrag analiza esos archivos y nos muestra el número de fragmentos. Marca la opción Defragment at next boot para que se realice una defragmentación la próxima vez que arranque el sistema. Activa Defragment every boot y esta tarea se llevará a cabo cada vez que entres a Windows (puede ralentizar la carga del mismo).

Paso 10

La red

El programa whois.exe te muestra información detallada de un dominio. Para ello, escribe whois seguido de la dirección web; por ejemplo, whois www.pc-actual.com. Si quieres ver qué programas tienes en el ordenador que estén escuchando llamadas a través de los protocolos TCP o UDP, utiliza el programa Tcpview.exe.

Temas Relacionados