A Deep Dive Into RUNDLL32.EXE
![]()
When threat hunting malware one of the key skills to have is an understanding of the platform and the OS. To make the distinction between the good and the bad one has to know what’s good first.
On windows this can be a little tricky to achieve because of the complexity of the OS (after all it’s a 30+ years’ operating system).
Knowing this fact, malware authors write their malware to mimic normal windows processes. So you’ll see malware disguising itself as an “svchost.exe”, “rundll32.exe” or “lsass.exe” process, exploiting the fact that the majority of people using windows don’t know how these system processes behave in normal conditions.
Last time we’ve talked about the “svchost.exe” process and its command line options.
Demystifying the “SVCHOST.EXE” Process and Its Command Line Options
Understanding the “svchost.exe” process and its command line options
Today however we’ll be taking a look at “rundll32.exe” and understanding a little bit more about it.
RUNDLL32.EXE
As the name suggest, the “rundll32.exe” executable is used to “RUN DLL’s” or Dynamic Link Libraries (Below is the definition of a DLL from MSDN).
A dynamic-link library (DLL) is a module that contains functions and data that can be used by another module (application or DLL) — MSDN
The most basic syntax for using “rundll32.exe” is the following.
The “rundll32.exe” executable can be a child or a parent process, it all depend on the context of the execution. And to determine if an instance of “rundll32.exe” is malicious or not we need to take a look at a couple of things. First is the path from which its being launched and second is its command line.
The valid “RUNDLL32.EXE” process is always located at:
As for the command line of a “rundll32.exe” instance it all depends on what’s being launched whether be it a CPL file, a DLL install…etc.
For this let’s take a look at a couple of examples.
Running a DLL
In its basic form, “rundll32.exe” will just execute a DLL, so the first thing to check when seeing an instance of “rundll32.exe” is the legitimacy of the DLL being called.
Always check the location from where the DLL is called, for example kernel32.dll being called from %temp% is obviously malicious. And as a side note always check the hash on sites like VT.
SHELL32.DLL — “OpenAs_RunDLL”
“rundll32.exe” can also execute specific functions in DLL’s. For example, when selecting a file and performing a right click on it, a context menu will be shown that offers multiple options. One of the options is the “OpenWith” option. Once selected a pop-up will appear that’ll let’s select from a set of applications on the system.
Behind the scene this is actually launching the “rundll32.exe” utility with the “shell32.dll” and the “OpenAs_RunDLL” function.
This behavior of calling specific functions in a DLL is very common and it can be tricky to know all of them in advance. Below is a list containing a batch of “rundll32.exe” calls and their meaning.
SHELL32.DLL — “Control_RunDLL”, “Control_RunDLLAsUser” and Control Panel Applets
Another common function we’ll see used with the “shell32.dll” is “Control_RunDLL” / “Control_RunDLLAsUser”. These two are used to run “.CPL” files or control panel items.
For example, when we want to change the Date and Time of the computer we launch the applet from the control panel.
Behind the scene, windows launched a “rundll32.exe” instance with the following command line.
In addition to verifying the legitimacy of a DLL. When using the “Control_RunDLL” / “Control_RunDLLAsUser” functions, you should always check the legitimacy of a “.CPL” file.
Control Panel Items (.CPL)
CPL or Control Panel Items are programs that represent a functionality provided by the control panel or in other terms, they are DLL’s that exports the CPIApplet Function.
A “.CPL” file can contain multiple applets that can be referred to by an applet index and each applet can contain multiple tabs that can be referred to by a tab index.
We can access and request this information via the “rundll32.exe” utility as follow.
For example, the “main.cpl” file in the System32 folder contains two applets. The “Mouse” and “Keyboard” properties. If we want to access the mouse properties and change the pointer, we’ll do it like this.
As you can see, one can easily replace the “main.cpl” file with a malicious version and come by unnoticed to the untrained eye. In fact, that’s what malware authors have been doing to infect users.
In a normal case scenario, the parent process of a “rundll32.exe” instance with the “Control_RunDLL” function should be “explorer.exe” or “control.exe”
Other processes can also launch “rundll32.exe” with that function. For example, it can be a child of “Google Chrom”, “MSGEDGE” or “IE” when launching the “inetcpl.cpl” for proxy / network configuration.
If you want more details about CPL and how malware is using it, you can read this trend micro research paper called CPL Malware.
DEVCLNT.DLL — “DavSetCookie” (Web Dav Client)
One of the mysterious command lines in a “rundll32.exe” instance that’ll show up a lot in the logs, takes the following format.
When using the “file://” protocol, whether be it in a word file, or via share windows will sometimes use (if SMB is disabled in some cases) the WebDav Client to request these files. When that happens a request will be made via the “rundll32.exe” utility.
The parent process of such requests will be “svchost.exe” like so. (The “-s WebClient” is not obligatory)
Malware like Emotet has already used this technique in the past. So always analyze the host that is present in this type of command line and make sure that everything is legitimate.
RUNDLL32.EXE — “-sta” / “-localserver” Flags
A lesser known command line arguments are the “-sta” and “-localserver”. Which both can be used to load malicious registered COM objects.
If you see in your logs or a process running with one of the following command line arguments.
You need to verify the corresponding registry key [\HKEY_CLASSES_ROOT\CLSID\<GUID>] and its sub-keys and values for any malicious DLL or SCT script.
I highly suggest you read @bohops blog post for a detailed explanation on this technique and check hexacorn blog for the “-localserver” variant.
Изучение и удаление процесса rundll32.exe

Во время обычного функционирования операционной системы Windows запущено множество сторонних и встроенных процессов, среди которых находится и rundll32.exe. Чаще всего его можно заметить при запуске программ или игр, а его нагрузка на процессор иногда достигает огромных значений. Именно из-за этого данный процесс и смущает пользователей, особенно тех, чей компьютер оснащен достаточно слабым железом и тех, кто постоянно мониторит «Диспетчер задач». Сегодня мы хотим рассказать о том, как изучить детально этот исполняемый файл и нужно ли его вообще удалять.
Изучаем и удаляем процесс rundll32.exe
Основной вопрос, стоящий перед начинающим или неопытным пользователем, заключается в предназначении rundll32.exe. Давайте сразу раскроем эту тему, сказав, что рассматриваемый исполняемый файл по умолчанию является системным и служит для запуска функций динамически подключаемых библиотек, то есть DLL-объектов. Как известно, эти компоненты не имеют собственного исполняемого файла, поэтому и запуск их осуществляется с помощью специально созданного универсального инструмента. rundll32.exe оказывает нагрузку на процессор как раз в момент запуска функций DLL, что чаще всего происходит во время работы в софте или при прохождении игр. Однако существует большая вероятность того, что при заражении ПК вирусами, угроза замаскируется именно под вид этого объекта и будет располагаться в другом месте на жестком диске, постоянно запускаясь и нанося вред компьютеру. Поэтому если упомянутый EXE-файл вас смущает, потребуется изучить его и удалить, если он является вирусным. Развернуто об этом мы и поговорим далее.
Шаг 1: Получение подробной информации о rundll32.exe
Как уже было сказано ранее, о rundll32.exe в большинстве случаев пользователь узнает из просмотра запущенных служб в окне «Диспетчера задач». Однако если этот компонент был заражен вирусом или в другом месте на накопителе создан его вредоносный аналог, скорее всего, разработчики угрозы предусмотрели тот вариант, что вы захотите отследить процесс через указанное меню, поэтому сделали так, что при открытии «Диспетчера задач» он просто выключается. Для обхода этой уловки используется более продвинутое решение, приведенное в следующей инструкции.
- Перейдите по указанной выше ссылке. Вы попадете на официальный сайт компании Microsoft, которая распространяет бесплатное ПО под названием Process Explorer. Оно является продвинутым аналогом стандартного диспетчера, обойти который у вирусов не получается. Поэтому при использовании этого инструмента вы можете быть уверены в отображении абсолютно всех запущенных и скрытых процессов. Для начала скачайте Process Explorer, нажав по соответствующей надписи на странице загрузки.

- Устанавливать программу не нужно, просто запустите полученный архив и откройте 32 или 64-битную версию EXE-файла.

Если вы вдруг обнаружили, что rundll32.exe располагается не в стандартном месте (а правильный путь должен выглядеть так: C:\Windows\System32 ), значит следует сразу же перейти к третьему разделу нашей статьи и срочно произвести полное сканирование системы на вирусы, удалив абсолютно все зараженные и сторонние файлы, включая обнаруженную подмену.
Шаг 2: Исследование системного файла rundll32.exe
Если оказалось, что запущенный рассматриваемый процесс все же располагается по своему стандартному пути, однако он подозрительно нагружает процессор в самое разное время, рекомендуется перестраховаться и исследовать его на заражение. Сделать эту операцию можно так:
- Перейдите по пути хранения файла C:\Windows\System32 , где C — буква системного тома жесткого диска.

- Отыщите там файл rundll32.exe и щелкните по нему правой кнопкой мыши.

- Если у вас на компьютере установлен любой антивирус, в появившемся контекстном меню будет находиться строчка, запускающая проверку данного элемента. В случае отсутствия защиты проще всего выполнить сканирование с помощью онлайн-серверов или средств, которые не требуют предварительной установки. Детальнее об этом читайте в указанных далее материалах.
При обнаружении угрозы файл, скорее всего, будет помещен в карантин или вовсе удален, что повлечет за собой возникновение самых разнообразных проблем с функционированием операционной системы. В следующих двух шагах мы расскажем все об исправлении этой ситуации.
Шаг 3: Полное сканирование Windows на наличие угроз
Попавший на компьютер вирус практически никогда не заражает только один файл. Чем больше времени с момента заражения прошло, тем больше вероятность того, что уже было испорчено огромное количество системных и пользовательских объектов. Потому вам обязательно следует воспользоваться полноценным решением, полностью сканирующим систему на вирусы. Все найденные компоненты будут исправлены или удалены, что зависит от их типа и степени повреждения.

Шаг 4: Восстановление системных файлов
Последний этап после полной очистки ОС заключается в восстановлении системных файлов. Использовать его стоит только в тех случаях, если рассматриваемый исполняемый объект действительно был заражен, а после исправлен или удален антивирусом. Проверка целостности будет осуществляться с помощью стандартного консольного средства SFC. Однако бывает, что при глобальных нарушениях и эта утилита отказывается функционировать корректно. Тогда первоочередно должен быть произведен другой вид исправления сбоев в системе при помощи DISM, а уже потом проверка целостности через SFC. Обо всем этом в максимально развернутом виде рассказал другой наш автор в статье по следующей ссылке.
Теперь вы знаете о том, что изначально rundll32.exe является стандартным системным файлом, однако из-за действия угроз может быть заражен или перемещен с созданием нескольких копий. Все это обнаружить бывает сложно, поскольку сам объект редко нагружает ОС, но если это все-таки удалось сделать, не стоит медлить с решением трудности.
ЧТо за процесс rundll32.exe За что он отвечает?
Rundll32.exe
В каждой папке с приложением вы, наверное, видели огромное количество файлов с разрешением *. DLL (Dynamic Link Library), которые используются для хранения части общей логики приложения.
Так как нет способа для того чтобы запустить непосредственно сам файл DLL, то приложение rundll32.exe используется для запуска функций хранящихся в DLL файлах. Этот исполняемый файл является частью Windows и, как правило, не должен быть вирусом. Оригинальный файл процесса находится в C:\\ Windows \ System32 \ rundll32.exe.
Rundll32.exe процесс представляет собой утилиту командной строки, он выполняет свои встроенные функции, вместе с файлом rundll.exe . Он работает методом вызова функций, которые экспортируются из определенного 16-битного или 32-битного DLL модуля.
Часто имя процесса Rundll32.exe используется в вредоносных программах, так называемых бэкдорах, которые устанавливаются злоумышленниками с целью получения доступа к вашему компьютеру и личным данным. Этот процесс представляет собой угрозу безопасности, и должен быть немедленно удален из вашей системы. Чтобы определить является ли Rundll32.exe законным или нет, нужно проверить местоположение откуда он запущен.
RunDLL32 — Run Dynamic Link Library 32-bit (запуск динамических ссылок из 32-разрядной библиотеки). Хост-процесс Windows (Rundll32) — это системный файл операционной системы Windows и он не является вирусом. Он помогает с распределением динамической библиотеки в памяти. Другими словами, библиотеки динамических ссылок (Dynamic Link Library или DLL) — это важные файлы, в которых хранятся части данных принадлежащих конкретному приложению.
К примеру, когда вы нажимаете в любой программе «Сохранить как», то выскакивает окно. Оно одинаковое во всех программах и сделано это при помощи Rundll32.exe. Это очень облегчает работу программистам, чтобы не писать каждый раз тонну лишнего кода в свою программу.
Окно сохранить как
Является ли rundll32 вирусом и почему он грузит процессор
Сам файл rundll32.exe является официальным файлом Microsoft. Он не является вирусом. Однако, есть вредоносное ПО, которое маскируется под имя этого процесса. В этом случае, он может быть вирусом и грузить вашу систему до 100%, в частности процессор. Очень часто встречается на торрентах со взломанными программами и играми, когда вы их скачиваете и устанавливаете. Давайте посмотрим, как узнать, является ли rundll32 вирусом.
Если rundll32.exe находится в папках WinSxS, System32 или SysWOW64 и имеет описание Хост-процесс Windows (Rundll32), то это оригинальный файл Microsoft. Если вы сомневаетесь, то воспользуйтесь антивирусным сканером. Рекомендую Zemana или D.WEB.
1 способ. Вы можете написать слово «rundll32.exe» в поиске проводника и система вам найдет все файлы с этим именем. На картинке ниже видно, что он расположен по правильным путям. Также, это могут быть подпаки. Нажмите правой кнопкой мыши по файлу и выберите «Свойства».
Во вкладке «Подробно» нас интересует «Описание файла: Хост-процесс Windows (Rundll32)» и «Название продукта: ОС Microsoft Windows». Если данные верны, то это не вирус.
Подробные сведения rundll32.exe
2 способ. Если вы обнаружили rundll32 в диспетчере задач и сомневаетесь в нем, то просто щелкните по нему правой кнопкой мыши и выберите «Открыть местоположение файла». Далее вас перекинет в системные папки WinSxS, System32 или SysWOW64. Если вас перекинуло в другое место, то скорее всего это вирус. Вы также можете открыть свойства файла и посмотреть его описание.
Узнать расположение файла через диспетчер задач
Как исправить ошибки c rundll32
Если хост-процесс Windows (Rundll32) грузит систему или появляются различные ошибки, то можно попробовать восстановить системные файлы и установить Visual C ++,так как это все же связано с библиотеками DLL.
Хост процесс Windows rundll32, что это?
Части кода множества программ хранятся в специальных файлах с расширением dll (динамических библиотеках ссылок). Запустить эти файлы нельзя, и процесс rundll32 запускается для того, чтобы приложения могли получить доступ к нужным частям кода. Это безопасный системный процесс ОС семейства Виндовс, который обычно запускается по адресу «С:»\»Windows»\»System»\»32rundll32.exe».

Проблемы с rundll32
При корректной работе процесс не привлекает внимания, но в некоторых случаях он может снизить работоспособность системы практически полностью:
- хост-процесс rundll32 грузит жесткие диски до 100%, что приводит к быстрому зависанию компьютера;
- под системный процесс маскируются вирусы и вредоносные программы.

Загрузка диска до 100% приводит к зависанию ПК, не исправляется перезагрузкой и изнашивает накопитель. Вирусы и шпионские программы могут вывести из строя ОС, передать личную информацию сторонним лицам и т.д.
Решение проблем с rundll32
Проблемы с этим процессом нельзя решить автоматически – ряд операций придется производить вручную, независимо от выбранного способа «лечения».
Лучшие практики для исправления проблем с rundll32:
- отключение телеметрии;
- удаление GAE;
- настройка в «Безопасном режиме»;
- удаление вирусов.
Отключение Телеметрии
Телеметрия – системная служба, которая собирает данные о системных изменениях. Ее отключение не помешает работе ПК, а в некоторых случаях исправит проблему с «зависанием»:
Шаг 1. Запустите «services.msc» через команду «Выполнить», которая вызывается кнопками «Windows+R».

Шаг 2. В открывшемся окне найдите и откройте двойным нажатием позицию «Функциональные возможности для подключенных пользователей и телеметрия».

Шаг 3. Прекратите выполнение службы кнопкой «Остановить».

Шаг 4. Задайте опцию типа запуска «Отключена» из выпадающего списка и нажмите «ОК».

Шаг 5. Перезагрузите устройство.
Удаление GAE
GAE (Google App Engine) – фреймворк для разработки или хостинга веб-приложений. Он тоже может стать причиной «зависания» rundll32. Чтобы устранить эту проблему:
Шаг 1. Запустите «control panel» (все элементы панели управления) через команду «Выполнить», которая вызывается кнопками «Windows+R».

Шаг 2. Откройте «Программы и компоненты», предварительно выбрав в режиме «Просмотр» значение «Мелкие значки».

Шаг 3. Выберите левым щелчком мыши «Google Cloud SDK» -> «Удалить».

Шаг 4. Выберите «Uninstall».

Шаг 5. После удаления SDK перезагрузите устройство.
Настройка в безопасном режиме
Настройка в безопасном режиме позволяет производить операции с ПК без зависания – в этом режиме не загружаются «лишние» файлы. Для устранения проблем с помощью Safe mode:
Шаг 1. Откройте «Все параметры» через значок уведомлений.

Шаг 2. Выберите «Изменение расширенных параметров запуска» через встроенный поиск, набрав в поле слово «запуск».

Шаг 3. Выберите «Перезагрузить сейчас».

Шаг 4. Щелкните по иконке «Диагностика» на открывшемся экране.

Шаг 5. Выберите «Дополнительные параметры».

Шаг 6. Далее выберите «Параметры загрузки».

Шаг 7. Выберите режим для запуска, нажав на клавиатуре определенную клавишу «F1-F9» соответствующие числовому значению пунктов.

Шаг 8. Дождитесь завершения загрузки и выполните «taskmgr», чтобы запустить «Диспетчер задач», через команду «Выполнить» (вызывается кнопками «Windows+R»).

Шаг 9. Проверьте уровень загрузки процессора и диска во вкладке «Производительность».

Шаг 10. Если в «Безопасном режиме» чрезмерной загрузки диска не наблюдается, запустить ОС в режиме «чистой загрузки» и определить, какое приложение вызывает проблему. Если высокая нагрузка на накопитель сохраняется, проблема в операционной системе, и нужно выполнять следующие шаги.
Шаг 11. Запустите «msconfig» через команду «Выполнить» (вызывается кнопками «Windows+R»).

Шаг 12. Перейдите на вкладку «Службы» и отметьте чекбокс «Не отображать службы Microsoft».

Шаг 13. Отключите все службы с помощью одноименной кнопки в левой нижней части окна и примените изменения.

Шаг 14. Теперь откройте вкладку «Автозагрузка» и выберите пункт «Открыть диспетчер задач».

Шаг 15. В «Диспетчере задач» отключите каждую службу по очереди, выделив левым щелчком мыши, затем кликнув по опции «Отключить», и перезагрузите устройство.

На заметку! Если проблема интенсивного использования диска все равно сохраняется, проблема – в стороннем приложении. Удалите недавно установленный софт, откатите драйвера или выполните восстановление ОС из последней точки восстановления.
Как удалить rundll32 вирус
Чтобы удалить вредоносное ПО, используйте для проверки rundll32 сканер, встроенный в антивирус. Также найти вирусы можно через утилиту Microsoft:
Шаг 1. Скачайте и установите бесплатную программу Process Explorer только из официального сайта Microsoft.

Шаг 2. Откройте загруженный архив и запустите приложение procexp.exe для 32-битной или procexp64.exe для 64-битной системы.

Внимание! Программа запускается без установки. Открыть ее повторно можно из того же файла в архиве, или поместив в другую папку.
Шаг 3. Настройте вывод полной информации через опцию «Show Details for All Processes» в меню «File».

Шаг 4. Найдите процесс «rundll32», нажмите на него правой кнопкой мыши и выберите «Kill Process».


Внимание! Можно нажать на имя процесса левой кнопкой мыши и нажать «Del» на клавиатуре.
Чтобы обнаружить вирус и узнать, какие программы используют процесс, нажмите на него правой кнопкой мыши и выберите «Properties», чтобы открыть вкладку со свойствами.

На вирус может указать нетипичное расположение файла в графе «Path» (например, в пользовательской, а не системной папке), а также – нетипичные аргументы запуска, отображающиеся в графе «Command line».

Как предотвратить неисправности rundll32
Чтобы не стать жертвой вируса:
- не запускайте приложения из непроверенных источников;
- установите антивирус и проводите периодические проверки системы;
- все скачанные пакеты и подключаемые носители сканируйте на наличие вредоносного ПО.
Во время работы оригинальная служба может начать сбоить или зацикливаться, и чаще всего это связано с установкой новых программ. Перед установкой новых приложений создавайте точку восстановления на системе, работающей без ошибок.