Существует ли программное обеспечение, которое может индексировать содержимое реестра для быстрого поиска? [закрыто]

16

Поиск в реестре Windows может быть ve ------ ry ------ lo ---- ng.

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

Спасибо.

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

Benoit
источник
возможный дубликат инструмента поиска и замены реестра
Mehper C. Palavuzlar
посмотрите здесь: majorgeeks.com/downloads15.html
Бубу
2
@Benoit: это меня очень беспокоит, сегодня я попробую написать такое приложение.
Тамара Вийсман
1
@ TomWij: это будет коммерческим? Открытый источник? Могу ли я провести бета-тестирование, пожалуйста :-)? Это отличный проект, и я его поддерживаю.
Бенуа
1
@ TomWij: Я не уверен, что вы имели в виду под «он работает нормально», но обратите внимание, что вы действительно открыли ключ ControlSet001(или, может быть, ControlSet002или какой-то другой), нет CurrentControlSet . CurrentControlSetна самом деле это ссылка на эти ключи, и невозможно просмотреть саму ссылку с помощью обычных функций .NET; вам нужна функция, например, NtOpenKeyчтобы открыть фактическую символическую ссылку вместо цели. Посмотрите здесь и здесь .
user541686

Ответы:

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.

Источник

Он не запутан, поэтому для проверки IL вы можете использовать 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 для вас для выбранного удара, среди других интересных функций. Обязательно попробуйте это, прежде чем начать проект разработки (если вы не хотите делать проект ради этого) - вы можете обнаружить, что вам больше не нужно.

JRobert
источник
Как уже говорилось в комментарии: это хороший инструмент, но он ничего не будет индексировать.
Бенуа
И, как я уже сказал. Но ваш вопрос в самом первом предложении касается медленной скорости RegEdit, а не ее техники, и, как таковой, RegScanner решает эту проблему довольно хорошо. Я оставлю это предложение тому, кому оно может помочь в будущем.
JRobert
Очень хороший инструмент! +1
Петр Доброгост
1

Вы можете экспортировать реестр в текстовый файл .reg и использовать ваш любимый редактор для его поиска.

Malvineous
источник
На самом деле это хорошая идея, но, вероятно, неоптимальная, потому что нет индексации.
Бенуа
Обратите внимание, что, конечно, вставка всех reg-файлов каким-либо образом в SQLite с включенным FTS3 или FTS4, вероятно, является способом сделать это.
Бенуа
@Benoit: На самом деле, я начал с простого перечисления всего реестра в виде простого текстового файла, и поиск с помощью Notepad ++ фактически сам по себе быстрый. Я использую Lucene.Net для индексирования, так как он специально написан для этой задачи и не требует от меня создания решения SQL, он также поддерживает функции выделения (это предназначено для поисковых систем, кстати, SE использует Lucene.net для поисковой системы здесь), который я постараюсь включить, возможно, в более поздней версии. Я предполагаю, что индексирование / FTS приводит к результатам поиска, пока вы
печатаете