rundll32.exe

rundll32.exe

runDLL32.exe ist ein Win32-Dienstprogramm von Microsoft Windows ab Version Windows 95 und wird verwendet, um Win32-Funktionen aus Programmbibliotheken als eigenständige Routinen auszuführen. Dabei können nur Funktionen ausgeführt werden, die in der Programmbibliothek explizit für das Ausführen mit diesem Dienstprogramm deklariert wurden. In älteren Windowsversionen (Windows 95 bis Windows Me) ist aus Kompatibilitätsgründen die 16-bit-Version rundll.exe zum Ausführen von Win16-Funktionen noch enthalten.[1]

Die Datei befindet sich bei Windows NT bis Windows 7 im Ordner %windir%\system32 (also zum Beispiel C:\WINNT\system32) und bei Windows 95 bis Windows ME direkt im Windowsverzeichnis (also zum Beispiel C:\Windows). Bei Betriebssystemen mit 64-bit-Struktur (Vista/Windows 7) befindet sich die Datei zusätzlich unter %windir%\SysWOW64.

Diese Anwendungen sind in der Automatisierung von systemnahen Abläufen wichtig. Daher gehört die rundll32.exe zu den durch Malware gefährdeten Angriffspunkten und ist so vielen Anwendern namentlich bekannt geworden.

Inhaltsverzeichnis

Programmbibliotheken

Eine Programmbibliothek (DLL-Datei) dient dazu, anderen Programmen Funktionen als Programmmodul zur Verfügung zu stellen, kann jedoch normalerweise nicht direkt ausgeführt werden. Die RunDLL erlaubt das Aufrufen einzelner Funktionen einer solchen Schnittstelle beispielsweise an der Kommandozeile, aus Skripten oder als Verknüpfung. Die Ausführung erfolgt in einem eigenen Prozess, daher werden RunDLL-Aufrufe auch von anderen Programmen verwendet, die sich vor Fehlern im aufgerufenen DLL schützen wollen. Auf die gleiche Weise können auch Programmfunktionen in ausführbaren Systemdateien (EXE-Dateien) aufgerufen werden.

Beispiele:

  • RUNDLL32 SHELL32.DLL,Control_RunDLL hotplug.dll[2]
    • öffnet die Funktion Hardware entfernen oder auswerfen, wie sie etwa für USB-Sticks gebraucht wird
  • RunDll32.EXE SHELL32.DLL,SHExitWindowsEx 2[3]
    RunDll32.EXE USER.EXE,ExitWindowsExec[3]
  • RunDll32.EXE URL.DLL,FileProtocolHandler "%1"[4]
    • öffnet die Datei Namens %1 mit der ihr zugeordneten Standardanwendung (automatische Dateierkennung)

Control Panels

Die Control Panels (CPL-Dateien), die normalerweise über den virtuellen Ordner Systemsteuerung aufgerufen werden, können mit der RunDLL alternativ auch direkt über die Kommandozeile zugänglich gemacht werden. Das erfolgt über den Aufruf der Shell32.dll:

Code:[2]

  • RUNDLL32 SHELL32.DLL,Control_RunDLL filename.CPL,@n,t
    • filename.CPL.CPL-Datei der Systemsteuerung
    • n ...das Applet innerhalb der.CPL-Datei
    • t ...die Nummer des Tabs, wenn das Applet mehrere davon hat

Während die Applets der einzelnen Funktionen durchaus dokumentiert sind, ist man bei der Steuerung des passenden Reiters eher auf Probieren bzw. auf Tipps in einschlägigen Literatur und Webressourcen angewiesen.

Beispiele:

  • RUNDLL32 SHELL32.DLL,Control_RunDLL TIMEDATE.CPL,@0,1[2]
    • öffnet die Zeitzoneneinstellung der Datum/Uhrzeit-Funktion
  • RUNDLL32 shell32.dll,Control_RunDLL access.cpl,,4[3]
    • Einstellung der Maus-Eingabehilfe für beeinträchtigte Nutzer

Anwendung

Diese Methode kann sowohl von der Kommandozeile bzw. der Batch-Verarbeitung, aus diversen Skriptsprachen wie auch mit einfachen Verknüpfungen (LNK-Dateien) ausgeführt werden. Da die Funktionen sehr nah am Betriebssystem laufen, wird in einschlägigen Kreisen bei Experimenten Vorsicht angeraten, und nur dem einigermaßen geübten Benutzer empfohlen.

Typische Fehlerquellen

Es wird erwartet, dass die von Rundll32.exe aufgerufenen Funktionen einer bestimmten Signatur entsprechen [5]:

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

Üblicherweise wird diese Einschränkung allerdings missachtet[6] (auch von Beispielen auf dieser Seite). Das führt in jedem Fall zu einer Korruption des Stacks [7] und zu unvorhergesehenem Verhalten, beispielsweise Endlosschleifen.

Sicherheit

Aufgrund ihrer häufigen Verwendung durch Programme, durch die rundll32 in der Prozessliste häufig auftauchen kann, wird die rundll32 oft von Viren, Spyware und ähnlichem als „Namensgeber“ für deren Schädlingsprogramme genutzt.

Vor allem ermöglicht es RunDLL, den tatsächlichen Bösewicht zu verschleiern: In Fehlermeldungen und Logbüchern (Protokoll-Eintragungen) wird als Verursacher der Name der EXE-Datei angegeben. Diese RunDLL.EXE ist aber völlig einwandfrei – die Schadsoftware steckt in der DLL, und deren Name wird in vielen Fällen nicht genannt. Statt aufzuspüren, welche DLL unerwünscht ist, schreiben die Benutzer die Schuld der RunDLL.EXE zu.

Weiterhin ist eine Datei außerhalb von %windir% mit dem Namen rundll32.exe in den meisten Fällen ein Virus. Eine bösartig ersetzte Original-RunDLL wird aber von der Windows-Funktion Systemwiederherstellung abgesichert, die Systemdateien automatisch auf einen verlässlichen Zustand zurücksetzt. Wenn es dem Schädling aber gelingt, Aufrufe der RunDLL auf die bösartige Version umzubiegen, ohne dass das bemerkt wird, handelt es sich um einen sehr bedrohlichen Schadensfall.

Liste von Funktionen

Folgend eine Liste typischer Funktionen. Der erste Parameter ist durchwegs eine.dll oder.exe-Datei – dass die Endung nicht angegeben ist, liegt daran, dass sie über die Path-Variable und den windowstypischen Ergänzungsschlüssel *.exe → *.dll → andere Dateien gefunden wird. Der zweite Parameter ist der Name der Routine, die weiteren Parameter sind Eingabewerte an diese Routine, z.B. bei einigen Dialogen mit mehreren Registerkarten die Nummer der Registerkarte als ,@1 oder ,,1.

Diese Aufrufe sind i.d.R. nicht offiziell dokumentiert, daher kann sich die Verfügbarkeit in Abhängigkeit von Betriebssystemsversion und Edition, u.U. auch von Service Pack, Update oder Software Dritter unterscheiden.

Befehl Beschreibung 9x/ME XP / 2000 Vista Windows 7
rundll32.exe User,tilechildwindows Alle geöffneten Tasks automatisch nebeneinander anordnen ja nein nein nein
rundll32.exe User32.dll,LockWorkStation Sperrt den Computer nein ja ja ja
rundll32.exe User,cascadechildwindows Alle geöffneten Tasks automatisch hintereinander anordnen ja nein nein nein
rundll32.exe Msprint2.dll, RUNDLL_PrintTestPage Testseite auf einen Drucker ausgeben ja nein nein nein
rundll32.exe Sysdm.cpl,InstallDevice_Rundll Hardwareassistenten starten ja nein nein nein
rundll32.exe User,wnetcancelconnection <Servername> Trennen der Netzverbindung zum Netwareserver ja nein nein nein
rundll32.exe User,wnetconnectdialog Netzwerklaufwerke verbinden ja nein nein nein
rundll32.exe User,wnetdisconnectdialog Netzwerklaufwerke trennen ja nein nein nein
rundll32.exe User,repaintscreen Bildschirminhalt aktualisieren ja nein nein nein
rundll32.exe User,setcursorpos Setzt Mauscursor links oben in die Ecke ja nein nein nein
rundll32.exe Diskopy,DiskCopyRunDll Ruft Diskcopy auf ja nein nein nein
rundll32.exe powrprof.dll,SetSuspendState Versetzt den Rechner in den Ruhezustand nein ja ja ja
rundll32.exe printui.dll,PrintUIEntry /y /n <Druckername> Einen Standarddrucker festlegen nein ja ja ja
rundll32.exe Rnaui.dll, RnaWizard DFÜ-Netzwerk starten ja nein nein nein
rundll32.exe Rnaserv, CallerAccess DFÜ-Server ja nein nein nein
rundll32.exe Shell, shellexecute Explorer öffnen ja nein nein nein
rundll32.exe Shell32,OpenAs_RunDLL Box „Öffnen mit“ aufrufen ja ja ja ja
rundll32.exe Shell32,SHFormatDrive Diskette formatieren ja nein nein nein
rundll32.exe Shell32,ShellAboutA Infobox ja ja ja ja
rundll32.exe Shell32,SHExitWindowsEx 0 Windows neu starten Ab Win98 nein nein nein
rundll32.exe Shell32,SHExitWindowsEx 1 Windows beenden Ab Win98 nein nein nein
rundll32.exe Shell32,SHExitWindowsEx 2 Windows Warmstart Ab Win98 nein nein nein
rundll32.exe Shell32,SHExitWindowsEx aktiven Benutzer abmelden Ab Win98 nein nein nein
rundll32.exe Shell32,SHExitWindowsEx -1 Windows Explorer neu starten Ab Win98 nein nein nein
rundll32.exe Shell32,Control_RunDLL Systemsteuerung ja ja ja ja
rundll32.exe Shell32, Control_RunDLL desk.cpl Einstellung „Anzeige“ ja ja ja ja
rundll32.exe Sysdm.cpl, InstallDevice_Rundll Schnelle Hardwareerkennung Ab Win98 nein nein nein
rundll32.exe shell32.dll,Control_RunDLL access.cpl Eingabehilfen (Übersicht) ja ja
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1 Eingabehilfen (Tastatur) ja ja nein nein
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2 Eingabehilfen (Sound) ja ja nein nein
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3 Eingabehilfen (Anzeige) ja ja nein nein
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4 Eingabehilfen (Maus) ja ja nein nein
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5 Eingabehilfen (Allgemein) ja ja nein nein
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,0 Software (Entfernen/Hinzufügen neuer Programme) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1 Software (Neue Programme hinzufügen) ja ja  ? ja (Programme vom Netzwerk installieren)
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2 Software (Windows Komponenten hinzufügen oder entfernen) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 Eigenschaften von Anzeige (Hintergrund) ja ja ja (Desktop) ja
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1 Eigenschaften von Anzeige (Bildschirmschoner) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2 Eigenschaften von Anzeige (Darstellung) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0 Ländereinstellungen (Allgemein) ja ja ja (Formate) ja (Formate)
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1 Ländereinstellung (Zahlen) ja ja ja (Aufenthaltsort) ja (Aufenthaltsort)
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2 Ländereinstellung (Währung) ja ja ja (Tastatur und Sprachen) ja (Tastatur und Sprachen)
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3 Ländereinstellung (Uhrzeit) ja ja ja (Verwaltung) ja (Verwaltung)
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4 Ländereinstellung (Datum) ja ja ja (Formate) ja (Formate)
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,5 Ländereinstellung (Eingabe) ja ja ja (Formate) ja (Formate)
rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0 Gamecontroller (Allgemein) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1 Gamecontroller (Erweitert) ja ja ja (Allgemein) ja (Allgemein)
rundll32.exe shell32.dll,Control_RunDLL main.cpl,@0 Eigenschaften von Maus (Tasten) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL main.cpl,@1 Eigenschaften von Tastatur (Geschwindigkeit) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl Mail und FAX ja nein nein nein
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0 Eigenschaften von Sounds und Multimedia (Sounds) ja ja ja (Wiedergabe) ja (Wiedergabe)
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1 Eigenschaften von Sounds und Multimedia (Audio) ja ja ja (Aufnahme) ja (Aufnahme)
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2 Eigenschaften von Sounds und Multimedia (Hardware) ja ja ja (Sounds) ja (Sounds)
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3 Eigenschaften von Sounds und Multimedia Kommunikation) - - ja (Wiedergabe) ja
rundll32.exe shell32.dll,Control_RunDLL modem.cpl Telefon- und Modemoptionen (Modems) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl Netzwerkeinstellungen ja nein nein nein
rundll32.exe shell32.dll,Control_RunDLL password.cpl Passworteinstellungen ja nein nein nein
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl Systemeigenschaften (Computername)  ?  ? ja ja
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0 Systemeigenschaften (Allgemein) ja ja nein nein
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1 Systemeigenschaften (Netzwerkidentifikation) ja ja ja (Computername) ja (Computername)
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2 Systemeigenschaften (Hardware) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3 Systemeigenschaften (Benutzerprofile) ja ja ja (Erweitert) ja (Erweitert)
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,4 Systemeigenschaften (Erweitert) ja ja ja (Computerschutz) ja (Computerschutz)
rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0 Eigenschaften von Datum/Uhrzeit (Datum und Uhrzeit) ja ja ja ja
rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1 Eigenschaften von Datum/Uhrzeit (Zusätzliche Uhren) - - ja ja
rundll32.exe diskcopy.dll,DiskCopyRunDll Diskcopy ja ja nein nein
rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL AddPrinter Drucker hinzufügen ja ja ja ja
rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL PrintersFolder Drucker anzeigen ja ja ja ja
rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL FontsFolder Schriftarten anzeigen ja ja ja ja
rundll32.exe dwmApi.dll,#102 Windows Vista Aero Glass Effekt anschalten nein nein ja nein
rundll32.exe dwmApi.dll,#104 Windows Vista Aero Glass Effekt ausschalten nein nein ja nein

Weblinks

Einzelnachweise

  1. microsoft.com/kb/164787
  2. a b c nach Rob van der Woude
  3. a b c nach Dx21
  4. c't Hotline 17/2007, S. 178
  5. http://support.microsoft.com/kb/164787
  6. https://blogs.msdn.com/b/oldnewthing/archive/2011/09/09/10208136.aspx#10208626
  7. https://blogs.msdn.com/b/oldnewthing/archive/2011/09/09/10208136.aspx

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Rundll32.exe — ist eine Programm Datei unter Windows NT. Unter Windows 95/98 wird sie auch RUNDLL.exe geschrieben, wobei die Groß und Kleinschreibung jedoch normalerweise keinen Einfluss auf das System hat (siehe auch „Case sensitivity“). Das Programm ist ein… …   Deutsch Wikipedia

  • Rundll32.exe — Хост процесс Windows (Rundll32)  компонент операционных систем семейства Microsoft Windows, запускающий программы, находящиеся в динамически подключаемых библиотеках …   Википедия

  • Rundll32 — runDLL32.exe ist eine Programm Datei unter Windows NT. Unter Windows 95/98 wird sie auch RUNDLL.exe geschrieben, wobei die Groß und Kleinschreibung jedoch normalerweise keinen Einfluss auf das System hat (siehe auch „Case sensitivity“). Das… …   Deutsch Wikipedia

  • Rundll.exe — runDLL32.exe ist eine Programm Datei unter Windows NT. Unter Windows 95/98 wird sie auch RUNDLL.exe geschrieben, wobei die Groß und Kleinschreibung jedoch normalerweise keinen Einfluss auf das System hat (siehe auch „Case sensitivity“). Das… …   Deutsch Wikipedia

  • Cmd.exe — У этого термина существуют и другие значения, см. Cmd. cmd.exe Windows после запуска Cmd.exe  интерпретатор командной строки (англ. command line interpreter) для операционных сис …   Википедия

  • svchost.exe — в семействе операционных систем Microsoft Windows (2000, XP, Vista, Seven) главный процесс (англ. Host process) для служб, загружаемых из динамических библиотек. Использование единого процесса для работы нескольких сервисов позволяет… …   Википедия

  • Ntoskrnl.exe — (сокр. от англ. NT OS kernel «ядро операционной системы NT»)  файл ядра операционных систем семейства Windows NT (NT 4.0, 2000 …   Википедия

  • Netsh.exe — В программном обеспечении, netsh (от англ. «сетевая оболочка» или network shell)  программа, включенная в линейку продуктов операционных систем Microsoft Windows NT начиная с Windows 2000. Она позволяет осуществлять локальное или удаленное… …   Википедия

  • CPL-Datei — Die Systemsteuerung ist in Computern mit dem Betriebssystem Microsoft Windows ein zentrales Hilfsmittel, um die Einstellungen des Computers seinen persönlichen Bedürfnissen anzupassen. Inhaltsverzeichnis 1 Aufbau 2 Funktion 3 CPL Datei 4… …   Deutsch Wikipedia

  • Systemsteuerung — Die Systemsteuerung ist bei Computern mit dem Betriebssystem Microsoft Windows ein zentrales Hilfsmittel, um die Einstellungen des Computers den persönlichen Bedürfnissen anzupassen. Inhaltsverzeichnis 1 Aufbau 2 Funktion 3 CPL Datei …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”