Friday, August 29, 2008

¿Para qué sirve rundll32.exe?

Cualquiera que haya mirado los procesos que corren en un momento dado en el administrador de tareas de Windows habrá notado que hay un programa que aparece muchas veces: rundll32.exe. En esta nota se explica por qué aparece tantas veces y cómo se distingue la ejecución normal de este programa de la ejecución de espías y “malware” en general.

Dado que no puede ejecutarse directamente un programa compilado como DLL (dynamic link library, o biblioteca de vinculación dinámica), se utiliza el programa rundll32.exe para lanzar funciones almacenadas en archivos dll compartidos. Este ejecutable es una parte válida de Windows, y en general no hay por qué considerarlo una amenaza.

Nótese que el proceso válido está normalmente ubicado en \Windows\System32\rundll32.exe, pero ocasionalmente los programas spyware usan el mismo nombre de archivo (rundll32.exe) y corren desde una ubicación diferente para disfrazarse a sí mismos.

Usando el Administrador de tareas de Windows Vista
Una característica interesante del Administrador de tareas de Windows Vista es la posibilidad de ver la línea de comando completa para cualquier aplicación en ejecución. Accediendo al menú Ver – Seleccionar columnas… se podrá encontrar la opción Línea de comando, la cual al activarse agrega una columna en la lista de procesos que permite ver la línea de comando que se usó para lanzar cualquiera de los procesos.

Con la mencionada herramienta, es posible determinar, en cada caso donde aparece el programa rundll32.exe, si se ejecutó desde la carpeta System32 de Windows y qué DLL se le pasó como parámetro para que ejecute. Luego puede explorarse la carpeta donde se encuentra la DLL en cuestión, y al pasar por encima de la misma con el mouse, se podrán ver varios detalles del archivo, como por ejemplo la descripción del mismo y la empresa que lo desarrolló.

Una vez que se conocen las características de una DLL en particular, se puede determinar si se desea inhabilitarla o no. Si no se cuenta con información suficiente, conviene recurrir a algún foro en Internet para determinar la utilidad de la DLL.

Usando el Explorador de procesos en Vista o XP
En lugar de usar el administrador de tareas, puede usarse la herramienta freeware Explorador de procesos, de Microsoft, para ver qué está sucediendo con una DLL en particular. Dicha herramienta puede usarse tanto en Windows Vista como en Windows XP.

Al ejecutar el Explorador de procesos en Windows Vista, se puede recurrir a la opción Arhivo – Mostrar detalles de todos los procesos para obtener una vista panorámica de todos los procesos en ejecución y sus subprocesos.

Inhabilitando procesos
Dependiendo de qué sea un proceso en particular, es probable que no se desee necesariamente inhabilitarlo, pero si fuera necesario hacerlo, puede escribirse msconfig.exe en el recuadro de búsqueda del menú Inicio de Vista y buscarlo en la columna Comando, la cual debería mostrar lo mismo que antes se vio en el Administrador de tareas o en el Explorador de procesos. Simplemente se debe desmarcar el recuadro adjunto para evitar que el proceso se ejecute automáticamente.

En algunas ocasiones un proceso no tiene un ítem de inicio automático, en cuyo caso deberá investigarse más profundamente para ver cómo se está iniciando. Por ejemplo, si se accede a la opción de Propiedades de pantalla del Panel de control de Windows XP, se verá aparecer una instancia nueva de rundll32.exe en la lista de procesos en ejecución, debido a que Windows internamente usa rundll32 para ejecutar esa ventana de propiedades.

4 comments:

Anonymous said...

Gracias por la explicación del proceso, me ha sido de gran ayuda el artículo.

Martin said...

De nada Luis, me alegra que le sirviera a alguien mas la información.

Unknown said...

Muy interesante el articulo, tengo una pregunta, actualmene uso windows vista ultimate x64, y en el administrador de procesos me esta registrando dos procesos con el nombre de rundll32.exe, uno de ellos aparece, su descripcion como host de procesos de windows tambien le aparece la ruta esta alojado en system32, pero el otro no me deja cerrarlo ni ver donde esta alojado. puede ser virus? como puedo saberlo? gracias espero tu respuesta.

Martin said...

Franco, esta bien que tengas 2 procesos corriendo en simultaneo, por lo que tengo entendido se corresponden a la placa de vídeo, pero si el mismo no esta ubicado en "\Windows\System32\rundll32.exe" puede ser un spyware que hace uso del nombre del archivo. Esto lo podes verificar con el administrador de tareas, fíjate de ver la ruta a donde hace referencia cada uno de los procesos.

Espero que haya servido de algo mi explicación.