windows - registry - hs-weingarten.dekeller/downloads/windows-registry.pdf · 2 windows registry...
TRANSCRIPT
1
Windows - RegistryEinführung / Gefahren
Informatikseminar am 14.07.03
Diana Reichwein
Windows Registry - Gliederung
• Registry – Was ist das?
• Registry – Aufbau
• Programmierung
• Gefahren
2
Windows Registry – Registry was ist das?
• Komplexe Datenbank• Reihe von Dateien • Dateien nicht direkt auslesbar
Allgemeines
Windows Registry – Registry was ist das?
4 Grundtypen:
• Betriebssystemeintragungen • Hardwareeintragungen • Benutzereintragung • Softwareeintragung
Einträge
3
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
• 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
Schlüssel I
4
Windows Registry – der Aufbau
• Pfad HKEY_CURRENT_USER\SOFTWARE bestimmt Schlüssel eindeutig
• Die Trennung der Schlüssel erfolgt durch \
Schlüssel II
Windows Registry – der Aufbau
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
Schlüssel - Hauptschlüssel
5
Windows Registry – der Aufbau
Hauptschlüssel – HKEY_CURENT_USER
Windows Registry – der Aufbau
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
Hauptschlüssel – HKEY_USER
6
Windows Registry – der Aufbau
Hauptschlüssel – HKEY_LOCAL_MACHINE
Windows Registry – der Aufbau
• während des Bootvorgangs erzeugt und mit Informationen gefüllt
• Angaben über gefundene Hardware: Laufwerke, Tastatur, Maus...
Hauptschlüssel – HKEY_LOCAL_MACHINE\HARDWARE
7
Windows Registry – der Aufbau
• Informationen für den System boot• Kontrollsatz (Control Set) • Hilfreich,falls System nicht mehr bootfähig
Hauptschlüssel – HKEY_LOCAL_MACHINE\SYSTEM
Windows Registry – der Aufbau
• Informationen über installierte Software• Unterschiedlich viele Einträge von
Programm zu Programm
Hauptschlüssel – HKEY_LOCAL_MACHINE\SOFTWARE
8
Windows Registry – der Aufbau
• verweist auf HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES
• Enthält File Extension Assoziationen
Hauptschlüssel – HKEY_CLASSES_ROOT
Windows Registry – der Aufbau
• HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\HARDWARE PROFILES\CURRENT Verweis
• Hier ist Control Set abgelegt
Hauptschlüssel – HKEY_CURRENT_CONFIG
9
Windows Registry – der Aufbau
• Werden Schlüssel / Unterschlüssel zugewiesen. verleiht der Registry Sinn
• besteht aus: Namen & Datum
Beispiel:• Highscores bei einem Spiel
dem Benutzer zuweisen
Werte I
Windows Registry – der Aufbau
Werte II
10
Windows Registry – der Aufbau
• 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
Werte - Typen
Windows Registry – Programmierung
Funktion RegOpenKeyEx
Öffnen von Registry-Keys I
RegOpenKeyEx(HKEY hkey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
11
Windows Registry – Programmierung
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
Öffnen von Registry-Keys II
Windows Registry – Programmierung
Beispiel:HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\C
URRENTVERSION\RUN zum lesen öffnen
Öffnen von Registry-Keys III
//VariablenHKEY hRegKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, „SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN“, 0, KEY_QUERY_VALUE, &hRegKey);
12
Windows Registry – Programmierung
RegQueryValueEx & RegEnumValue
Auslesen der Keys / Sub-Keys I
RegEnumValue(HKEY hkey, DWORD dwIndex,LPTSTR lpValueName,LPDWORD lpcbValueNameLPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
Windows Registry – Programmierung
Beispiel:Auslesen des bereits geöffneten Run Sub-
Keys
Auslesen der Keys / Sub-Keys II
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);
13
Windows Registry – Programmierung
Funktion RegCreateKey
Beispiel :HKEY_LOCAL_MACHINE\SOFTWARE\MYSOFTWARE\
Anlegen neuer Keys
RegCreateKey(HKEY hkey, LPCTSTR lpSubKey,PHKEY phkResult);
CString strNewKey = „Software\\MySoftware\\“;HKEY hnewKey;
RegCreateKey(HKEY_LOCAL_MACHINE, strNewKey, &hnewKey);
Windows Registry – Programmierung
Funktion RegSetValueEx
Erzeugen neuer Einträge I
RegSetValueEx(HKEY hkey, LPCTSTR lpValueName,DWORD Reserved,DWORD dwType,CONST BYTE *lpData,DWORD cbData);
14
Windows Registry – Programmierung
Beispiel:Dem geöffneten Schlüssel wird Wert mit Name Passwort hinzugefügt
Erzeugen neuer Einträge II
char buffer[MAXCHAR];
RegSetValueEx(hnewKey, „Passwort“,NULL, REG_SZ, (unsigned char*)buffer,(strlen(buffer)+1));
Windows Registry – Programmierung
Funktion RegDeleteValue
Beispiel:Löschen des Passwort Eintrags
Löschen von Einträgen
RegDeleteValue(hnewKey, „Passwort“);
RegDeleteValue(HKEY hkey, LPCTSTR lpValueName);
15
Windows Registry – Programmierung
Funktion RegDeleteKey
Beispiel: Löschen des Keys:
HKEY_LOCAL_MACHINE\SOFTWARE\MYSOFTWARE\
Löschen von Keys
RegDeleteKey(HKEY hkey, LPCTSTR lpSubKey);
RegDeleteKey(HKEY_LOCAL_MACHINE, strNewKey);
Windows Registry – Programmierung
Funktion RegCloseKey
Beispiel :
Schließen von Keys
RegCloseKey(HKEY hkey);
RegCloseKey(hRegKey);
16
Windows Registry – Gefahren
• Einzelner Angriffspunkt
• Remote Control
• Autostart
Windows Registry – Gefahren
• Auffinden von Informationen immer schwieriger
• Einfach „unerwünschte Programme“ zu verstecken
• Automatischer Start von Programmen beim Systemstart
Viren/Trojaner/Backdoors
17
Windows Registry – Gefahren
\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
Kritische Schlüssel - HKEY_LOCAL_MACHINE\SOFTWARE I
Windows Registry – Gefahren
\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
Kritische Schlüssel - HKEY_LOCAL_MACHINE\SOFTWARE II
18
Windows Registry – Gefahren
\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
Kritische Schlüssel - HKEY_CURRENT_USER\SOFTWARE I
Windows Registry – Gefahren
\.default\Software\Microsoft:
• \Windows NT\CurrentVersion\Windows\run• \Windows\CurrentVersion\Explorer\User Shell
Folders\Startup
Kritische Schlüssel - HKEY_USERS
19
Windows Registry – Gefahren
• \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
Kritische Schlüssel - HKEY_CLASSES_ROOT