windows - registry - hs-weingarten.dekeller/downloads/windows-registry.pdf · 2 windows registry...

19
Windows - Registry Einführung / Gefahren Informatikseminar am 14.07.03 Diana Reichwein Windows Registry - Gliederung Registry – Was ist das? Registry – Aufbau • Programmierung • Gefahren

Upload: duonghanh

Post on 06-Jun-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

1

Windows - RegistryEinführung / Gefahren

Informatikseminar am 14.07.03

Diana Reichwein

Windows Registry - Gliederung

• Registry – Was ist das?

• Registry – Aufbau

• Programmierung

• Gefahren

Page 2: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 3: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 4: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 5: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 6: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 7: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 8: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 9: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 10: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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);

Page 11: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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);

Page 12: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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);

Page 13: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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);

Page 14: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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);

Page 15: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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);

Page 16: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 17: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 18: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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

Page 19: Windows - Registry - hs-weingarten.dekeller/Downloads/windows-registry.pdf · 2 Windows Registry – Registry was ist das? • Komplexe Datenbank • Reihe von Dateien • Dateien

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