Rundll32.exe

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Хост-процесс Windows(Rundll32) — компонент операционных систем семействаMicrosoft Windows,запускающий программы, находящиеся вдинамически подключаемых библиотеках[1].Находится по адресу%WINDIR%\System32\rundll32.exe.Программа поддерживает параметрыfilename(название.DLL-файла),function_name(имя экспортированной функции в файле) иfunction-arguments(различные аргументы для выполнения)[2].

Библиотека как программа

[править|править код]

Динамически подключаемая библиотека (DLL) обычно является программным модулем для предоставления функций другим программам, однако, она не может запускаться в ОС Windows напрямую. RUNDLL же позволяет вызывать отдельные функции DLL, имя которых задаётся в командной строке. Выполнение осуществляется в отдельном процессе, поэтому вызовы RunDLL используются и другими программами, которые хотят защитить свой процесс от ошибок в вызываемой DLL. Точно так же могут вызываться и функции программ в исполняемых файлах системы (.exe-файлы).

Примеры:

  • RUNDLL32 SHELL32.DLL,Control_RunDLL hotplug.dll[3]
    • Откроется функцияУдалить или извлечь аппаратное устройство,например, подключённое к USB.
  • RunDll32.EXE SHELL32.DLL,SHExitWindowsEx 2[4]
    RunDll32.EXE USER.EXE,ExitWindowsExec[4]
    • Перезагрузка(перезагрузка системы) (в Windows XP программа Reboot управляется файлом shutdown.exe.)
  • RunDll32.EXE URL.DLL,FileProtocolHandler "%1"[5]
    • открывает файл под именем «%1» и связанное с ним приложение по умолчанию (автоматическое распознавание файла)

Панель управления

[править|править код]

Файлы панели управления (CPL), которые обычно находятся в виртуальной папке панели управления, могут вызываться альтернативы методом, используя RUNDLL, вызванную с помощью командной строки вызовомShell32.dll:

Код:[3]

  • RUNDLL32 SHELL32.DLL,Control_RunDLL filename.CPL,@n,t
    • filename.CPLимя CPL-файла панели управления.
    • n…апплетв файле CPL
    • t… Количество вкладок, когда апплет имеет их несколько.

Примеры:

  • RUNDLL32 SHELL32.DLL,Control_RunDLL TIMEDATE.CPL,@0,1[3]
  • RUNDLL32 shell32.dll,Control_RunDLL access.cpl,,4[4]
    • Настройка мыши для пользователей с ослабленным зрением.

Использование

[править|править код]

Этот метод может быть использован как вкомандной строкеили припакетной обработке данныхразличныхскриптов,так и с помощью обычных ярлыков (LINK-файлов). Поскольку функции работают в контакте с операционной системой, рекомендуется соблюдать осторожность в определённых экспериментах и рекомендуется только достаточно опытным пользователям.

Типичные источники ошибок

[править|править код]

Предполагается, что функция, вызываемая Rundll32.exe, имеет следующую сигнатуру[6]:

void CALLBACKNameFuction(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

Этим, однако, нередко пренебрегают[7](подобные примеры на этой странице). Это часто приводит к повреждениюстека[8]и к непредсказуемому поведению, например, зацикливанию.

Безопасность

[править|править код]

Угрозы безопасности могут происходить из-за использования rundll32вирусами,шпионскими программамикак передатчик для своих программ-вредителей.

Прежде всего это позволяет RUNDLL скрыть фактический вирус: в сообщениях об ошибках и записях журнала он определяется в качестве причины имя файла EXE. Ею оказывается rundll32.exe, но при этом абсолютно безупречной — вредоносная программа, находящаяся в DLL, и её имя не упоминается во многих случаях. Вместо того, чтобы определить, какие DLL является нежелательным, обвиняется rundll32.exe.

В случае, если этот файл находится в ином местоположении, нежели%windir%\system32\rundll32.exeи запущен из иного местоположения — то он может являться вирусом и не иметь отношения к оригинальному файлу.

  1. Dan Gookin.Troubleshooting and Maintaining Your PC All-in-One Desk Reference For Dummies.—For Dummies,2009. — С.211.— 768 с. — (For Dummies). —ISBN 0470396652.
  2. David A. Karp.Windows XP Pocket Reference.—O'Reilly Media, Inc.,2002. — С.75.— 181 с. — (Pocket References Series). —ISBN 0596004257.
  3. 123nach Rob van der Woude
  4. 123nach Dx21
  5. c'tHotline 17/2007, S. 178
  6. rundll32 | Microsoft Docs.Дата обращения: 27 сентября 2016.Архивировано14 февраля 2015 года.
  7. Throwing garbage on the sidewalk: The sad history of the rundll32 program — The Old New Thing.Дата обращения: 27 сентября 2016.Архивировано3 августа 2015 года.
  8. Throwing garbage on the sidewalk: The sad history of the rundll32 program — The Old New Thing.Дата обращения: 27 сентября 2016.Архивировано3 августа 2015 года.