Материал просмотрен 2,584 раз(а)

Иногда возникает необходимость отследить, какой процесс создаёт те или иные файлы. Или наоборот, узнать, что делает тот или иной процесс. Ситуации случаются разные, но суть одна – мониторинг файловой системы и реестра с мощной фильтрацией.

Для этих целей я представляю утилиту Process Monitor, которую, как водится, выложил на файлошаре.

Сразу после запуска утилиты начинается капчинг (захват) событий. Вот главное окно программы:

 

Ну чтож, знакомство с интерфейсом. Как водится – главное меню программы, из которого есть доступ в принципе ко всем остальным функциям.

  1. Открыть и Сохранить – это возможность работать с лог-файлами, то есть на одном компьютере набираем события, а на другом – обрабатываем. Весьма удобно, надо сказать.
  2. Соответственно Вкл/Выкл захвата событий, автоскроллинг и очистка списка событий.
  3. Опции фильтра, подсветки строк и выбора конкретного процесса (нажимаем на прицел и тащим на окно).
  4. Дерево процессов.
  5. Область событий (реестр, файлы, сеть и т.д.). Смотря что мы хотим отмониторить.
  6. Имя процесса.
  7. Действие (чтение файла, создание, удаление ключа реестра и т.д.)
  8. Путь к файлу/ключу.

Помимо этого есть результат операции. А так же гибкая настройка столбцов под разные нужды.

Скажу сразу, для фильтрации есть всего 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 и имя процесса. Промониторил, отфильтровал нужное.