16

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

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

Спасибо.

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

3 ответа3

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

3

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .