Понимание Process Monitor


Process Monitor 3.01

Многих интересует вопрос «Как узнать, что делает программа при установке, запуске, закрытии, работе? Как следить за программой?» Ответ: с помощью другой программы, которая называется Process Monitor.
Process Monitor – программа для Windows, которая в режиме реального времени показывает куда записываются или откуда удаляются файлы, какие файлы читаются той или иной программой, какие действия программа делает с реестром, как и когда отслеживаемая программа использует сеть (интернет), а также следит за процессами и потоками. Программа оснащена мощным фильтром для отслеживания нужных процессов или событий. Process Monitor является главным инструментом для устранения неисправностей системы и избавления от вредоносных программ (вирусов).

А теперь рассмотрим подробнее как работать с программой, и разберем ее ключевые функции. Для более подробного ознакомления с программой смотри колонку «видео» справа, так как для полного описание программы потребуется написать книгу ).

Так выглядит главное окно программы при запуске Process Monitor. Сразу после запуска начинается запись процессов Windows это обращение и создание файлов, обращение к реестру, сети и т.д.

Разумеется, сразу записывается очень большое количество информации, и найти в ней нужное не очень легко, но здесь на помощь к нам прейдут фильтры, но о них чуть позже сначала разберемся с интерфейсом программы.

На основной панели программы :

Размещены ее основные функции. Самая правая группа значков

Это значки предварительной (грубой) фильтрации. Слева направо: показывать обращения к реестру, к файловой системе, к сети (интернету), показывать процессы и потоки, профилирование для каждого процесса. Соответственно если выбрать одну иконку, например, обращение к реестру, то и будет показываться только обращение к реестру, если две, то две и т.д. Замечу что даже если вы какие то иконки не выбираете, то запись ее все равно продолжается и если вы ее включите, то будут показаны события до ее включения.

Следующие два пункта это поиск и переход:

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

Следующая группа меню фильтры

Первый пункт это непосредственно сам фильтр при нажатии откроется окно где надо будет выбрать параметры фильтрации. Второй пункт это выделение определенных строчек, т.е. тоже фильтр, но нужные данные он просто выделяет. Третий пункт «прицел» он нужен для быстрого добавления процесса, если вы не знаете, как он называется. Например, открылось какое-то окно, но вы не знаете что это за окно, нажимаете на прицел и держите его, перетаскивая на появившееся окно, автоматически создастся фильтр, который будет следить за этим процессом.

Следующая группа меню отвечает за отображение событий в главном окне

Увеличительное стекло это остановка и запуск слежения. Список со стрелочкой это автоматическая прокрутка, когда появляется новая запись. А список с ластиком это очистка списка событий, которые отображаются на кране.

Последние два меню, думаю сильно объяснять не надо это сохранение или загрузка прослеженных процессов

Сохранить можно, например, если хотите разобрать данные на другом компьютере.

А теперь разберем работу программы на примере. Допустим, мы хотим узнать, что делает какое-то приложение у нас в компьютере. Пусть это приложение у нас будет блокнот. В процессах мы заранее знаем, что он называется как notepad.exe. Запускаем Process Monitor, нажимаем кнопку «Filter» (Ctrl+L) и видим следующее окно:

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

Создадим свой фильтр, который будет показывать только процесс notepad.exe. Для этого нажимаем первую стрелочку вниз, где по умолчанию написано “Architecture” и из предложенного списка выбираем “Process Name” Рис.1. Далее из второго списка выбираем пункт “is”, который стоит по умолчанию Рис.2. В следующем меню мы можем выбрать процесс из уже запущенных или добавить его самим, написав в поле “notepad.exe”т.к. блокнот нами еще не запущен Напишем его сами Рис.3. Последний пункт это то как позиционировать этот процесс “Include” оставить только его, а “Exclude” исключить его из общего потока. Выбираем “Include” Рис.4. Нажимаем ниже кнопочку “Add” добавить фильтр.

В итоге у нас должно получиться следующее:

Нажимаем внизу “Apply” “Ok” и мы видим, что список в программе стал чистым это, потому что мы включили фильтр процесс, который еще не запущен и добавили условие игнорировать все кроме этого процесса.

Запускаем блокнот и видим следующее:

Первой строчкой видим запуск процесса с PID и Parent PID, потом создается поток, загружаются графические файлы, создается файл в папке C:WindowsPrefetch и с именем NOTEPAD.EXE-D8414F97.pf. Можем сразу перейти в эту папку для этого достаточно выделить строчку в данном случаи пятая и нажать на главной панели зеленую стрелочку, и сразу отроется папка, в которой создан этот файл. Далее идет подгрузка различных системных библиотек, чтение настроек из реестра как системных таки и пользовательских и много еще чего.

На главном меню есть еще один значок, о котором не говорилось раньше это: Это иконка дерева процессов. Если ее нажать то увидем следующее окно:

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

На этом все, как я уже говорил все показать потребуется написание целой книги, поэтому смотрите видео, которые расположены справа там больше рассказывается да еще и показывается ).

Комментарии по вышесказанному приветсвуются.

Столбцы Process Monitor

Столбцы, которые присутствуют по умолчанию в интерфейсе Process Monitor, содержат массу полезной информации, но вам определённо понадобится некоторый контекст, чтобы понять, какие данные на самом деле содержит каждый, потому что некоторые из них могут выглядеть так, как будто произошло что-то плохое, когда они действительно невинные события, которые происходят все время когда работает операционная система. Вот для чего используется каждый из столбцов по умолчанию:

  • Time — Время — этот столбец не требует пояснений, он показывает точное время, когда произошло событие.
  • Process Name — Имя процесса — процесс, создавшый событие. По умолчанию здесь не отображается полный путь к файлу, но если вы наведёте курсор на поле, вы сможете точно увидеть, какой это был процесс.
  • PID — ИД процесса — идентификатор процесса, создавшего событие. Это очень полезно, если вы пытаетесь понять, какой процесс svchost.exe сгенерировал событие. Это также отличный способ изолировать один процесс для мониторинга, если он не запускается повторно.
  • Operation — Операция — это имя операции, которая регистрируется, и есть значок, который соответствует одному из типов событий (реестр, файл, сеть, процесс). Названия RegQueryKey или WriteFile могут немного сбить с толку, но мы постараемся помочь вам разобраться.
  • Path — Путь — это не путь процесса, это путь к тому, над чем работало это событие. Например, если произошло событие WriteFile, в этом поле будет отображаться имя файла или папки с которыми был обмен данных. Если бы это было событие реестра, он бы показал полный доступ к ключу.
  • Result — Результат — показывает результат операции, который имеет код SUCCESS (успех) или ACCESS DENIED (доступ запрещён). Хотя у вас может возникнуть соблазн интуитивно предположить, что BUFFER TOO SMALL (СЛИШКОМ МАЛЕНЬКИЙ БУФЕР) означает, что произошло что-то действительно плохое, в большинстве случаев это не так.
  • Detail — Подробности — дополнительная информация, которая часто не используется в обычном мире устранения неполадок.

Вы также можете добавить несколько дополнительных столбцов к отображению по умолчанию, выбрав Options → Select Columns. Это не является первостепенной необходимостью при знакомстве с программой, но, поскольку мы объясняем столбцы, об этом стоит упомянуть.

Одна из причин для добавления дополнительных столбцов к отображению заключается в том, что вы можете очень быстро отфильтровать эти события, не перегружаясь данными. Вот несколько дополнительных столбцов, которые мы используем, но в зависимости от ситуации вы можете найти применение и другим столбцам в списке.

  • Command Line — Строка команды — хотя вы можете дважды щёлкнуть любое событие, чтобы увидеть аргументы командной строки для процесса, который сгенерировал каждое событие, может быть полезно быстро просмотреть все параметры.
  • Company Name — Название компании — основная причина, по которой этот столбец полезен, заключается в том, что вы можете просто быстро исключить все события Microsoft и сузить свой мониторинг до всего остального, что не является частью Windows. (Вы должны убедиться, что у вас нет каких-либо странных процессов rundll32.exe, запущенных с помощью Process Explorer, поскольку они могут скрывать вредоносные программы).
  • Parent PID — Родительский PID — это может быть очень полезно при устранении неполадок в процессе, который содержит множество дочерних процессов, таких как веб-браузер или приложение, которое продолжает запускать отрывочные вещи как другой процесс. Затем вы можете отфильтровать по родительскому PID, чтобы убедиться, что вы захватываете их всех.

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

Изучение отдельного события

Просмотр объектов в списке — отличный способ быстро увидеть множество разных точек данных одновременно, но это определённо не самый простой способ изучить отдельный фрагмент данных, а в списке так много информации. К счастью, вы можете дважды щёлкнуть любое событие, чтобы получить доступ к сокровищнице дополнительной информации.

Вкладка Event («Событие») по умолчанию даёт вам информацию, которая во многом похожа на то, что вы видели в списке, но добавит немного больше информации о вечеринке. Если вы просматриваете событие файловой системы, вы сможете увидеть определённую информацию, такую как атрибуты, время создания файла, попытки доступа во время операции записи, количество записанных байтов и продолжительность.

Переключение на вкладку Process («Процесс») даёт вам много полезной информации о процессе, создавшем событие. Хотя обычно Process Explorer используется для работы с процессами, может быть очень полезно иметь много информации о конкретном процессе, который сгенерировал конкретное событие, особенно если это что-то, что произошло очень быстро, а затем исчезло из списка процессов. Таким образом и собираются данные.

Вкладка Stack («Стек») иногда бывает чрезвычайно нужной, но часто бывает совсем неполезной. Причина, по которой вам следует взглянуть на стек, заключается в том, что для устранения неполадок вы работаете со вкладкой Module («Модуль») на предмет чего-либо, что выглядит не совсем правильно.

В качестве примера представьте, что процесс постоянно пытается запросить или получить доступ к файлу, которого не существует, но вы не знаете почему. Вы можете просмотреть вкладку Stack и посмотреть, есть ли какие-либо модули, которые выглядят некорректно, а затем изучить их. Вы можете обнаружить, что проблема связана с устаревшим компонентом или даже вредоносным ПО.

Или вы можете обнаружить, что здесь нет ничего полезного для вас, и это тоже нормально. Есть много других данных, на которые стоит обратить внимание.

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]