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