Gibt es eine Software, die den Inhalt der Registrierung für eine schnelle Suche indizieren kann? [geschlossen]


16

Die Suche in der Windows-Registrierung kann ve ------ ry ------ lo ---- ng sein.

Gibt es ein Tool, das den Inhalt der gesamten Registrierung oder den Inhalt einer einzelnen Struktur indizieren kann , sodass schnelle Suchvorgänge verfügbar sind? (Zum Beispiel SQLite-Datenbanken mit aktiviertem FTS3 oder FTS4 für die Volltextsuche generieren)

Vielen Dank.

PS. Ich möchte nicht, dass RegScanner oder Tools jedes Mal eine neue lineare Suche durchführen. Ich möchte einen Indexer , mit dem dann eine Suche sofort erfolgen kann. Siehe Fragenkommentare.




2
@Benoit: Das stört mich sehr, ich werde heute versuchen, eine solche Anwendung zu schreiben.
Tamara Wijsman

1
@TomWij: Wird es kommerziell sein? Open Source? Könnte ich es bitte testen :-)? Dies ist ein großartiges Projekt, und ich unterstütze es.
Benoit

1
@TomWij: Ich bin nicht sicher, was Sie mit "es funktioniert gut" gemeint haben, aber beachten Sie, dass Sie den Schlüssel tatsächlich geöffnet haben ControlSet001(oder vielleicht ControlSet002einen anderen), nicht CurrentControlSet . CurrentControlSetist eigentlich ein Link zu diesen Schlüsseln, und es ist nicht möglich, den Link selbst mit den regulären .NET-Funktionen anzuzeigen . Sie benötigen eine Funktion NtOpenKey, um den eigentlichen symbolischen Link anstelle des Ziels zu öffnen. Schauen Sie hier und hier vorbei .
Mehrdad

Antworten:


11

Einführung

Ich habe eine Anwendung geschrieben, die die Registrierung indiziert, und eine andere Anwendung, die diesen Index durchsucht.

Dies führt zu nahezu sofortigen Ergebnissen, während Sie tippen. Auf diese Weise können Sie schnell nach mehreren Dingen suchen.

Sehen Sie sich diese Videodemonstration an , die zeigt, wie schnell die Ergebnisse sind, drei verschiedene Suchvorgänge und zwei Registrierungssprünge.

Der Index

Bildbeschreibung hier eingeben

Zum Indizieren benutze ich Lucene.net , kommt mir das nicht bekannt vor ?

Auf diese Weise kann ich Daten direkt aus der Registrierung indizieren, ohne eine SQL-Datenbank zum Speichern der Daten zu verwenden. Darüber hinaus bietet Lucene.net zahlreiche Indizierungsoptionen und Suchfunktionen, die sich als nützlich erweisen.

Dieser Index wird in gespeichert %LOCALAPPDATA%\RegistryIndexund hat eine Größe von ca. 160 MB.

Anwendung 1: RegistryIndex.exe

Dies wird die gesamte Registrierung zu den oben genannten Index Ordnern Dump,
bitte beachten Sie, dass HKEY_CLASSES_ROOTund HKEY_CURRENT_USERVerknüpfung Nesselsucht ist und somit nicht indiziert.

Obwohl es funktioniert, ohne dass Sie es möglicherweise so konfigurieren möchten, dass es automatisch als Administrator ausgeführt wird .

Sobald die Anwendung dies anzeigt, können Sie das Fenster schließen und der Index wurde erstellt.

Anwendung 2: RegistrySearch.exe

Diese ist einfach, geben Sie etwas zum Suchen in das Textfeld oben ein und die Ergebnisse fließen ein.

Die Eingabe einer falschen Syntax führt zu einem gelben Textfeld und dem Fehler in der Statusleiste unten.

Spezielle Suchfunktionen wie Platzhalter- und Boolesche Operationen werden unterstützt. Weitere Informationen finden Sie unter Abfragesyntax . Bitte beachten Sie, dass die Angabe von Feldern in der aktuellen Einstellung nicht funktioniert. Das System sucht in einer Verkettung von Pfad und Wert mit Token. Also wird A \ B \ C mit dem Wert DEF zu ABCDE F.

Beispiel für die Suche nach einem genauen Pfad: "HKEY_LOCAL_MACHINE SOFTWARE"

Die Suche ist auf 1000 Treffer begrenzt.

Doppelklicken Sie auf einen Eintrag, um zu ihm in der Registrierung zu springen. Dies verwendet regjump.exe von SysInternals.
Sie müssen das Suchprogramm als Administrator ausführen, damit der Sprung funktioniert. Akzeptieren Sie EULA zum ersten Mal.

Zukünftige Funktionen

Sehen Sie sich die aktuelle Version als technische Vorschau an. Sie funktioniert, könnte aber überarbeitet und neu gestaltet werden.

  • Anwendungssymbol & Version
  • Aufbau
  • Hervorheben von Ergebnissen
  • Installationspaket
  • Überwachen des Dienstes (Verfolgt Registrierungsänderungen mithilfe eines Hooks und aktualisiert den Index)

Änderungen

  • 21/03: Jetzt speichern in %LOCALAPPDATA%, bitte um AdministratorsErlaubnis.

Herunterladen

Klicken Sie hier zum Herunterladen , Entpacken aller Dateien an einen bevorzugten Speicherort und Erstellen von Verknüpfungen zu RegistryIndex / Search.exe.

Quelle

Es ist nicht verschleiert, so dass Sie zur Inspektion der IL Reflector verwenden können, wenn Sie möchten.

Ich kann den Quellcode veröffentlichen, wenn er mit etwas mehr Funktionen überarbeitet wurde. Vielleicht kann ich ihn auf CodePlex setzen.


2
Wäre besser, wenn Ihre App% LOCALAPPDATA% und nicht% APPDATA% verwenden würde.
Edusysadmin

1
@edusysadmin: Angepasst, speichert jetzt in% LOCALAPPDATA% und fragt nach Administratorrechten.
Tamara Wijsman

1
Vielen Dank. Ich habe das Paket mit Win Vista in französischer Sprache heruntergeladen und sogar RegistryIndex.exe als Administrator nicht ausgeführt. (Sagt immer "Bitte als Administrator ausführen"). Haben Sie eine Idee, warum dies fehlschlagen könnte?
Benoit

@Benoit: Ich verwende Code von der Microsoft-Site für den Administrator-Teil, aber es scheint sich um nicht internationalen Code zu handeln. Alle anderen Codes sehen international aus. Das Problem ist, dass die Gruppe "Administratoren" nach den Berechtigungen durchsucht wird, da diese Gruppe auf Ihrem Computer anders heißt und daher fehlschlägt. Dies wurde nun mit behoben new System.Security.Principal.SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(System.Security.Principal.NTAccount)).ToString().Split('\\').Last(), um den Gruppennamen zu erhalten.
Tamara Wijsman

1
Hallo, lebt das Projekt noch? Ich mache das letzte Mal viel Reverse Engineering und das könnte sehr nützlich sein. Irgendein neuer Link?
Dmitry Gusarov

3

Schauen Sie sich den RegScanner von NirSoft an . Kein Indexer, aber es führt dazu, dass RegEdit nicht durchsucht wird, und es öffnet RegEdit für Sie unter anderem für einen ausgewählten Treffer. Probieren Sie es auf jeden Fall aus, bevor Sie ein Entwicklungsprojekt starten (es sei denn, Sie möchten das Projekt zu diesem Zweck ausführen). Möglicherweise benötigen Sie nicht wirklich mehr.


Wie bereits in einem Kommentar gesagt: Es ist ein gutes Werkzeug, aber es indiziert nichts.
Benoit

Und wie gesagt auch. Aber Ihre Frage im allerersten Satz befasst sich mit der langsamen Geschwindigkeit von RegEdit und nicht mit seiner Technik, und RegScanner geht dies als solche ziemlich gut an. Ich überlasse den Vorschlag allen, denen er in Zukunft helfen könnte.
JRobert

Sehr schönes Werkzeug! +1
Piotr Dobrogost

1

Sie können die Registrierung in eine .reg-Textdatei exportieren und mit Ihrem bevorzugten Editor durchsuchen.


Das ist eigentlich eine nette Idee, aber wahrscheinlich suboptimal, weil es keine Indexierung gibt.
Benoit

Beachten Sie, dass das Einfügen aller Reg-Dateien in SQLite mit aktiviertem FTS3 oder FTS4 wahrscheinlich eine Möglichkeit ist, dies zu tun.
Benoit

@Benoit: Eigentlich habe ich zunächst nur die gesamte Registrierung in eine Nur-Text-Datei aufgezählt, und die Suche mit Notepad ++ ist eigentlich von selbst schnell. Ich verwende Lucene.Net für die Indizierung, da es speziell für diese Aufgabe geschrieben wurde und ich keine SQL-Lösung erstellen muss. Es unterstützt auch Hervorhebungsfunktionen (es ist für Suchmaschinen gedacht, übrigens, SE verwendet Lucene.net für die Suchmaschine hier), die ich vielleicht in einer späteren Version aufnehmen möchte. Ich vermute, dass Indizierung / FTS zu Suchergebnissen führt, während Sie tippen , es aber noch nicht ausprobiert haben ...
Tamara Wijsman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.