Que faire lorsque le processus Rundll32 accapare le processeur et la mémoire, est chargé au démarrage de Windows ou ne répond pas. Quelle est la nature du problème et comment le résoudre.
Rundll32 est l’un des composants Windows présents dans le système d’exploitation de Microsoft depuis des années : introduit à l’époque de Windows 95, il a été conservé pendant des années, à tel point que Windows 10 et Windows 11 l’utilisent encore aujourd’hui.
Rundll32 est conçu pour charger et appeler des fonctions dans les bibliothèques DLL, fournissant ainsi une interface entre le système d’exploitation et les bibliothèques partagées. Son nom est une combinaison de « Run » (exécuter) et de « Dynamic Link Library » (bibliothèque de liens dynamiques), indiquant son rôle dans le chargement et l’exécution du code contenu dans les DLL.
Les DLL de Windows sont des bibliothèques partagées qui contiennent du code et des données : elles peuvent être utilisées par plusieurs programmes en même temps pour activer des fonctionnalités spécifiques. Les DLL sont conçues pour promouvoir la modularité et la réutilisation du code en permettant à différentes applications de partager un code commun sans avoir à le dupliquer dans chaque programme. Pour ce faire, il est possible de vérifier combien de fichiers DLL sont contenus dans le dossier système de Windows (généralement \windows\system32).
Malgré son nom, Rundll32 – qui est un fichier exécutable stocké dans le dossier système de Windows sous le nom de rundll32.exe – peut être utilisé pour charger des DLL 32 bits et 64 bits. En réalité, il existe deux versions de rundll32 sur un système Windows 64 bits : l’une dans le répertoire system32 et l’autre dans SysWOW64 : les utilisateurs ne sont de toute façon pas intéressés par l’existence de ces deux versions ; ils s’attendent simplement à ce que les bibliothèques nécessaires à l’exécution d’un programme soient correctement chargées (et que les fonctions qu’elles contiennent soient exécutées si nécessaire).
Rundll32 utilise trop de mémoire CPU et RAM
L’exécutable Rundll32 ne semble pas avoir une très bonne réputation : il suffit de faire une recherche sur le Web pour se rendre compte du nombre d’utilisateurs qui signalent des problèmes à son sujet. Parmi les plaintes les plus fréquentes, on trouve une forte occupation du CPU par Rundll32 ou une consommation excessive de la mémoire RAM disponible sur le système utilisé. Pour s’en rendre compte, il suffit d’ouvrir le gestionnaire des tâches (ce qui peut se faire rapidement en utilisant la combinaison de touches CTRL+SHIFT+ESC), de cliquer sur l’onglet Détails puis sur l’en-tête de la colonne CPU jusqu’à ce que la flèche pointe vers le bas.
Si le processus Rundll32.exe se trouve en tête de liste, cela signifie qu’il mobilise le processeur de manière significative en prenant des ressources précieuses au système d’exploitation et aux applications en cours d’exécution.
Le fait que Rundll32, par exemple, occupe en permanence plus de 20-25% du processeur est déjà une indication d’un problème qui se répercute sur les performances globales de l’ordinateur : il est plus lent, moins vif, il a tendance à chauffer, les ventilateurs de dissipation de chaleur restent actifs, etc.
Malgré son nom, qui rappelle des temps révolus et la course aux 8, 16, 32, 64 bits, Rundll32 est aussi activement utilisé dans les versions plus récentes de Windows, et de nombreuses applications s’en servent pour charger des DLL.
L’idée d’écrire cet article nous est venue d’un lecteur qui se plaignait d’un système Windows 11 en constante congélation sans comprendre la raison du problème. En examinant le contenu de l’onglet Détails du gestionnaire des tâches, il s’est avéré que le processus Rundll32 occupait le processeur de manière excessive, mais il n’a pas été possible d’en trouver le responsable.
Nous avons suggéré de télécharger et d’exécuter l’utilitaire gratuit Process Explorer, déjà développé par Mark Russinovich avant qu’il ne rejoigne les rangs de Microsoft (et maintenant mis à jour par le même ingénieur logiciel qui est devenu plus tard directeur technique d’Azure). En double-cliquant sur le fichier procexp64.exe, il est possible de lancer Process Explorer sur les systèmes Windows 64 bits, mais il est tout de même indispensable d’attribuer des droits d’administration au programme.
Pour ce faire rapidement, il suffit de cliquer sur le menu Fichier puis sur Afficher les détails de tous les processus : en répondant Oui à l’invite de l’UAC, et en faisant un clic droit sur l’instance de Rundll32.exe qui occupe anormalement les ressources disponibles sur le système local puis en choisissant Propriétés, on se retrouve face à un écran similaire à celui de la figure.
Il est conseillé de vérifier le contenu du champ Ligne de commande : contrairement au gestionnaire des tâches de Windows, vous pouvez ici vérifier la commande exacte qui a été utilisée pour invoquer Rundll32. Le contenu à droite de rundll32.exe devrait normalement fournir un indice sans ambiguïté quant au logiciel et à la DLL qui posent un problème.
Il ne s’agit pas de « tuer » Rundll32, qui est un composant légitime du système, mais de déterminer quelle application l’utilise de manière incorrecte. L’application en question peut être chargée au démarrage de Windows, lancée via le planificateur ou exécutée manuellement par l’utilisateur ou par un autre programme.
Dans un autre article, nous avons examiné les différents outils qui peuvent être utilisés pour exécuter automatiquement un programme au démarrage de Windows.
Dans la plupart des cas, pour résoudre le problème de Rundll32, vous pouvez soit supprimer l’application qui utilise la bibliothèque DLL indiquée dans le champ Ligne de commande, soit mettre à jour le programme vers une version plus récente.
Rundll32 est chargé au démarrage ou ne répond pas
Le fait que Rundll32 soit exécuté au démarrage de Windows n’est pas en soi un problème : il arrive souvent que certaines applications installées configurent le chargement d’une bibliothèque DLL au moment du chargement du bureau, immédiatement après la connexion. Cela devient un problème si Rundll32 affiche le comportement anormal décrit au point précédent ou si un message d’erreur indiquant qu’il ne répond pas s’affiche.
À l’aide d’un logiciel tel que Autoruns, il est possible de déterminer les applications qui s’exécutent automatiquement, c’est-à-dire celles qui sont chargées au démarrage de Windows, et de détecter toutes les occurrences de Rundll32 créées par des programmes qui ont été chargés sur le système. Pour faciliter la recherche, il suffit de taper rundll32 dans le champ Filtre d’Autoruns (situé en haut de l’interface).
Rundll32.exe, en outre, étant un exécutable avec la signature numérique de Microsoft, est souvent utilisé par les cybercriminels comme proxy pour exécuter du code malveillant. Comme l’expliquent magnifiquement les chercheurs de Cybereason, Rundll32 a historiquement pu bénéficier d’une certaine « liberté d’action » : l’exécutable peut ainsi être exploité pour contourner certaines protections telles que AppLocker et Software Restriction Policies (SRP) ainsi que pour vider des identifiants en mémoire, gérés par le processus LSASS (Local Security Authority Subsystem Service).
Rundll32 est donc un « observateur spécial » dont le comportement doit être immédiatement vérifié lorsque des anomalies sont détectées à l’aide du gestionnaire de tâches et de l’explorateur de processus.