Esiste un software in grado di indicizzare i contenuti del registro per ricerche rapide? [chiuso]


16

La ricerca nel registro di Windows può essere ve ------ ry ------ lo ---- ng.

È disponibile uno strumento in grado di indicizzare i contenuti dell'intero registro o i contenuti di un singolo alveare, in modo che siano disponibili ricerche rapide? (ad esempio la generazione di alcuni database SQLite con FTS3 o FTS4 abilitati per la ricerca full-text)

Grazie.

PS. Non voglio RegScanner o strumenti che eseguano una nuova ricerca lineare ogni volta. Voglio un indicizzatore , con il quale quindi una ricerca può essere istantanea. Vedi i commenti alle domande.



dai un'occhiata qui: majorgeeks.com/downloads15.html
bubu,

2
@Benoit: Questo mi dà molto fastidio, proverò a scrivere tale applicazione oggi.
Tamara Wijsman,

1
@TomWij: sarà commerciale? Open-source? Potrei beta-test per favore :-)? Questo è un grande progetto e lo sostengo.
Benoit,

1
@TomWij: Non sono sicuro di cosa intendevi con "funziona benissimo", ma noti che hai effettivamente aperto la chiave ControlSet001(o forse ControlSet002o qualcun altro), no CurrentControlSet . CurrentControlSetè in realtà un collegamento a tali chiavi e non è possibile visualizzare il collegamento stesso utilizzando le normali funzioni .NET; hai bisogno di una funzione come quella NtOpenKeydi aprire l'effettivo collegamento simbolico anziché la destinazione. Dai un'occhiata qui e qui .
user541686

Risposte:


11

introduzione

Ho scritto un'applicazione che indicizza il registro e un'altra applicazione che cerca questo indice.

Ciò si traduce in risultati quasi istantanei durante la digitazione, ciò consente di cercare rapidamente diverse cose.

Guarda questo video dimostrativo , mostra quanto sono veloci i risultati, tre diverse ricerche e due salti del registro.

L'indice

inserisci qui la descrizione dell'immagine

Ai fini dell'indicizzazione, sto usando Lucene.net , non ti sembra familiare ?

Questo mi permette di indicizzare i dati direttamente dal registro, senza usare un database SQL per archiviarli. Inoltre, Lucene.net ha molte opzioni di indicizzazione e funzionalità di ricerca utili che sono utili!

Questo indice verrà archiviato %LOCALAPPDATA%\RegistryIndexe avrà una dimensione di circa 160 MB.

Applicazione 1: RegistryIndex.exe

Questo sarà il dump l'intero Registro di sistema per la cartella dell'indice di cui sopra,
nota prega che HKEY_CLASSES_ROOTe HKEY_CURRENT_USERsono alveari di scelta rapida e quindi non indicizzato.

Anche se funziona senza di te, potresti voler configurarlo per essere eseguito automaticamente come amministratore .

Una volta che l'applicazione mostra che è stato fatto, puoi chiudere la finestra e quindi l'indice è stato creato.

Applicazione 2: RegistrySearch.exe

Questo è semplice, digita qualcosa da cercare nella casella di testo sopra e i risultati scorreranno.

Digitando una sintassi errata si otterrà una casella di testo gialla e l'errore nella barra di stato in basso.

Sono supportate funzioni di ricerca speciali come caratteri jolly e operazioni booleane, vedere Sintassi delle query per ulteriori informazioni. Si noti che la specifica dei campi non funzionerà nell'impostazione corrente, il sistema cerca in una concatenazione di percorso e valore tokenizzati. Quindi A \ B \ C con valore DEF diventa ABCDE F.

Esempio di ricerca di un percorso esatto: "HKEY_LOCAL_MACHINE SOFTWARE"

La ricerca è limitata a 1000 risultati.

Fare doppio clic su una voce per passare ad essa nel registro, questo utilizza regjump.exe da SysInternals .
È necessario eseguire il programma di ricerca come amministratore affinché il salto funzioni, accettare EULA per la prima volta.

Funzionalità future

Vedi la versione attuale come un'anteprima tecnica, funziona ma potrebbe usare refactoring e trucco.

  • Icona e versione dell'applicazione
  • Configurazione
  • Evidenziando i risultati
  • Pacchetto di installazione
  • Monitorare il servizio (tiene traccia delle modifiche del registro mediante un hook e aggiorna l'indice)

I cambiamenti

  • 21/03: Ora memorizza %LOCALAPPDATA%, chiede il Administratorspermesso.

Scarica

Fare clic qui per scaricare , decomprimere tutti i file in una posizione preferita, creare collegamenti a RegistryIndex / Search.exe.

fonte

Non è offuscato, quindi per ispezionare l'IL è possibile utilizzare Reflector se lo si desidera.

Potrei rilasciare il sorgente quando è refactored con un po 'più di funzionalità, forse posso metterlo su CodePlex.


2
Sarebbe meglio se la tua app utilizzasse% LOCALAPPDATA% e% APPDATA%.
edusysadmin,

1
@edusysadmin: modificato, ora salva in% LOCALAPPDATA% e chiede le autorizzazioni di amministratore.
Tamara Wijsman,

1
Grazie. Ho scaricato il pacchetto, usando Win Vista in lingua francese e persino eseguendo RegistryIndex.exe poiché l'amministratore non riesce. (Continua a dire "si prega di eseguire come amministratore"). Hai idea del perché questo potrebbe fallire?
Benoit,

@Benoit: sto usando il codice dal sito Microsoft per la parte amministratore, ma sembra essere un codice non internazionale. Tutti gli altri codici sembrano internazionali. Il problema è che cerca il gruppo "Amministratori" per cercare le autorizzazioni, dato che questo gruppo è chiamato diverso sul tuo computer e quindi fallisce. Questo è stato risolto ora usando new System.Security.Principal.SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(System.Security.Principal.NTAccount)).ToString().Split('\\').Last()per ottenere il nome del gruppo.
Tamara Wijsman,

1
Ciao, il progetto è ancora vivo? L'ultima volta sto facendo molta ingegneria inversa e questo potrebbe essere molto utile. Qualche nuovo link?
Dmitry Gusarov,

3

Guarda RegScanner di NirSoft . Non un indicizzatore, ma supera le ricerche su RegEdit e aprirà RegEdit per te a un successo selezionato, tra le altre interessanti funzioni. Provalo sicuramente prima di iniziare un progetto di sviluppo (a meno che tu non voglia fare il progetto per il gusto di farlo) - potresti scoprire che non hai davvero bisogno di più.


Come già detto in un commento: è un buon strumento, ma non indicizza nulla.
Benoit,

E come ho anche detto. Ma la tua domanda, nella prima frase, riguarda la bassa velocità di RegEdit, non la sua tecnica, e come tale, RegScanner si rivolge piuttosto bene. Lascerò il suggerimento per chiunque possa aiutare in futuro.
JRobert,

Strumento molto bello! +1
Piotr Dobrogost,

1

È possibile esportare il registro in un file di testo .reg e utilizzare l'editor preferito per cercarlo.


Questa è in realtà una buona idea ma probabilmente non ottimale perché non c'è indicizzazione.
Benoit,

Si noti che, ovviamente, inserire tutti i file reg in qualche modo in SQLite con FTS3 o FTS4 abilitati è probabilmente un modo per farlo.
Benoit,

@Benoit: In realtà, ho iniziato con l'enumerazione dell'intero registro in un file di testo in un primo momento e la ricerca con Notepad ++ in realtà è veloce da sola. Sto usando Lucene.Net per fare l'indicizzazione in quanto è appositamente scritto per quell'attività e non mi richiede di creare una soluzione SQL, supporta anche le funzionalità di evidenziazione (è pensata per i motori di ricerca, tra l'altro, SE utilizza Lucene.net per il motore di ricerca qui) che proverò ad includere, magari in una versione successiva. Immagino che l'indicizzazione / FTS porti a risultati di ricerca durante la digitazione , ma non l'ho ancora provato ...
Tamara Wijsman
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.