{"id":37920,"date":"2017-01-21T21:51:02","date_gmt":"2017-01-21T20:51:02","guid":{"rendered":"https:\/\/clubcomputer.at\/?p=37920"},"modified":"2017-01-21T21:51:02","modified_gmt":"2017-01-21T20:51:02","slug":"windows-registry","status":"publish","type":"post","link":"https:\/\/clubcomputer.at\/2017\/01\/21\/windows-registry\/","title":{"rendered":"Windows Registry"},"content":{"rendered":"

Der folgende Text ist eine Nachlese auf den Vortrag von Georgie<\/strong> am 19.1.2017.<\/em><\/span><\/p>\n

Registry, wozu?<\/h2>\n

Die Speicherorte am PC sind klar getrennt in System, Programm, Benutzer und Einstellungen. Damit einher geht eine Rechtestruktur, die verhindert, dass der Benutzer versehentlich etwas besch\u00e4digt, weil er nicht – so wie fr\u00fcher – auch Administratorrechte hat. Der Motor f\u00fcr diese saubere Trennung waren Schadprogramme, die Verst\u00f6\u00dfe gegen diese Trennung ausgenutzt haben und ziemlich freiz\u00fcgig im Bereich der Programme Schaden angerichtet haben.<\/p>\n

Zu einer klaren Trennung in unver\u00e4nderliche Speicherbereiche und ver\u00e4nderbare Speicherbereiche zwingen auch die modernen portablen Ger\u00e4te, die – anders als der PC – viele der vorinstallierten Programme in Festwertspeichern (ROM) ablegen. Und da Windows auch auf diesen Ger\u00e4ten lauff\u00e4hig sein muss, wird diese Speicher-Policy der Trennung in beschreibbare und nicht beschreibbare Speicherbereiche auch am PC sichtbar obwohl sie am PC immer in beschreibbaren Specherbereichen abgelegt werden.<\/p>\n

Ein Betriebssystem hat eine gro\u00dfe Zahl von Einstellungen zu verwalten\u00a0und\u00a0speichert diese Einstellungen in einer Datenbank, der so genannten „Registry“.\u00a0Auch Programme haben Einstellungen zu verwalten und es bietet sich auch f\u00fcr Programme an, mehr oder weniger dieser Einstellungen in der Registry zu speichern.<\/p>\n

Da Programme von Windows gerufen werden wollen, m\u00fcssen sie sich bei Windows bekannt machen. Das Mindeste, was sie daher dem Betriebssystem mitteilen m\u00fcssen, ist ihr Speicherort und das Symbol unter dem sie aufgerufen werden k\u00f6nnen.<\/p>\n

Dieses Konzept einer zentralen Datenbank ist keineswegs zwingend, genau so gut k\u00f6nnte man diese Daten in den jeweiligen Benutzerspeicherbereichen unterbringen und mit einem einheitlichen Programm auf diese Einstellungsdateien (.ini-Dateien) zugreifen wie uns Linux das demonstriert.<\/p>\n

Aber die Entwickler von Windows und von Windows-Anwendungen haben auch das gemeinsame Ziel, dass ihre Programme nicht so einfach auf andere Rechner verschoben werden k\u00f6nnen. Und dieses Ziel unterst\u00fctzt\u00a0das zentralisierte Konzept der Registry, denn auch wenn jemand die Programmdateien kopiert, die Eintr\u00e4ge in der Registry lassen sich nicht so einfach portieren. Wenn also jemand mehrere Rechner besitzt und ein erworbenes Programm einmal auf diesem dann auf einem anderen Rechner benutzen will, dann ist das wegen des Konzept der Registry nicht m\u00f6glich. F\u00fcr alle, die das dennoch wollen, ist die Benutzung der Portablen Programme<\/a>\u00a0ein zweckm\u00e4\u00dfige und gleichzeitig v\u00f6llig legaler Ausweg.<\/p>\n

Aus meiner Sicht ist dieser Wunsch eines konzeptiven Kopierschutzes das Hauptmotiv f\u00fcr die Zusammenfassung aller Konfigurationsdaten in einer zentralen Datenbank.<\/p>\n

Wenn uns das auch nicht gef\u00e4llt; Ignorieren d\u00fcrfen wir deshalb die Registry nicht und daher werden wir uns in diesem Beitrag mit einigen Details besch\u00e4ftigen, die uns Georgie<\/strong> beim Clubabend am 19.1.2017 vorgestellt hat. Die erw\u00e4hnten Foliennummern beziehen sich auf folgende Datei:\u00a0Folien vom Vortrag<\/a><\/p>\n

Aufbau der Registry<\/h2>\n

Wer den Dateibaum eines Windows-Explorers kennt, ist eigentlich auch schon mit der Registry vertraut, denn die Registry ist ganz genau so aufgebaut. Nur hei\u00dfen die „Ordner“ in der Registry\u00a0„Keys“ und in jedem Ordner k\u00f6nnen (wie im Dateisystem) weitere Ordner sein und jeder Ordner kann auch Dateien enthalten, das sind in der Registry „Namen-Werte-Paare“.<\/p>\n

Die folgende Tabelle vergleicht das Windows-Dateisystem mit der Windows-Registry:<\/p>\n\n\n\n\n\n\n\n\n\n\n\n
<\/td>\nWindows-Dateisystem<\/strong><\/td>\nWindows-Registry<\/strong><\/td>\n<\/tr>\n
Programm<\/td>\nWindows-Explorer<\/td>\nRegedit<\/td>\n<\/tr>\n
Aufruf mit<\/td>\nWindows-E<\/td>\nWindows-R „regedit“<\/td>\n<\/tr>\n
Oberste Ebene<\/td>\nLaufwerke
\nC:\\, D:\\…<\/td>\n
Hauptschl\u00fcssel
\nHKEY_LOCAL_MACHINE,
\nHKEY_USERS (Folie 7, 8)<\/td>\n<\/tr>\n
Untere Ebenen,
\nbeliebig verschachtelt<\/td>\n
Ordner<\/td>\nSchl\u00fcssel (Key)<\/td>\n<\/tr>\n
Inhalt eines Ordners<\/td>\nDatei<\/td>\nName-Wert-Paar (Folie 11)<\/td>\n<\/tr>\n
<\/td>\nDateityp (Extension)<\/td>\nTyp des Werts (Folie 10)<\/td>\n<\/tr>\n
Virtuelle Ordner<\/td>\nDesktop, Papierkorb…<\/td>\nHKEY_CLASSES_ROOT,
\nHKEY_CURRENT_USER,
\nHKEY_CURRENT_CONFIG<\/td>\n<\/tr>\n
Gespeichert in<\/td>\nDateisystem (FAT32, NTFS)<\/td>\nHives (Folie 23)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

HKEY = „Handle to a Key“<\/p>\n

Die virtuellen Ordner am PC sind k\u00fcnstliche Zusammenstellungen von Teilb\u00e4umen, die man auch anderswo in der Explorer-Ansicht gefunden h\u00e4tte, nur eben ziemlich versteckt. Genau so ist das in der Registry. Wegen der praktischeren Handhabung werden Teile der Schl\u00fcsselstrukturen an die oberste Ebene gespiegelt, um die Navigation zu erleichtern.<\/p>\n

W\u00e4hrend bei Windows die Speicherung der Struktur des Dateisystems von der Festplatten-Formatierung abh\u00e4ngt (FAT32 oder NTFS), werden bei der Registry die Daten in Dateien abgelegt, die „Hives“ (=“Honigwaben“?) genannt werden. Wo diese Hives gespeichert sind, zeigt Folie 23<\/strong>.<\/p>\n

Datentypen<\/h2>\n

Georgie<\/strong> hat in Folie 10<\/strong> im Testkey 00TEST<\/strong>\u00a0alle verf\u00fcgbaren Datentypen dargestellt.<\/p>\n

Die Zeile (Standard)<\/strong>\u00a0ist ein voreingestellter Name, der mit dem Schl\u00fcssel zusammenh\u00e4ngt. Jeder Schl\u00fcssel hat also zumindest diesen einen Eintrag. Man kann (Standard)<\/strong> nicht l\u00f6schen.\u00a0(Standard)<\/strong>\u00a0ist oft leer, kann aber auch einen Wert enthalten.<\/p>\n

Alle unter einem Key eingetragenene Namen k\u00f6nnen einen der folgenden Datentypen haben:<\/p>\n

REG_SZ<\/strong> Zeichenkette (String)
\nREG_MULTI_SZ<\/strong> Mehrere Zeichenketten
\nREG_EXPAND_SZ<\/strong> Zeichenkette, die auch eine Umgebungsvariable enthalten kann, die dann bei Aufruf expandiert wird
\nREG_DWORD<\/strong> eine 32-Bit-Zahl, sehr oft als ON\/OFF-Schalter eingesetzt und hat dann die Werte 0x00000000<\/code> oder 0x00000001
\n<\/code>REG_QWORD<\/strong> eine 64-Bit-Zahl
\nREG_BINARY<\/strong> eine bin\u00e4re Zahlenfolge. Hie k\u00f6nnen sogar kleine Programme gespeichert werden<\/p>\n

Was wird eigentlich in der Registry gespeichert?<\/h2>\n

Die Registry\u00a0dient eigentlich zur Vereinheitlichung der Aufgaben des Betriebssystems. Wenn das Betriebssystem den Benutzerbildschirm aufbaut und auf die W\u00fcnsche des Benutzers eingeht, greift es auf Einstellungen in der Registry zur\u00fcck. Ein sch\u00f6nes Beispiel zeigt Folie 16,<\/strong> die zeigt, wie die Standardanwendung zu einer bestimmten Dateiendung eingetragen wird (Im Beispiel f\u00fcr die Datei-Erweiterung .zip). Folie 17<\/strong> zeigt, wie Windows herausfindet, wo die Anwendung WinRAR.ZIP eigentlich gespeichert ist und wie die zugeh\u00f6rige .exe-Datei hei\u00dft. Weiter sieht man, wie im Key shell<\/strong> ein weiteres Kommando eingef\u00fcgt wird, das man dann als Anwender bei Aufruf des Kontextmen\u00fcs (Folie 19) zu sehen bekommt („Noch ein Open“).<\/p>\n

Was speichern Programme in der Registry?<\/h2>\n

Ein konkretes Programm muss genaugenommen gar nichts in der Registry speichern. Es ist dann aber ein „vagabundierendes“ Programm, dessen Existenz man sich merken muss, denn im Startmen\u00fc scheint es nicht auf, es sei denn, man w\u00fcrde dort h\u00e4ndisch einen Link zum Programm einstellen. Ein gewisses Minimum an Eintr\u00e4gen wird\u00a0daher immer in der Registry gespeichert sein, damit das Programm aus Windows gerufen werden kann.\u00a0Georgie<\/strong> hat uns ein sehr schones Beispiel daf\u00fcr gezeigt, wie der OwnCloud-Client Registry und Konfigurationsdatei gleichzeitig nutzt.\u00a0\u00a0In Folie 28<\/strong> sieht man den Inhalt der Konfigurationsdatei owncloud.cfg<\/code>. In dieser Textdatei\u00a0wird darauf hingewiesen, dass der Speicherort f\u00fcr die OwnCloud-Daten auf\u00a0D:\/Users\/georgie\/ownCloud<\/code>\u00a0ist und man allein durch Editieren dieser Zeile und manuelles Verschieben der Daten an den neuen Ort den Speicherort der OwnCloud-Daten bequem verschieben kann, ohne dass die Daten vom Server neu geladen werden m\u00fcssten. Diese Daten h\u00e4tten genauso gut in der Registry stehen k\u00f6nnen. Wo man sie daher findet, muss man selbst recherchieren.<\/p>\n

Import-Export<\/h2>\n

\"\"Eine sehr h\u00fcbsche Eigenschaft der Registry\u00a0ist die M\u00f6glichkeit, einen Schl\u00fcssel\u00a0mit allen seinen Unterschl\u00fcsseln als Textdatei (.reg) zu exportieren. Das zugeh\u00f6rige Icon sieht man im Bild links. Man kann diese Datei dann als Text editieren (so wie bei einer .ini-Datei) und durch einen Doppelklick auf den Dateinamen wieder in die Registry einf\u00fcgen. Dabei muss man aber beachten, dass es nicht zu einem vollst\u00e4ndigen Ersetzen\u00a0der Registry-Daten kommt, sondern zu einem „Zusammenf\u00fchren“ („Merge“).<\/p>\n

Wurde ein Wert ge\u00e4ndert, wird diese \u00c4nderung in der Registry eingetragen.\u00a0Wurde aber\u00a0ein Wert gel\u00f6scht, dann ist dieser Wert nach dem Zusammenf\u00fchren nicht weg, weil er in der Registry noch enthalten ist und daher bestehen bleibt.<\/p>\n

Anwendungsm\u00f6glichkeiten sind folgende: Experimentiert man mit einem Schl\u00fcssel und seinen Unterschl\u00fcsseln, dann kann man den Schl\u00fcssel vor den Ver\u00e4nderungen als Textdatei speichern. Sollte etwas misslingen, kann man den urspr\u00fcnglichen Zustand leicht wiederherstellen.<\/p>\n

Administratoren, die bestimmte Einstellungen eines neuen PC rasch vorkonfigurieren wollen, speichern diese Einstellungen in einer solchen .reg-Datei und k\u00f6nnen viel Handarbeit mit einem Klick sehr zeitsparend erledigen.<\/p>\n

Tools<\/h2>\n

Grunds\u00e4tzlich wurde im Vortrag auf einen sparsamen Umgang mit Registry-Tools hingewiesen. Georgie erw\u00e4hnt die Toolbox „jv16 PowerTools X“, die man 60 Tage kostenlos testen und danach um 30 $ kaufen kann. Es sind aber nicht nur Registry-Tools sondern auch viele weitere Tools in dem Paket enthalten.<\/p>\n

Tools bei den Portablen Programmen<\/h2>\n

Die folgenden Programme sind auf unserer Sammlung Portabler Programme enthalten. Gut verwendbar\u00a0sind RegShot<\/strong> und RegScanner<\/strong>, eventuell MJ Registry Watcher<\/strong>.<\/p>\n

MJ Registry Watcher<\/h3>\n

Das Programm installiert sich als Dienst und \u00fcberpr\u00fcft zyklisch den Zustand der Startkonfiguration (Dateien und Registry-Keys) auf Ver\u00e4nderung durch eventuelle Viren.<\/p>\n

RegASSASSIN<\/h3>\n

Entfernt einen Key aus der Registry, der vom System blockiert wird. (Wurde nicht getestet.)<\/span><\/p>\n

RegFromApp<\/h3>\n

Das Programm zeichnet \u00c4nderungen in der Registry auf, die ein ausw\u00e4hlbarer Prozess vornimmt. Leider funktioniert das Programm nicht. Letztes Update 2010. Es gibt kein Update. Nicht verwendbar.<\/span><\/p>\n

Registry Tweaker<\/h3>\n

Das Programm ist mit 2007 datiert und die zugeh\u00f6rige Website existiert nicht mehr. Man muss abraten, das Programm zu verwenden.<\/span><\/p>\n

RegScanner<\/h3>\n

Beim RegScanner gibt man eine zu suchende Zeichenkette ein, dazu kommen verschiedene Optionen und startet den Suchlauf. Das Programm stellt alle Fundorte fest und listet sie in einer langen Liste. Man hat also einen guten \u00dcberblick und muss nicht – wie beim Regedit – von Fund zu Fund springen.<\/p>\n

Das Programm ist „nicht-invasiv“. Es findet alles aber wenn man etwas \u00e4ndern m\u00f6chte, muss man \u00fcber das Kontextmen\u00fc den betreffenden Schl\u00fcssel in Regedit \u00f6ffnen und bearbeiten.<\/p>\n

Regshot<\/h3>\n

Vergleich zwei Zust\u00e4nde der Registry. Zwischen den beiden Schnappsch\u00fcssen f\u00fchrt man das zu untersuchende Experiment aus,<\/p>\n

Der Ordner, in dem dieser Schnappschuss abgelegt wird, ist\u00a0%SYSTEMDRIVE%\\Hive. Ich habe am Desktop einen Ordner „Registry“ angelegt und dort Ordner auf s:\\desktop\\registry ge\u00e4ndert.Klickt man auf „Schnappschuss 1“ kann man aus mehreren Haupt-Keys w\u00e4hlen. Danach w\u00e4hlt man „1. Schnappschuss“ -> Speichern.<\/p>\n

Dann macht man die \u00c4nderungen, die man durch die beiden Schnappsch\u00fcsse beobachten will und fertigt den 2. Schnappschuss an.<\/p>\n

Danach legt das Programm einen Report als Html-Datei an und man kann die Unterschiede zwischen den beiden Zust\u00e4nden untersuchen.<\/p>\n

Links<\/h2>\n