- Реестр windows дата изменений
- Как узнать дату создания или модификации ключа реестра
- Аудит изменений реестра в Windows средствами системы
- Как посмотреть изменения в реестре Windows
- Что изменило реестр: ищем виновника и причину.
- Перед тем, как начать…
- Что изменило реестр: настраиваем групповую политику
- Что изменило реестр: настраиваем события в самом реестре
- Что изменило реестр: проверяем
Реестр windows дата изменений
Как узнать дату создания или модификации ключа реестра
Еще одна несложная, но полезная задача: как узнать дату создания или модификации ключа реестра? Например, некоторые программы для очистки реестра от всякого мусора показывают эту информацию. Еще ее можно посмотреть, если экспортировать через regedit ветку реестра в формате текстового файла (*.txt). А вот как получить эту информацию из своего приложения, я вам сейчас расскажу.
На самом деле все решается одной единственной функцией — RegQueryInfoKey. С ее помощью можно получить не только данные о дате модификации, но и множество другой полезной информации. Но сейчас нас интересует только дата и время создания или модификации ключа реестра. Кроме того есть несколько важных особенностей, которые важно учитывать. Начнем с сегмента данных, в котором подготовим все необходимые структуры и переменные.
- ; Ветка реестра
- reg_key db ‘SOFTWARE\Microsoft’ , 0
- ; Хэндл открытого ключа реестра
- phkResult dd ?
- ; Структуры для работы с датой и временем
- ftime FILETIME
- ltime FILETIME
- stime SYSTEMTIME
- ; Открыть ключ реестра
- invoke RegOpenKey , HKEY_LOCAL_MACHINE , reg_key , phkResult
- ; Получить информацию о ключе реестра
- invoke RegQueryInfoKey , [ phkResult ] , \
- NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , \
- ftime
- ; Закрыть ключ
- invoke RegCloseKey , [ phkResult ]
- ; Преобразование времени в локальное
- invoke FileTimeToLocalFileTime , ftime , ltime
- invoke FileTimeToSystemTime , ltime , stime
- ; Теперь в структуре stime (SYSTEMTIME) находится дата и время
- ; создания или модификации ветки реестра
Особенность заключается в том, что время создания или модификации сохраняется только для ключа реестра и меняется при добавлении нового параметра или изменении имени или значения любого уже существующего параметра внутри этого ключа, а также при добавлении или удалении дочернего ключа. При этом, если изменения вносились внутри дочернего ключа реестра, то время модификации родительского ключа не меняется.
А вот получить дату создания или модификации какого-либо конкретного параметра ключа нельзя, только если он не единственный в ключе. В этом случае действительно, дата модификации ключа будет в точности равна дате модификации или создания этого параметра.
В приложении пример программы с исходным текстом, которая показывает дату создания или последней модификации ключа реестра HKLM\SOFTWARE\Microsoft вашей системы.
Пример программы с исходным текстом (FASM)
Аудит изменений реестра в Windows средствами системы
Изменение большинства настроек Windows практически всегда подразумевает создание или изменение записей в системном реестре. Устанавливаете ли вы программу, включаете или отключайте в параметрах ту или иную функцию, соответствующие изменения тут же заносятся в ключи реестра. Но подобные изменения не всегда имеют положительный результат, замена или удаление параметров пользователем или сторонней программой может привести к неполадкам вплоть до полной неработоспособности системы.
Поэтому было бы неплохо, если бы администратор мог отслеживать производимые в реестре действия, ведь так можно узнать, кто или что изменило реестр. Использовать для этих целей специальные утилиты вроде Process Monitor? Можно, впрочем, Windows располагает и собственными средствами мониторинга, причем столь же эффективными, как и специализированные сторонние утилиты. Этим полезным делом в Windows занимаются особые службы Object Access Audit Policy и Audit Security . Первая отвечает за аудит изменений в реестре, в задачи второй входит наблюдение за конкретными ключами.
Давайте же посмотрим, как задействовать эти инструменты.
Откройте командой с secpol.msc оснастку управления локальными политиками безопасности и перейдите по цепочке Локальные политики -> Политики аудита -> Аудит доступа к объектам.
Кликните по нему два раза, в открывшемся окошке установите галочки в пунктах «Успех» и «Отказ».
Теперь нужно определиться с ключом реестра, который собираетесь отслеживать.
Откройте командой regedit редактор реестра, отыщите нужный вам подраздел, кликните по нему ПКМ и выберите в меню опцию «Разрешения».
Для примера мы выбрали подраздел SOFTWARE , именно в него заносят записи большинство устанавливаемых приложений.
В открывшемся окошке жмем «Дополнительно».
И переключаемся уже в новом окне настроек на вкладку «Аудит», нажимаем кнопку «Добавить».
В окне элемента аудита щелкаем по ссылке «Выберите субъект» и вводим в поле добавления имен «Все». Жмем «Проверить имена», затем подтверждаем настройки нажатием «OK».
И еще раз «OK».
Далее в окне элемента аудита тип выставляем «Все» (на успех и отказ) , общие разрешения — полный доступ и последовательно сохраняем все настройки.
Отныне любые действия, вносимые в реестр программами или пользователями, станут записываться в журнал событий, а вы сможете их просматривать, используя в качестве параметров сортировки следующие идентификаторы:
• 4656 — код указывает на попытку пользователя получить доступ к ключу реестра.
• 4657 — этот код указывает на изменение какого-либо параметра в реестре.
• 4660 — запись с этим кодом события будет сделана при удалении параметра.
• 4663 — код события, определяющий совершенное действие — создание нового параметра, просмотр, изменение либо удаление уже существующего.
Рассмотрим всё на конкретном примере.
Открываем журнал событий Windows, заходим в раздел «Безопасность», в правой колонке жмем «Фильтр текущего журнала».
Вводим код интересующего нас события в поле фильтра.
Сортируем записи и смотрим, кто, как и когда изменил параметры реестра.
Вот так просто отслеживать вносимые в реестр приложениями или пользователями изменения.
Если вы собираетесь пользоваться аудитом на постоянной основе, то следите за заполнением журнала и периодически очищайте его.
Как посмотреть изменения в реестре Windows
Время от времени у пользователей и системных администраторов может возникать необходимость посмотреть изменения в реестре Windows за определенный период. Это может быть вызвано желанием посмотреть, какие изменения вносят определенная программа или действия пользователей.
Посмотреть изменения, внесённые в реестр Windows, можно как встроенными в операционную систему средствами, так и при помощи стороннего ПО. Начнём с первых.
Кроме того, упомянем ещё, что всё сводится к двум методам: сравнению двух «снимков» реестра, сделанных в разное время, или мониторингу изменений в режиме реального времени.
Самый доступный способ посмотреть, какие в реестр были внесены изменения, это использование встроенной в Windows утилиты fc.exe. Плюсом этого метода является отсутствие надобности искать дополнительное ПО. В общем-то, утилита fc.exe используется не только для просмотра изменений реестра, а для сравнения двух файлов или наборов файлов вообще. Таким образом, становится понятно, что нам нужны два «снимка» реестра.
Экспортируем предварительно весь реестр или только нужную нам ветку. Допустим, у нас есть два файла: 1.reg и 2.reg, которые мы положили на диск C. Тогда для их сравнения можно использовать команду
В данном случае мы вывели результат работы команды в текстовый файл. Но я бы рекомендовал использовать более продвинутый формат и (или) редактор посильнее Блокнота, чтобы не было проблем с кодировкой.
Выше я использовал MS Word и формат .doc.
Проблема использования fc.exe кроется в том, что результат её работы является малочитаемым. Скриншот выше говорит о том, что в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Test был добавлен параметр Primer. Но вряд ли получится это понять, если не знать об этом заранее. Полноценным инструментом анализа fc.exe не назовешь. Эта утилита больше подходит, когда вы сами вносите изменения в реестр, и хотите убедиться, что они были внесены (но не хотите бродить по веткам реестра в regedit).
Поэтому перейдем к другой утилите, которая, к сожалению, уже не входит в состав современных версий Windows, но может быть добавлена. Называется она WinDiff. Добавить её можно через установку пакетов Microsoft Windows SDK. К сожалению, после Windows 7 WinDiff исключили и из этих пакетов, но скачать её можно и отдельно, например, по этой ссылке.
Чтобы использовать утилиту WinDiff из командной строки Windows, поместите её в каталог %WINDIR%\System32. Теперь для сравнения двух файлов реестра из примера нам достаточно ввести команду
Откроется графический интерфейс утилиты, который можно видеть на скриншоте выше. Разберемся, как читать вывод программы WinDiff.
- Строки на белом фоне означают совпадение содержимого файлов;
- Строки на красном фоне показывают содержимое первого (левого) файла, которого нет во втором (правом);
- Строки на желтом фоне показывают содержимое второго (правого) файла, которого нет в первом (левом).
У нас есть желтая строка с содержимым «Primer»=»». Это говорит о том, что во втором файле появился параметр Primer с пустым значением. И находится он в HKEY_LOCAL_MACHINE\SOFTWARE\Test. Так как второй файл был сохранен позже первого, можно сделать вывод, что этот параметр был добавлен, а не удален.
Перейдем к сторонним утилитам мониторинга реестра.
Популярным бесплатным решением является программа Regshot. Программа тоже работает со снимками реестра, причем делает их сама, а не анализирует заранее сохраненные файлы. В этом её минус. А плюс в том, что она очень проста.
Сперва нужно сделать первый снимок реестра.
Некоторое время уйдёт на этот процесс. Далее проводим операции с компьютером, которые хотим зафиксировать, и делаем второй снимок.
После чего их можно сравнить.
После окончания процесса сравнения программа автоматически откроет файл с результатами работы. Ещё одним плюсом Regshot является то, что этот файл легко читается. Правда, стоит отметить, что в нём будет куча изменений реестра, которые могут показаться своеобразной азбукой Морзе. В моем случае оба снимка были сделаны с разницей меньше минуты. Мои действия заключались только в том, что я удалил параметр Primer. Как видите, программа это зафиксировала. А также зафиксировала и много других изменений. «Под капотом» операционной системы постоянно что-то происходит, и большая часть из этого скрыта от наших глаз.
Более ненужные снимки можно удалить, нажав кнопку Очистить в интерфейсе программы. Скачать программу Regshot можно по этой ссылке.
Последним рассматриваемым в этой статье средством мониторинга реестра Windows будет программа Registry Live Watch. Пожалуй, уже из названия можно понять, что данная программа способна следить за изменением реестра в реальном времени.
Программа тоже крайне проста и, по сути, даже не имеет толком настроек. Вы лишь указываете ветку реестра, за которой требуется следить, и запускаете мониторинг кнопкой Start Monitor.
Однако программа имеет серьезный недостаток, который, по большей части нивелирует саму идею мониторинга. Она выдаёт лишь сообщения об изменении в наблюдаемой ветке реестра, но не пишет, какие именно изменения были внесены. Вторым недостатком является то, что Registry Live Watch не умеет мониторить весь реестр целиком. Скачать программу можно здесь.
Под конец статьи поговорим о том, как автоматизировать сбор информации о реестре не прибегая к стороннему ПО. Сделать это можно при помощи скрипта, содержащего команду reg export , синтаксису которой посвящена отдельная статья. Запуская данный скрипт по расписанию, вы получите ряд снимков реестра, которые можно будет при необходимости сравнить.
Что изменило реестр: ищем виновника и причину.
Отслеживание изменений в реестре – один из важнейших моментов аудита Windows. Так, мы можем проследить когда и что изменило реестр, став либо причиной неполадок или просто вызвало замену параметров. Какая же программа или кто из пользователей внесли изменения в ключи и параметры реестра? Мало кто из пользователей знает, но эта функция в Windows почти готова к работе и заряжена; нам остаётся только спустить крючок.
Самый первый способ, который напрашивается, это использование утилиты Process Monitor. Работу с ней мы обязательно разберём отдельно, а пока поговорим о “встроенных” возможностях Windows. И это как раз тот редкий случай, когда уже имеющийся вариант лучше остальных, со стороны.
В Windows аудитом изменений реестра “занимается” специальная служба под наименованием Object Access Audit Policy , а за конкретным ключом будет присматривать Audit Security . После работы с их настройками соответствующая информация будет отображаться в Журнале событий Windows.
Вся процедура подразумевает три пункта:
- активация политики Аудита
- активация SACL
- просмотр Журнала событий и поиск по фильтрам
Перед тем, как начать…
Обычно на эту статью натыкаются, когда что-то где-то УЖЕ произошло. Подразумеваю, что пользователь исправил ситуацию вплоть до переустановки неработоспособной Windows и теперь просто пытается не допустить повторения ошибки. Это значит, что вы УЖЕ знаете, какой примерно из разделов реестра нужно мониторить, ибо контролировать весь реестр не получится: журнал событий Windows разрастётся до нечитаемых размеров. Так что:
- этот режим, вероятно, носит временный характер
- для очистки Журнала воспользуйтесь информацией из статьи по ссылке выше.
А мы приступаем.
Что изменило реестр: настраиваем групповую политику
- с помощью быстрой команды отправляемся в редактор политики
- найдём настройку Политики Аудита и справа выберем Аудит доступа к объектам:
- выставим пару галочек для формирования событий:
- Соглашаемся, закрываем окна и выходим из редактора
Что изменило реестр: настраиваем события в самом реестре
- заходим в редактор реестра
- ищем ключ, изменения в котором нужно отслеживать. Для примера я возьму параметр, в который часто лезут программы (раздел огромный, в Журнале ему будет тесно, конечно):
- через Разрешения выходим на окно Безопасности, в котором выберем кнопку Дополнительно. И окажемся в окне Дополнительных параметров безопасности для искомого ключа. Следуем по пути, мною указанному (вкладка Аудит – кнопка Добавить – в окне имён пишем Все и закрепим кнопкой Проверить имена):
- появится окно Объекта для элемента аудита. Выставляем Полный доступ на Успех и Отказ:
- Применить и ОК. Можно из реестра выходить, здесь закончили.
Что изменило реестр: проверяем
Всё готово. Чтобы проверить изменения в реестре, необходимо отправиться в Журнал событий:
В левой части консоли раскрываем Журналы Windows -> Безопасность:. Событий там много из без того, так что нам лишь стоит выставить необходимы фильтры по идентификационным номерам (все вам вряд ли понадобятся, читайте описание для каждого). Это:
- 4656 – это самое первое из событий, регистрирующееся в тот момент, когда какой-то пользователь пытается получить доступ к ключу реестра. Событие расскажет о категории доступа, запрошенного пользователем.
- 4657 – параметр реестра изменился
- 4660 – параметр удалён
- 4663 – это событие покажет, какой вид операции над файлом пользователь совершил: создал новый, изменил значение, удалил или даже просто посмотрел
Если вам нужно несколько событий, то вводим их через запятую, без пробела. Проверим все:
Подробности события – в одноимённой вкладке для каждого из них:
Теперь вы будете знать всё: какая программа и какой пользователь пытается или успешно что-то с реестром делает.