Die Windows Registry
Windows-Registry
Da dies mein erster Blog ist möchte ich mich kurz vorstellen: Ich bin Tician, 26 Jahre jung und im 2. Ausbildungsjahr zur Systemintegration (Stand 2017). Privat bin ich im Malware-Bereich aktiv - ich helfe Menschen bei der Bereinigung - und ich zocke gerne
Mein Ziel ist es alles so anfängerfreundlich wie möglich zu schreiben. Es soll also auch jemand verstehen der sich am Anfang der Ausbildung befindet und noch keine bis wenig Erfahrungenen hat.
Legen wir los!
Was ist die Registry?
Die Meisten haben vermutlich schon davon gehört, aber vielleicht noch nie damit zu tun gehabt - und genau so sollte es auch sein, denn die Registry ist seit Windows NT ein fester, sehr wichtiger und empfindlicher Bestandteil von Windows. Sämtliche Einstellungen von Windows (und den meisten installierten Programmen) werden dort gespeichert.
Einstellungen? Welche Einstellungen denn zum Beispiel?
Welche Dienste sind auf auto-start gestellt? Welches Hintergrundbild benutze ich für meinen Desktop? Ist die Firewall an oder aus? Werden die Windows-Updates automatisch gemacht oder sind sie deaktiviert? Welches Programm soll benutzt werden wenn ich eine *.txt Datei öffnen möchte (Editor, Notepad++ oder doch etwas ganz anderes)? Das und vieles mehr sind Beispiele die in der Registry zu finden sind.
Kommen wir auch kurz zu einem anderen Beispiel: Gruppenrichtlinien! Was passiert wenn wir auf vielen PCs Einstellungen setzen möchten ohne an jeden PC einzeln zu rennen (z.B. wollen wir nicht das Benutzer die Registry verändern dürfen )? Wir benutzen Gruppenrichtlinien und die (meisten) machen auch nichts anderes als Registry-Einträge zu verändern.
Wo ist die Registry?
Jetzt wird es interessant. Die Registry lässt sich durch ein Windows-eigenes Tool öffnen. In unserem Fall die Regedit.exe die sich (wie manch andere Windows-Tools) standardmäßig unter C:\Windows befindet. Jetzt ist uns das aber zu mühselig jedesmal dort hin zu navigieren (das machen wir ja mit dem Editor oder der Kommandozeile auch nicht) und diese exe-Datei anzuklicken. Wir drücken einmal gekonnt die Windows-Taste+R (r für das englische 'run' also 'ausführen') und haben ein kleines Fensterchen offen mit dem wir die Windows-Tools aufrufen können. Wir geben 'regedit' ein und drücken einmal auf OK.
Und woher weiß Windows jetzt wo es nach der Regedit.exe suchen soll wenn ich das da eingebe?
Ich gebe euch einen Tipp: Das steht auch in der Registry (* siehe Bonus-Wissen ganz unten!)
Bis hierhin kann man nichts falsch machen, reinschauen kostet also nichts! Was wir links sehen sollte einem Windows-Benutzer doch recht vertraut sein. Wir haben 'Ordner' die wir auf und zu klappen können und davon (meistens) ganze 5 Stück!
'Ordner'?
Vom aussehen her könnte man sie als 'Ordner' bezeichnen, aber wir lernen es gleich richtig. Alles was hier als 'Ordner' dargestellt wird nennt sich Schlüssel. Und wenn wir schon bei Begrifflichkeiten sind erkläre ich euch gleich auch was ein 'Hive' ist.
Aber gehen wir mal kurz einen Schritt zurück.
Habt ihr euch schonmal gefragt wo man das ganze Zeug auf der Festplatte überhaupt findet?
Da ist eine rießengroße Struktur mit vielen, vielen Schlüsseln ('Ordnern'), das kann ja nicht einfach so aus dem nichts auftauchen. Und genau darum findet man die Registry in folgenden Dateien:
C:\Windows\system32\config\System (HKEY_CURRENT_CONFIG) C:\Windows\system32\config\SAM (HKEY_LOCAL_MACHINE\SAM) C:\Windows\system32\config\Security (HKEY_LOCAL_MACHINE\Security) C:\Windows\system32\config\Software (HKEY_LOCAL_MACHINE\Software) C:\Windows\system32\config\System (HKEY_LOCAL_MACHINE\System) C:\Windows\system32\config\Default (HKEY_USERS\.DEFAULT) C:\Users\Benutzername\ntuser.dat (HKEY_CURRENT_USER)
Hier mal ein Bild:
Diese 7 oben genannten Schlüssel nennen sich Hives und sind alles woraus die Registry besteht.
Moment mal, ich sehe doch noch andere Schlüssel! Wo ist denn zum Beispiel HKEY_CLASSES_ROOT?
Die simple (und vermutlich erstmal verwirrende) Antwort ist: Den Schlüssel selbst gibt es nicht.
... ?
Wir schauen uns das natürlich an:
Der Aufbau der Registry
Was wir sehen wenn wir die Registry öffnen (also diese 5 großen Schlüssel) ist eine von Windows benutzerfreundlich gemachte Ansicht.
Nehmen wir mal an wir haben ein x-beliebiges Stück Software. Dessen Standard-Einstellungen werden unter diesem Schlüssel gespeichert:
HKEY_LOCAL_MACHINE
\Software\Classesund gelten erstmal für alle Benutzer des PCs. Wenn ich mich nun am PC anmelde, die Software öffne und irgendwelche Einstellungen mache (die natürlich nur mich betreffen sollen und nicht alle anderen user, z.B. einen blauen Hintergrund haben möchte), dann befinden sich diese Einstellungen hier:
HKEY_CURRENT_USER
\Software\ClassesDer Schlüssel HKEY_CLASSES_ROOT führt diese 2 oben genannten Schlüssel visuell zusammen, damit wir nicht rumsuchen müssen. Nach demselben Schema bilden sich auch die übrigen Schlüssel die nicht zu den Hives gehören. Ich zeig euch das mal anhand dieses Beispiels:
Ich habe hier einen Schlüssel (den Pfad könnt ihr im unteren Bereich des Bildes sehen) und einen x-beliebigen Eintrag erstellt:
Ich habe nochmal einen gleichnamigen Schlüssel für den Benutzer erstellt und dem ebenfalls einen Eintrag verpasst:
Ich habe die oben genannten Schlüssel benutzt. Ohne mein weiteres Zutun sieht es in dem HKEY_CLASSES_ROOT Schlüssel nun so aus:
Seht ihr wie beide Einträge angezeigt werden? Windows hat die 2 gleich benannten Schlüssel (in HKLM und HKCU - die Kurzschreibweise) zusammen gelegt.
Und das war schon das ganze Hexenwerk für heute!
Ich wollte es kurz halten, es würde so viel mehr zu erzählen geben! Ich wollte euch aber nicht mit der Entstehungsgeschichte langweilen, es sollte wirklich nur mal ein leichtes Kratzen der Oberfläche sein, da die Meisten vermutlich eh nie direkt in die Registry gehen müssen.
Wenn ihr also Fragen, Anmerkungen, Lob und Kritik habt immer her damit - am Besten in die Kommentare.
_____________________________________________________
Bonus-Wissen:
(*)Hier geht es um die sogenannte Path-Umgebungsvariable.
Bitte was?
Ja, das 'Ding' schimpft sich so, ist aber auch wichtig und vorallem nützlich!
Folgendes Szenario: Ich öffne ein Konsolenfenster (ganz ohne Administrator-Rechte) und befinde mich standardmäßig in meinem Benutzer-Verzeichnis (C:\Users\Tician). Gebe ich jetzt ein 'notepad.exe' und drücke die Eingabe-taste öffnet sich ein Editor. Das läuft für viele schon automatisch. Aber denkt mal über folgendes: Muss man nicht eigentlich erst in das Verzeichnis navigieren oder den ganzen Pfad angeben um eine Datei darin auszuführen?
Ja... Aber dabei befindet sich die 'notepad.exe' doch gar nicht in meinem Verzeichnis!
Jupp, richtig und trotzdem öffnet es sich. Zum Verständnis müssen wir etwas weiter gehen. Geben wir also mal 'putty.exe' ein. Wir werden mit der Meldung "Der Befehl 'putty.exe' ist entweder falsch geschrieben oder konnte nicht gefunden werden" begrüßt. 'Konnte nicht gefunden werden' trifft es in unserem Fall auf den Punkt.
Aber ich hab putty! Liegt doch direkt auf meinem Desktop!
Auch korrekt. Was ist also passiert? Windows (und übrigens auch Linux) haben diese Path-Variable. Wir finden sie unter Windows in der Registry in diesem Schlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Hier gibt es den Eintrag 'Path'. Wenn ich nun also einen Befehl oder eine Datei zum öffnen/ausführen in die Kommandozeile eingebe sucht Windows erstmal in dem Verzeichnis in dem ich mich befinde danach. In unserem Beispiel das Benutzerverzeichnis (keine Unterordner!). Wenn Windows den Befehl dort nicht findet greift es auf diese PATH-Variable zu. Da stehen einige Pfade durch Semikolon getrennt drin und Windows geht sie alle nacheinander von links nach rechts durch und sucht in den Ordnern nach meinem Befehl, also 'putty.exe'.
Das heißt also...?
Wenn ich jetzt diesen Path-Eintrag veränder und ';C:\Users\Tician\Desktop\' anhänge kann ich auch mein Putty jederzeit - und unabhängig davon in welchem Pfad ich mich in der Konsole befinde - aufrufen!
- C#Dev, Grimlet, JimTheLion und 7 Weitere reagierten darauf
- 10
13 Kommentare
Empfohlene Kommentare