Windows - Registry Einführung / Gefahren Informatikseminar am 14.07.03 Diana Reichwein Windows Registry - Gliederung Registry Was ist das? Registry Aufbau Programmierung Gefahren
Windows Registry Registry was ist das? Allgemeines Komplexe Datenbank Reihe von Dateien Dateien nicht direkt auslesbar Windows Registry Registry was ist das? Einträge 4 Grundtypen: Betriebssystemeintragungen Hardwareeintragungen Benutzereintragung Softwareeintragung
Windows Registry der Aufbau Schlüssel (Keys) HKEY_CURRENT_USER HKEY_USER HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG Werte (Values) Typen Windows Registry der Aufbau Schlüssel I Zeichenkette besitzt Reihe von Eigenschaften weitere Schlüssel Struktur entspricht der Struktur der Ordner Hauptschlüssel (Top-Level Keys) Unterschlüssel (Sub-Keys) Jeder Schlüssel ist eindeutig definiert! Durch Name & Pfad
Windows Registry der Aufbau Schlüssel II Pfad HKEY_CURRENT_USER\SOFTWARE bestimmt Schlüssel eindeutig Die Trennung der Schlüssel erfolgt durch \ Windows Registry der Aufbau Schlüssel - Hauptschlüssel Hauptschlüssel (Top-Level Key) HKEY_CURRENT_USER HKEY_USER HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG Strukturieren die Registry gewisse Übersicht garantiert
Windows Registry der Aufbau Hauptschlüssel HKEY_CURENT_USER Windows Registry der Aufbau Daten für exakt zwei Benutzer: Hauptschlüssel HKEY_USER angemeldeten Benutzer entspricht Daten von HKEY_CURRENT_USER Standardbenutzer grundlegende Informationen für: Desktopeigenschaften Lauffähiges System verwendet wenn ein unbekannter / neuer Benutzer sich anmeldet
Windows Registry der Aufbau Hauptschlüssel HKEY_LOCAL_MACHINE Windows Registry der Aufbau Hauptschlüssel HKEY_LOCAL_MACHINE\HARDWARE während des Bootvorgangs erzeugt und mit Informationen gefüllt Angaben über gefundene Hardware: Laufwerke, Tastatur, Maus...
Windows Registry der Aufbau Hauptschlüssel HKEY_LOCAL_MACHINE\SYSTEM Informationen für den System boot Kontrollsatz (Control Set) Hilfreich,falls System nicht mehr bootfähig Windows Registry der Aufbau Hauptschlüssel HKEY_LOCAL_MACHINE\SOFTWARE Informationen über installierte Software Unterschiedlich viele Einträge von Programm zu Programm
Windows Registry der Aufbau Hauptschlüssel HKEY_CLASSES_ROOT verweist auf HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES Enthält File Extension Assoziationen Windows Registry der Aufbau Hauptschlüssel HKEY_CURRENT_CONFIG HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLS ET\HARDWARE PROFILES\CURRENT Verweis Hier ist Control Set abgelegt
Windows Registry der Aufbau Werte I Werden Schlüssel / Unterschlüssel zugewiesen. verleiht der Registry Sinn besteht aus: Namen & Datum Beispiel: Highscores bei einem Spiel dem Benutzer zuweisen Windows Registry der Aufbau Werte II
Windows Registry der Aufbau Werte - Typen REG_BINARY REG_DWORD REG_DWORD_LITTLE_ENDIAN REG_DWORD_BIG_ENDIAN REG_SZ REG_MULTI_SZ REG_EXPAND_SZ REG_RESOURCE_LIST, REG_RESOURE_REQUIREMENTS_LIST, REG_FULL_RESOURCE_DESCRIPTIOR REG_LINK Windows Registry Programmierung Funktion RegOpenKeyEx Öffnen von Registry-Keys I RegOpenKeyEx(HKEY hkey, LPCTSTR lpsubkey, DWORD uloptions, REGSAM samdesired, PHKEY phkresult);
Windows Registry Programmierung Zugriffsrechte Öffnen von Registry-Keys II KEY_CREATE_LINK KEY_CREATE_SUB_KEY KEY_ENUMERATE_SUB_KEYS KEY_EXECUTE KEY_NOTIFY KEY_QUERY_VALUE KEY_READ KEY_SET_VALUE KEY_WRITE KEY_ALL_ACCESS Windows Registry Programmierung Öffnen von Registry-Keys III Beispiel: HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\C URRENTVERSION\RUN zum lesen öffnen //Variablen HKEY hregkey; RegOpenKeyEx(HKEY_LOCAL_MACHINE, SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN, 0, KEY_QUERY_VALUE, &hregkey);
Windows Registry Programmierung Auslesen der Keys / Sub-Keys I RegQueryValueEx & RegEnumValue RegEnumValue(HKEY hkey, DWORD dwindex, LPTSTR lpvaluename, LPDWORD lpcbvaluename LPDWORD lpreserved, LPDWORD lptype, LPBYTE lpdata, LPDWORD lpcbdata); Windows Registry Programmierung Auslesen der Keys / Sub-Keys II Beispiel: Auslesen des bereits geöffneten Run Sub- Keys DWORD dwvaluecounter=0, sizevaluename, valuetype, sizedata; char szvaluename[maxchar], valuebuffer[maxchar]; sizevaluename=sizeof(szvaluename); sizedata=sizeof(valuebuffer); RegEnumValue(hRegKey, dwvaluecounter, szvaluename, &sizevaluename, NULL, &valuetype, (unsigned char*) valuebuffer, &sizedata);
Windows Registry Programmierung Funktion RegCreateKey Anlegen neuer Keys RegCreateKey(HKEY hkey, LPCTSTR lpsubkey, PHKEY phkresult); Beispiel : HKEY_LOCAL_MACHINE\SOFTWARE\MYSOFTWARE\ CString strnewkey = Software\\MySoftware\\ ; HKEY hnewkey; RegCreateKey(HKEY_LOCAL_MACHINE, strnewkey, &hnewkey); Windows Registry Programmierung Erzeugen neuer Einträge I Funktion RegSetValueEx RegSetValueEx(HKEY hkey, LPCTSTR lpvaluename, DWORD Reserved, DWORD dwtype, CONST BYTE *lpdata, DWORD cbdata);
Windows Registry Programmierung Erzeugen neuer Einträge II Beispiel: Dem geöffneten Schlüssel wird Wert mit Name Passwort hinzugefügt char buffer[maxchar]; RegSetValueEx(hnewKey, Passwort, NULL, REG_SZ, (unsigned char*)buffer, (strlen(buffer)+1)); Windows Registry Programmierung Löschen von Einträgen Funktion RegDeleteValue RegDeleteValue(HKEY hkey, LPCTSTR lpvaluename); Beispiel: Löschen des Passwort Eintrags RegDeleteValue(hnewKey, Passwort );
Windows Registry Programmierung Löschen von Keys Funktion RegDeleteKey RegDeleteKey(HKEY hkey, LPCTSTR lpsubkey); Beispiel: Löschen des Keys: HKEY_LOCAL_MACHINE\SOFTWARE\MYSOFTWARE\ RegDeleteKey(HKEY_LOCAL_MACHINE, strnewkey); Windows Registry Programmierung Schließen von Keys Funktion RegCloseKey RegCloseKey(HKEY hkey); Beispiel : RegCloseKey(hRegKey);
Windows Registry Gefahren Einzelner Angriffspunkt Remote Control Autostart Windows Registry Gefahren Viren/Trojaner/Backdoors Auffinden von Informationen immer schwieriger Einfach unerwünschte Programme zu verstecken Automatischer Start von Programmen beim Systemstart
Windows Registry Gefahren Kritische Schlüssel - HKEY_LOCAL_MACHINE\SOFTWARE I \Microsoft\Windows: \CurrentVersion\RunOnce\ \CurrentVersion\RunOnceEx\ \CurrentVersion\Run\ \CurrentVersion\Explorer\Shell Folders\Common Startup \CurrentVersion\Explorer\Shell Folders\Common AltStartup \CurrentVersion\Explorer\User Shell\Common Startup \CurrentVersion\RunServices \CurrentVersion\RunServicesOnce Windows Registry Gefahren Kritische Schlüssel - HKEY_LOCAL_MACHINE\SOFTWARE II \Microsoft\Windows NT: \CurrentVersion\Winlogon\Userinit \CurrentVersion\Windows\Load \SOFTWARE\CLASSES: \batfile\shell\open\command \comfile\shell\open\command \exefile\shell\open\command \htafile\shell\open\command \piffile\shell\open\command
Windows Registry Gefahren Kritische Schlüssel - HKEY_CURRENT_USER\SOFTWARE I \Microsoft\Windows NT: \CurrentVersion\Windows\Run \CurrentVersion\Windows\Load \CurrentVersion\Winlogon\Userinit \Microsoft\Windows: \CurrentVersion\Run\ \CurrentVersion\Explorer\Shell Folders\Startup \CurrentVersion\RunServices \CurrentVersion\RunServicesOnce \CurrentVersion\Explorer\User Shell\Startup \CurrentVersion\RunOnce \CurrentVersion\RunOnceEx Windows Registry Gefahren Kritische Schlüssel - HKEY_USERS \.default\software\microsoft: \Windows NT\CurrentVersion\Windows\run \Windows\CurrentVersion\Explorer\User Shell Folders\Startup
Windows Registry Gefahren Kritische Schlüssel - HKEY_CLASSES_ROOT \batfile\shell\open\command \comfile\shell\open\command \exefile\shell\open\command \htafile\shell\open\command \piffile\shell\open\command \htmlfile\shell\open\command \VBSFile\Shell\Open2\Command \VBSFile\Shell\Open\Command \txtfile\shell\open\command \mp3file\shell\open\command \WMVFile\shell\open\command \jpegfile\shell\open\command