Иногда возникает необходимость отследить, какой процесс создаёт те или иные файлы. Или наоборот, узнать, что делает тот или иной процесс. Ситуации случаются разные, но суть одна – мониторинг файловой системы и реестра с мощной фильтрацией.
Для этих целей я представляю утилиту Process Monitor, которую, как водится, выложил на файлошаре.
Сразу после запуска утилиты начинается капчинг (захват) событий. Вот главное окно программы:
Ну чтож, знакомство с интерфейсом. Как водится – главное меню программы, из которого есть доступ в принципе ко всем остальным функциям.
- Открыть и Сохранить – это возможность работать с лог-файлами, то есть на одном компьютере набираем события, а на другом – обрабатываем. Весьма удобно, надо сказать.
- Соответственно Вкл/Выкл захвата событий, автоскроллинг и очистка списка событий.
- Опции фильтра, подсветки строк и выбора конкретного процесса (нажимаем на прицел и тащим на окно).
- Дерево процессов.
- Область событий (реестр, файлы, сеть и т.д.). Смотря что мы хотим отмониторить.
- Имя процесса.
- Действие (чтение файла, создание, удаление ключа реестра и т.д.)
- Путь к файлу/ключу.
Помимо этого есть результат операции. А так же гибкая настройка столбцов под разные нужды.
Скажу сразу, для фильтрации есть всего 2 действия: Include (включить) и Exclude (исключить).
Путь первый. Накопление событий с последующей фильтрацией.
Накопление событий происходит очень быстро, если не заданы основные фильтры. Как только интересующее нас дейтсвие совершено, останавливаем капчинг (Ctrl+E) либо соответствующая кнопка на панели инструментов и начинаем отфильтровывать.
При клике правой кнопкой мыши на интересующий нас столбец мы увидим примерное контекстное меню:
Причём 2-ой раздел будет меняться соответствующе, на какой строке мы кликнули. Если кликнуть на столбце Process Name: firefox, то работа идёт с этой строкой. Если на Operation: CreateFile, то, соответственно фильтруем эту строку.
Итак, если нас интересует всё, что связано с firefox, то кликая правой кнопкой мыши на процесса с именем firefox выбираем пункт Include ‘firefox.exe’. Если же мы хотим убрать все вхождения процесса из списка (он нам не нужен), то выбираем Exclude, соответственно.
Таким образом мы “отрезаем” всё лишнее и выбираем только нужные события.
Пункт Highlight из этой же 2-ой группы – это подсветка соответствующих строк, тоже бывает полезным в определённых случаях.
В первой группе – интересные моменты – это Properties (свойства) – свойства объекта, Bookmark (закладка) – выделить строку, чтобы её было потом быстро найти, Jump (прыжок) – переход к объекту, файлу, ключу реестра и т.д.
Из третьей группы – соответственно функция “Исключить все события ПЕРЕД” и “…ПОСЛЕ” выделенной строки.
Четвёртая группа – более гибкие настройки включений-исключений и подсветки. На практике ни разу не использовал.
Путь второй. Ожидание нужного события.
Иногда бывает нужно отмониторить вполне определённое событие, детали которого мы знаем. Например – запуск определённого процесса или создание определённого файла.
В этом случае сразу заходим в “Фильтры” и создаём фильтр с нужными нам параметрами.
Например на скриншоте ниже я добавил фильтр на создание процесса.
Надо сказать, что все поля зависят друг от друга, т.е. в выпадающем списке 3 появится то, что связано с группой событий из списка 1. В случае операций – будут операции. В случае pID-ов – номера процессов и т.д.
Запустим блокнот и командную строку. И увидим:
В общем можно при должном умении очень неплохо проследить, кто где и что делает из процессов. На вашу фантазию.
Моя практика.
Возникла задача – отследить, какие именно файлы скачивает flash-приложение из сети. Поставил фильтр на create file и имя процесса. Промониторил, отфильтровал нужное.
Очень понравилось! А можно больше примеров по работе с этой программой по мониторингу системы?