viernes, mayo 09, 2008

Un proceso Explorer.exe consume toda la CPU

Recientemente un usuario preguntaba por qué el proceso Explorer.exe de su sistema consumía constantemente entre un 90% y un 100% de CPU. La verdad es que la causa de un problema como este puede ser variadísima, así que le dije que ejecutara en ese sistema Process Explorer para hacer una comprobación más en detalle.

Una de las características destacadas de Process Explorer sobre Administrador de tareas es que permite "descender" a la granularidad de hilo; es decir, permite saber qué hilos ha creado un determinado proceso, qué consumo de CPU tienen y qué funciones están asociadas a los mismos. Para mostrar esta información hay que hacer doble clic sobre el proceso en cuestión y elegir la pestaña Threads (hilos).

Nota: La información mostrada en esa pestaña depende enormemente de si los símbolos para al menos los componentes del sistema operativo están instalados o no.

Desde Process Explorer, menú Options, Configure Symbols, puede agregar la ruta del servidor de símbolos público de Microsoft, a saber: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols



En el caso que nos ocupa, al ordenar la lista de hilos por consumo de CPU, el primer puesto de la lista lo ocupaba una tal función wsil32.dll+0x1000. Esa DLL pertenece a un troyano, que había sorteado todas las medidas de protección que el usuario tenía instaladas en su sistema.

Si algo se puede sacar como conclusión adicional es que realmente un antivirus, por bueno que sea, no va a protegernos del 100% de las amenazas informáticas de hoy día, así que siempre debe prevalecer el sentido común a la hora de navegar por Internet, abrir un correo electrónico o descargar un programa de un sitio de dudosa confianza.


Actualización 25/5/2008: El usuario solucionó su problema analizando el sistema con un antivirus actualizado. Una vez que el sistema esté limpio (o crea que esté limpio), eche un vistazo a la lista generada por el programa Autoruns. Autoruns es una herramienta similar al popular HijackThis, pero mucho más completa. Céntrese en los elementos que no estén firmados digitalmente por Microsoft (en Autoruns abra Options, Hide Microsoft Signed Entries y pulse F5).

7 comentarios:

Anónimo dijo...

Hola Daniel, he estado revisando tu blog y me parece tan pero tan interesante y muy util.
Si no es mucha molestia quisiera contactarme contigo porque tengo un problema algo dificil de explicar por aqui.
Te dejo mi direccion: blue_angel1408@hotmail.com
Espero prontas respuestas tuyas.

Tampopo dijo...

Esto fue hace ya meses, pero sufri de algo similar. A veces la cpu estaba al 100% por explorer.exe. Imaginate la cantidad de FUD que hay contra Windows Vista que al encontrarme con este tema consiguen hacer que te pierdas mucho y casi me logran hacer pensar "Windows es pesado y lo devora todo es lento y malo". No sabia el tema de mirar a ese nivel con esta herramienta.

No esta directamente relacionado pero este fue uno de varios problemas similares. El primero a 6 meses de estar Vista en el mercado resulto ser que los drivers de Nvidia para Nforce (una placa con Nforce 550) se desactivaba la transferencia DMA de la controladora de disco. Asi que imagina el rendimiento que eso me daba.

Aun asi tengo que desactivar Restauracion de Sistema porque tengo la impresion que ha veces me deja el equipo durante periodos de tiempo pillado. Por lo demas va Vista como un cañon y se nota mucho las tecnica de prefetch.

Anónimo dijo...

Hola tengo el mismo problema con el explorer.exe e hice lo del Procces Explorer y me aparece el mismo Troyano del que habla wsil32.dll+0x1000. Pero en su comentario del tema no dice como se soluciono el problema. por favor escribame al cristhor_1@yahoo.com y digame como solucionar el problema

Mauro dijo...

Daniel: Yo expuse mi problema en el servidor de noticias de microsoft de windowsxp.aplicaciones, tu me recomendaste el process explorer, te envié mi respuesta, pero ya no recibí alguna sugerencia. En esa ocasión, el hilo que consumía el 100% era un puerto USB, al suspenderlo, la PC volvía a la normalidad consumiendo un máximo del 3% y todas las operaciones rápidas y sin bloqueos. Probé desinstalarlos y la PC se bloquea, de tanto insistir los logré desinstalar, pero al reiniciar ya los tenía instalados de nuevo y el CPU al 100% por la misma causa. Pregunté entonces ¿Qué pasaría si le doy "Kill" (Eliminarlo), o a lo mejor tu tengas una mejor solución.

Mauro

Daniel Martín dijo...

Hola, Mauro:

Al parecer tu problema con el alto consumo de CPU por parte del proceso System podría deberse a algo relacionado con los puertos USB. Para poderte precisar algo más, necesitaría ver una instantánea del estado de ese sistema. Por ejemplo, sería de mucha utilidad que examinaras el contenido de la pila del hilo afectado. Para ver el contenido de la pila de un hilo, selecciona la pestaña Threads, y haz doble clic sobre el hilo afectado. No olvides configurar Process Explorer para que obtenga los símbolos del servidor de símbolos de Microsoft (como ya te comenté).

¿Podrías comentarme qué versión del fichero Usbport.sys tienes en tu sistema? (Búscalo en la carpeta \system32\drivers).

Lautaro dijo...

Hola Mauro, hoy encontre tu blog y tengo una pequeña consulta. Con el autorun veo una serie de entradas con la descripcion: "file not found". A tu criterio, que deberia hacer?

Unknown dijo...

Hola Daniel, podrias pasarme tu blog? tengo este problmea pero no se como solucionarlo
Rodrigo