Хост-процесс 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]
RunDll32.EXE SHELL32.DLL,SHExitWindowsEx 2
[4]RunDll32.EXE USER.EXE,ExitWindowsExec
[4]
RunDll32.EXE URL.DLL,FileProtocolHandler "%1"
[5]
Файлы панели управления (CPL), которые обычно находятся в виртуальной папке панели управления, могут вызываться альтернативы методом, используя RUNDLL вызванную с помощью командной строки вызовом Shell32.dll:
Код:[3]
RUNDLL32 SHELL32.DLL,Control_RunDLL filename.CPL,@n,t
filename.CPL
имя CPL-файла панели управления.Примеры:
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 вредоносную версию, не будучи замеченным, может возникнуть опасный инцидент.
Для улучшения этой статьи по информационным технологиям желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .