Чи існує програмне забезпечення, яке може індексувати вміст реєстру для швидкого пошуку? [зачинено]


16

Пошук у реєстрі Windows може бути дуже ------ ry ------ lo ---- ng.

Чи є якийсь інструмент, який може індексувати вміст усього реєстру чи вміст одного вулика, таким чином, щоб були доступні швидкі пошуки? (наприклад, генерування деякої бази даних SQLite з включеним FTS3 або FTS4 для повнотекстового пошуку)

Дякую.

PS. Я не хочу RegScanner або інструменти, які щоразу проводять новий, лінійний пошук. Я хочу індексатор , за допомогою якого тоді пошук може бути миттєвим. Дивіться коментарі до питань.


можливий дублікат інструменту пошуку та заміни реєстру
Mehper C. Palavuzlar

подивіться тут: majorgeeks.com/downloads15.html
bubu

2
@ Бенуа: Це мене дуже турбує, я сьогодні спробую написати таку заяву.
Тамара Війсман

1
@TomWij: Це буде комерційно? Відкрите джерело? Чи можу я провести бета-тест :-)? Це чудовий проект, і я його підтримую.
Бенуа

1
@TomWij: Я не впевнений, що ви мали на увазі під назвою "добре працює", але зауважте, що ви насправді відкрили ключ ControlSet001(або, можливо, ControlSet002чи якийсь інший), ні CurrentControlSet . CurrentControlSetнасправді посилання на ці ключі, і це не можливо , щоб переглянути посилання сам , використовуючи звичайні функції .NET; вам потрібна така функція, як NtOpenKeyвідкрити фактичне символічне посилання замість цілі. Погляньте тут і сюди .
користувач541686

Відповіді:


11

Вступ

Я написав програму, яка індексує реєстр, та іншу програму, яка шукає цей індекс.

Це призводить до майже миттєвих результатів під час введення, це дозволяє швидко шукати кілька речей.

Дивіться цю демонстрацію відео , показує, наскільки швидкі результати, три різні пошуки та два стрибки реєстру.

Індекс

введіть тут опис зображення

Для цілей індексування я використовую Lucene.net , це не звучить звично ?

Це дозволяє мені індексувати дані прямо з реєстру, не використовуючи базу даних SQL для зберігання даних. Крім того, на Lucene.net є безліч параметрів індексації та функцій, пов’язаних із пошуком, які корисні!

Цей індекс буде зберігатися в %LOCALAPPDATA%\RegistryIndex і має розмір близько 160 МБ.

Додаток 1: RegistryIndex.exe

Це дозволить скинути весь реєстр у вищезгадану папку індексу,
зауважте, що це HKEY_CLASSES_ROOTі HKEY_CURRENT_USERє ярлики вуликів, і таким чином не індексуються.

Хоча це працює і без вас, можливо, ви захочете налаштувати його на автоматичне запуск адміністратора .

Як тільки програма показує, що це зроблено, ви можете закрити вікно і таким чином індекс був зроблений.

Додаток 2: RegistrySearch.exe

Це просто, введіть щось для пошуку в текстове поле вище, і результати будуть надходити.

Введення неправильного синтаксису призведе до жовтого текстового поля та помилки в рядку стану внизу.

Підтримуються спеціальні функції пошуку, такі як підстановка та булеві операції, див. Синтаксис запитів для отримання додаткової інформації . Зверніть увагу, що вказані поля не працюватимуть у поточному налаштуванні, система здійснює пошук у поєднанні токенізованого шляху та значення. Отже A \ B \ C зі значенням DEF стає ABCDE F.

Приклад пошуку точного шляху: "HKEY_LOCAL_MACHINE SOFTWARE"

Пошук обмежений до 1000 результатів.

Двічі клацніть запис, щоб перейти до нього в реєстрі, для цього використовується regjump.exe від SysInternals.
Вам потрібно запустити пошукову програму як адміністратор, щоб перейти до роботи, прийняти EULA вперше.

Особливості майбутнього

Розгляньте поточну версію як Технічний перегляд, вона працює, але може використовувати рефакторинг та макіяж.

  • Піктограма та версія програми
  • Конфігурація
  • Виділення результатів
  • Пакет установки
  • Служба моніторингу (відстежує зміни реєстру за допомогою гачка та оновлює індекс)

Зміни

  • 21/03: Зараз у магазинах %LOCALAPPDATA%, просить Administratorsдозволу.

Завантажити

Клацніть тут, щоб завантажити , розпакуйте всі файли до бажаного місця, створіть ярлики до RegistryIndex / Search.exe.

Джерело

Це не затуманено, тому для огляду ІЛ ви можете використовувати Reflector, якщо хочете.

Я можу випустити джерело, коли воно буде відновлено з трохи більше функцій, можливо, я можу поставити його на CodePlex.


2
Було б краще, якщо ваш додаток використовував% LOCALAPPDATA% не% APPDATA%.
edusysadmin

1
@edusysadmin: Налагоджено, тепер зберігається на% LOCALAPPDATA% і запитує права адміністратора.
Тамара Війсман

1
Дякую. Я завантажив пакунок, використовуючи програму Win Vista французькою мовою і навіть запустивши RegistryIndex.exe як адміністратор не вдається. (Тримає слово "будь ласка, запустіть як адміністратор"). Чи маєте ви уявлення, чому це може вийти з ладу?
Бенуа

@Benoit: Я використовую код із веб-сайту Microsoft для частини адміністратора, але, здається, це не міжнародний код. Усі інші коди виглядають міжнародними. Проблема полягає в тому, що він шукає групу "Адміністратори", щоб шукати дозволи, оскільки ця група називається різною на вашому комп'ютері, тому вона не працює. Тепер це вирішено за допомогою new System.Security.Principal.SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(System.Security.Principal.NTAccount)).ToString().Split('\\').Last()назви групи.
Тамара Війсман

1
Привіт, проект ще живий? Я робив багато зворотної інженерії минулого разу, і це може бути дуже корисно. Будь-яке нове посилання?
Дмитро Гусаров

3

Подивіться на RegScanner NirSoft . Це не індексатор, але він дозволяє шукати RegEdit, і він відкриє RegEdit для обраного хіту, серед інших цікавих функцій. Однозначно спробуйте це, перш ніж розпочати проект розвитку (якщо ви не хочете робити проект заради цього) - можливо, ви дійсно не потребуєте більше.


Як уже було сказано в коментарі: це хороший інструмент, але він нічого не індексує.
Бенуа

І як я теж сказав. Але ваше запитання в першому реченні стосується повільної швидкості RegEdit, а не його техніки, і RegScanner як такий вирішує це досить добре. Я залишу пропозицію для того, кому це може допомогти в майбутньому.
JRobert

Дуже приємний інструмент! +1
Пьотр Доброгост

1

Ви можете експортувати реєстр у текстовий файл .reg та використовувати його улюблений редактор для пошуку.


Це насправді хороша ідея, але, ймовірно, неоптимальна, оскільки немає індексації.
Бенуа

Зверніть увагу, що, звичайно, вкладення всього файлу reg в SQLite з включеним FTS3 або FTS4 - це, мабуть, спосіб зробити це.
Бенуа

@Benoit: Насправді я почав із того, щоб спочатку перерахувати весь реєстр до просто текстового файлу і пошук за допомогою Notepad ++ насправді швидкий сам по собі. Я використовую Lucene.Net, щоб робити індексацію, як це спеціально написано для цієї задачі і не вимагає від мене створення рішення SQL, він також підтримує функції виділення (він призначений для пошукових систем, btw, SE використовує Lucene.net для пошукової системи тут), яку я спробую включити, можливо, в більш пізній версії. Я здогадуюсь, що індексація / FTS приводить до результатів пошуку під час введення , але ще не пробували цього ...
Tamara Wijsman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.