Rundll32.exe

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

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

Библиотеки[править | править код]

Программная библиотека (DLL) служит в качестве программного модуля для предоставления функций другим программам, однако, не может непосредственно выполняться в обычном режиме. RUNDLL позволяет вызывать отдельные функции, такие, как например интерфейс, в командной строке из сценариев или в виде ссылки. Выполнение осуществляется в отдельном процессе, так вызовы 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 CALLBACK NameFunktion(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

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

Безопасность[править | править код]

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

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

Кроме того, этот файл находится за пределами %windir% с rundll32.exe и в большинстве случаев является вирусом. Вирус заменяет оригинальный RUNDLL, но Windows, функция System Restore, хеджирование файловой системы автоматически возвращают в надежное состояние. Но если ему удастся создать для RUNDLL вредоносную версию, не будучи замеченным, может возникнуть опасный инцидент.

Примечания[править | править код]

  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. 1 2 3 nach Rob van der Woude
  4. 1 2 3 nach Dx21
  5. c't Hotline 17/2007, S. 178
  6. http://support.microsoft.com/kb/164787
  7. Throwing garbage on the sidewalk: The sad history of the rundll32 program — The Old New Thing
  8. Throwing garbage on the sidewalk: The sad history of the rundll32 program — The Old New Thing

Ссылки[править | править код]