Windows - Registry
Transcription
Windows - Registry
Windows - Registry Einführung / Gefahren Informatikseminar am 14.07.03 Diana Reichwein Windows Registry - Gliederung • Registry – Was ist das? • Registry – Aufbau • Programmierung • Gefahren 1 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 2 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 3 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 4 Windows Registry – der Aufbau Hauptschlüssel – HKEY_CURENT_USER Windows Registry – der Aufbau Hauptschlüssel – HKEY_USER Daten für exakt zwei Benutzer: • 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 5 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... 6 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 7 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 8 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 9 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 Öffnen von Registry-Keys I Funktion RegOpenKeyEx RegOpenKeyEx(HKEY hkey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); 10 Windows Registry – Programmierung Öffnen von Registry-Keys II Zugriffsrechte • • • • • • • • • • 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); 11 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 SubKeys 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); 12 Windows Registry – Programmierung Anlegen neuer Keys Funktion RegCreateKey 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); 13 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“); 14 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); 15 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 16 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 17 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 18 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 19