Hızlı aramalar için kayıt defterinin içeriğini dizine ekleyebilecek bir yazılım var mı? [kapalı]


16

Windows kayıt defterinde arama ve ------ ry ------ lo ---- ng olabilir.

Tüm kayıtların içeriğini veya tek bir kovanın içeriğini dizine ekleyebilecek , hızlı arama yapılabilecek bir araç var mı? (örneğin, tam metin araması için FTS3 veya FTS4 etkinleştirilmiş bir SQLite veritabanı oluşturmak)

Teşekkür ederim.

PS. RegScanner veya her seferinde yeni, doğrusal bir arama yapan araçlar istemiyorum. Ben bir arama anlık olabilir bir dizinleyici istiyorum . Soru yorumlarına bakın.



buraya bir göz atın: majorgeeks.com/downloads15.html
bubu

2
@Benoit: Bu beni çok rahatsız ediyor, bugün böyle bir uygulama yazmaya çalışacağım.
Tamara Wijsman

1
@TomWij: Ticari olacak mı? Açık kaynak? Lütfen beta testi yapabilir miyim :-)? Bu harika bir proje ve ben destekliyorum.
Benoit

1
@TomWij: "İyi çalışıyor" ile ne kastettiğinizden emin değilim, ama aslında anahtarı açtığınıza ControlSet001(ya da belki ControlSet002başka bir tanesine) dikkat edin CurrentControlSet . CurrentControlSetaslında bu anahtarlara bir bağlantıdır ve normal .NET işlevlerini kullanarak bağlantının kendisini görüntülemek mümkün değildir ; NtOpenKeyhedef yerine gerçek sembolik bağlantıyı açmak gibi bir işleve ihtiyacınız vardır . Buraya ve buraya bir bakın .
user541686

Yanıtlar:


11

Giriş

Kayıt defterini indeksleyen bir uygulama ve bu indeksi araştıran başka bir uygulama yazdım.

Bu , siz yazarken neredeyse anında sonuç verir, bu da birkaç şeyi hızlı bir şekilde aramanızı sağlar.

Bu video gösterisine bakın , sonuçların ne kadar hızlı olduğunu, üç farklı arama ve iki kayıt atlama olduğunu gösterir.

İçerik

resim açıklamasını buraya girin

Endeksleme amacıyla, Lucene.net kullanıyorum , bu tanıdık gelmiyor mu?

Bu, verileri depolamak için bir SQL veritabanı kullanmadan, verileri doğrudan kayıt defterinden indekslememe izin veriyor.

Bu dizin depolanacak %LOCALAPPDATA%\RegistryIndexve 160 MB civarında bir boyuta sahip olacak.

Uygulama 1: RegistryIndex.exe

Bu, tüm kayıt defterini yukarıda belirtilen dizin klasörüne döker,
lütfen unutmayın HKEY_CLASSES_ROOTve HKEY_CURRENT_USERkısayol kovanlarıdır ve bu nedenle dizine eklenmez.

Siz olmadan çalışmasına rağmen, otomatik olarak yönetici olarak çalışacak şekilde yapılandırmak isteyebilirsiniz .

Uygulama yapıldığını gösterdikten sonra pencereyi kapatabilirsiniz ve böylece indeks yapılmıştır.

Uygulama 2: RegistrySearch.exe

Bu basit, yukarıdaki metin kutusuna aramak için bir şeyler yazın ve sonuçlar akacaktır.

Yanlış sözdizimi yazıldığında sarı bir metin kutusu ve alttaki durum çubuğunda hata oluşur.

Joker karakter ve boole işlemleri gibi özel arama özellikleri desteklenir, daha fazla bilgi için bkz. Sorgu Sözdizimi . Alanların belirtilmesinin geçerli ayarda çalışmayacağını, sistemin belirtilmiş yol ve değerin birleşimini aradığını lütfen unutmayın. Böylece DEF değerine sahip A \ B \ C ABCDE F olur.

Tam bir yol arama örneği: "HKEY_LOCAL_MACHINE SOFTWARE"

Arama 1000 sonuç ile sınırlıdır.

Kayıt defterine atlamak için bir girdiyi çift tıklatın, bu SysInternals regjump.exe kullanır .
Atlamanın çalışması için arama programını yönetici olarak çalıştırmanız gerekir , EULA'yı ilk kez kabul edin.

Gelecekteki özellikler

Mevcut sürümü Teknik Önizleme olarak görün, işe yarıyor ancak yeniden düzenleme ve makyajı kullanabilir.

  • Uygulama simgesi ve sürümü
  • Yapılandırma
  • Sonuçları vurgulama
  • Yükleyici paketi
  • Hizmeti izleme (Bir kanca kullanarak kayıt defteri değişikliklerini izler ve dizini günceller)

değişiklikler

  • 21/03: Şimdi mağazalarda %LOCALAPPDATA%, Administratorsizin istiyor .

İndir

İndirmek için buraya tıklayın , tüm dosyaları tercih ettiğiniz bir konuma açın, RegistryIndex / Search.exe için kısayollar oluşturun.

Kaynak

Gizlenmez, bu nedenle IL'yi incelemek için Reflektör'ü kullanabilirsiniz.

Biraz daha fazla özellik ile yeniden düzenlendiğinde kaynak bırakabilirim, belki de CodePlex'e koyabilirim.


2
Uygulamanız% APPDATA% değil% LOCALAPPDATA% kullanırsa daha iyi olur.
edusysadmin

1
@edusysadmin: Düzeltildi, şimdi% LOCALAPPDATA% 'ye kaydediliyor ve yönetici izinleri istiyor.
Tamara Wijsman

1
Teşekkür ederim. Win Vista'yı Fransızca dilinde kullanarak paketi indirdim ve hatta RegistryIndex.exe'yi yönetici başarısız olarak çalıştırıyorum. (“Lütfen yönetici olarak çalıştırın” der). Bunun neden başarısız olabileceği hakkında bir fikrin var mı?
Benoit

@Benoit: Yönetici bölümü için Microsoft sitesinden kod kullanıyorum, ancak uluslararası olmayan bir kod gibi görünüyor. Diğer tüm kodlar uluslararası görünmektedir. Sorun, izinleri aramak için "Administrators" grubunu aramasıdır, çünkü bu grup bilgisayarınızda farklı olarak adlandırılır, bu nedenle başarısız olur. new System.Security.Principal.SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(System.Security.Principal.NTAccount)).ToString().Split('\\').Last()Grup adı almak için bu sorun çözüldü .
Tamara Wijsman

1
Merhaba, proje hala hayatta mı? Geçen sefer çok fazla ters mühendislik yapıyorum ve bu çok faydalı olabilir. Yeni bir bağlantı var mı?
Dmitry Gusarov

3

Bak Nirsoft en RegScanner . Bir dizinleyici değil, ama RegEdit'i arar ve diğer harika özelliklerin yanı sıra seçilen bir isabet için RegEdit'i açar. Kesinlikle bir geliştirme projesine başlamadan önce deneyin (projeyi yapmak uğruna yapmak istemiyorsanız) - gerçekten daha fazlasına ihtiyacınız olmadığını görebilirsiniz.


Bir yorumda daha önce de belirtildiği gibi: iyi bir araçtır, ancak hiçbir şey dizine eklemez.
Benoit

Ve dediğim gibi. Ancak sorunuz, ilk cümlede, RegEdit'in tekniğine değil yavaş hızına hitap ediyor ve bu nedenle RegScanner bunu oldukça iyi ele alıyor. Gelecekte yardımcı olabileceği kimseye öneriyi bırakacağım.
JRobert

Çok güzel bir araç! +1
Piotr Dobrogost

1

Kayıt defterini bir .reg metin dosyasına verebilir ve aramak için favori düzenleyicinizi kullanabilirsiniz.


Bu aslında güzel bir fikir ama muhtemelen yetersizdir çünkü endeksleme yoktur.
Benoit

Tabii ki, daha sonra tüm reg dosyasını bir şekilde SQLite içine FTS3 veya FTS4 etkinleştirilmiş olarak eklemenin muhtemelen bunu yapmanın bir yolu olduğunu unutmayın.
Benoit

@Benoit: Aslında, tüm kayıt defterini ilk önce bir düz metin dosyasına numaralandırma ve Notepad ++ ile arama yapmak aslında kendi başına hızlı. Bu görev için özel olarak yazıldığından ve bir SQL çözümü oluşturmamı gerektirmediğinden dizin oluşturmayı yapmak için Lucene.Net'i kullanıyorum, aynı zamanda vurgulama özelliklerini de destekliyor (arama motorları, btw, SE için Lucene.net kullanıyor arama motoru için), daha sonraki bir sürüme dahil etmeye çalışacağım. Arama sonuçlarında bu endeksleme / FTS sonuçlarını tahmin yazarken , ama ... henüz denemedim
Tamara Wijsman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.