Process Monitor: пример использования
Есть такая замечательная программа, как Process Monitor, которая позволяет отследить различные непонятные телодвижения в вашей системе. Например, если вы нашли странные файлы, которые непонятно откуда взялись, то с помощью Process Monitor можно найти ту программу, что их создает.
Ты сможешь лишь 85%
Именно этот пример мы и рассмотрим. В первую очередь, скачаем и запустим программу.
Программа следит за разнообразной активностью в системе, анализируя события в системном реестре, сети, системных процессах и файловой системе. В данном случае нам нужна только файловая система.
Чтобы убрать лишнее на панели инструментов активируйте значок Show File System Activity, а вот значки Show Registry Activity, Show Network Activity, Show Process and Tread Activity, Show Profiling Events отключите нафик, щелкнув на них один раз мышкой.
Теперь нажмите комбинацию клавиш и активируйте фильтр для поиска нужных значений.
Настроим фильтр. В первом списке следует выбрать значение Path – это путь к нужному файлу.
В следующем списке выберите значение contains – так мы укажем условие, по которому будет осуществляться фильтрация. Впрочем, можно выбрать и значения begins with (начальное значение) либо ends with (конечное значение).
Следующий шаг – текстовое поле, в котором нужно указать либо имя файла, либо название папки, в которой постоянно появляются странные файлы.
Осталось выбрать в последнем списке значение Include – так мы выбираем, что все указанные условия будут использоваться в результате работы.
Наконец, щелкните на кнопке Add – фильтр появится в списке. Щелкнем на кнопке ОК и фильтр будет активирован.
Конечно Process Monitor может показать слишком много лишней информации. Чтобы с ней справится можно использовать дополнительные фильтры либо конкретные действия, что следует анализировать. Кроме того, порой достаточно отключить отслеживание определенных процессов, что нас не интересуют.
Кому нужна эта Винда? Нам нужны бабки за 180 секунд!
А вот что дальше:
- Чистка системного реестра с jv16 PowerTools
- Копирование заблокированных файлов с HoboCopy
- Утилиты Windows для управления системой
- Как убрать программу из автозагрузки
Понимание Process Monitor
В этом уроке мы собираемся научить вас, как утилита Process Monitor позволяет заглянуть под капот и увидеть, что ваши любимые приложения действительно делают за кулисами — к каким файлам они обращаются, какие ключи реестра меняют или считывают и многое другое.
В отличие от утилиты Process Explorer, с которой мы познакомились в предыдущих частях, Process Monitor предназначен для пассивного наблюдения за всем, что происходит на вашем компьютере, а не для активных действий, таких как завершение процессов или закрытие дескрипторов. Это похоже на просмотр глобального файла журнала для каждого отдельного события, которое происходит на вашем ПК с Windows.
Хотите понять, в каких разделах реестра ваше любимое приложение на самом деле хранит свои настройки? Хотите узнать, к каким файлам обращается служба и как часто? Хотите узнать, когда приложение подключается к сети или открывает новый процесс? На помощь приходит Process Monitor.
Если вы когда-нибудь задумывались, как какой-нибудь компьютерщик обнаружил секретный ключ реестра системы, который никто никогда раньше не знал, то, вероятно, это было сделано с помощью Process Monitor.
Утилита Process Monitor была создана путём объединения двух разных старых утилит, Filemon и Regmon, которые, как следует из их названий, использовались для мониторинга файлов и активности реестра. Хотя эти утилиты все ещё доступны, и хотя они могут соответствовать вашим конкретным потребностям, вам будет намного лучше с Process Monitor, потому что он может лучше обрабатывать большой объем событий из-за того, что он был разработан для этого.
Также стоит отметить, что Process Monitor всегда требует режима администратора, потому что под капотом он загружает драйвер ядра для захвата всех этих событий. В Windows Vista и более поздних версиях вам будет предложено диалоговое окно UAC, но для XP или 2003 вам нужно будет убедиться, что используемая вами учётная запись имеет права администратора.
События, фиксируемые Process Monitor
Process Monitor собирает массу данных, но не всё, что происходит на вашем компьютере. Например, Process Monitor не заботится о том, перемещаете ли вы указатель мыши, и он не знает, оптимально ли работают ваши драйверы. Он не будет отслеживать, какие процессы открыты и расходуют ресурсы ЦП на вашем компьютере — в конце концов, это задача Process Explorer.
Что он делает, так это фиксирует определённые типы операций ввода-вывода, независимо от того, происходят ли они через файловую систему, реестр или даже сеть. Он также будет отслеживать несколько других событий в ограниченном режиме. Этот список охватывает события, которые он фиксирует:
- Реестр — это может быть создание ключей, их чтение, удаление или запрос. Вы будете удивлены, насколько часто это происходит.
- Файловая система — это может быть создание, запись, удаление файлов и т.д., и это может быть как для локальных жёстких дисков, так и для сетевых дисков.
- Сеть — покажет источник и назначение TCP/UDP-трафика, но, к сожалению, не показывает данные, что делает его немного менее полезным.
- Процесс — это события для процессов и потоков, в которых процесс запускается, поток запускается или завершается, и т. Д. Это может быть полезной информацией в определенных случаях, но часто это то, что вам нужно вместо этого просмотреть в Process Explorer.
- Профилирование — эти события фиксируются Process Monitor для проверки количества процессорного времени, используемого каждым процессом, и использования памяти. Опять же, вы, вероятно, захотите использовать Process Explorer для отслеживания этих вещей большую часть времени, но здесь он пригодится, если вам это нужно.
Таким образом, Process Monitor может фиксировать любой тип операций ввода-вывода, независимо от того, происходит ли это через реестр, файловую систему или даже сеть, хотя фактические записываемые данные не фиксируются. Мы просто смотрим на тот факт, что процесс выполняет запись в один из этих потоков, чтобы позже мы могли больше узнать о том, что происходит.
Как запустить Process Monitor
Если вы скачали весь пакет SysInternals, то запустите файл Procmon64.exe или Procmon.exe — для 64-битных и 32-битных систем соответственно.
Как уже было сказано, у вас должны быть права администратора.
Интерфейс монитора процесса
Когда вы впервые загрузите интерфейс Process Monitor, вам будет представлено огромное количество строк данных, которые быстро прибывают, и это может быть ошеломляющим. Главное — иметь хоть какое-то представление о том, на что вы смотрите, а также о том, что ищете. За довольно короткое время там могут набраться миллионы строк.
Первое, что вам нужно сделать, это отфильтровать эти миллионы строк до гораздо меньшего подмножества данных, которое вы хотите видеть, и мы собираемся научить вас создавать фильтры и сосредоточиться на том, что вы хотите найти. Но сначала вы должны понять интерфейс и какие данные на самом деле доступны.
Столбцы 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 и посмотреть, есть ли какие-либо модули, которые выглядят некорректно, а затем изучить их. Вы можете обнаружить, что проблема связана с устаревшим компонентом или даже вредоносным ПО.
Или вы можете обнаружить, что здесь нет ничего полезного для вас, и это тоже нормально. Есть много других данных, на которые стоит обратить внимание.
Замечания о переполнении буфера
Прежде чем мы продолжим, мы хотим отметить код результата, который вы будете часто видеть в списке, и, исходя из всех ваших знаний, вы можете немного испугаться. Поэтому, если вы начнёте видеть в списке BUFFER OVERFLOW (ПЕРЕПОЛНЕНИЕ БУФЕРА), не думайте, что кто-то пытается взломать ваш компьютер.
Переполнение буфера
Хотя да, многие хакеры и создатели вредоносных программ используют уязвимость переполнения буфера для удалённого или локального взлома компонента и получения дополнительного доступа, это сообщение об ошибке фактически встроено в Windows API и означает полную противоположность.
Примечание: представьте себе буфер, похожий на коробку шоколадных батончиков возле кассы в продуктовом магазине. Люди продолжают покупать их, и когда в коробке заканчивается, магазин снова наполняет её.
В идеале они не будут ждать, пока коробка опустеет, потому что это расстроит клиентов, и они также в идеале не будут бегать назад каждый раз, когда клиент покупает одну шоколадку, потому что это было бы пустой тратой время. Это буфер и предназначен для предотвращения задержек.
Сообщение BUFFER OVERFLOW в Windows API и, в частности, в Process Monitor, на самом деле означает, что клиентское приложение запросило данные, но не имело достаточно большой корзины для хранения всех данных. Таким образом, сервер отвечает, чтобы сообщить клиенту, что ему нужна большая корзина.
В примере для снимка экрана выше приложение запросило в реестре конкретное значение, но приказало Windows API поместить результат в место в памяти, которое было слишком маленьким для размещения всех этих данных. Таким образом, Windows вернула сообщение, чтобы приложение знало, что им нужно место побольше, чтобы разместить все данные. Вот и все.
Переход к пути к данным события
Вся эта информация действительно хороша, но никто не хочет исследовать, вручную просматривая каждое место в списке. К счастью, вы можете щёлкнуть правой кнопкой мыши поле Path («Путь») для элемента и использовать опцию Jump To («Перейти к»), чтобы быстро получить доступ к этим данным, чтобы увидеть, что они содержат, и попытаться выяснить, почему приложение вообще запрашивает эти данные.
Примечание. Вы также можете использовать функцию Search Online (поиск в Интернете), чтобы быстро найти имя процесса, путь в реестре или любое другое поле, что может быть действительно полезно, когда вы не понимаете, для чего что-то используется.
В приведённом выше примере вы можете видеть, что приложение, которое мы отслеживали, пыталось просмотреть значение реестра, поэтому мы использовали функцию Jump To, и Process Monitor сразу же открыл редактор реестра, в котором уже найден этот ключ.
Итак, теперь мы знаем, что приложение пытается выяснить, где находится моя папка appdata, и мы знаем, какая это была папка… что помогает объяснить, что происходит.
В данном случае приложение представляло собой поисковую вредоносную программу Conduit, которая искала мою пользовательскую папку, запрашивая регистрацию, чтобы начать возиться с файлами и папками в моем профиле Google Chrome.
Фильтрация данных, которые собирает Process Monitor
Как мы уже упоминали пару раз, фильтры, которые предоставляет Process Monitor, позволяют вам точно контролировать, какие события вы собираетесь захватывать, что значительно упрощает вам работу по выяснению того, что важно в списке. Если вы знаете, что вас не интересуют все события, генерируемые, например, explorer.exe, то было бы разумно просто отфильтровать их, удалив из списка.
Вы можете очень быстро выполнить фильтрацию по любому столбцу, используя контекстное меню и функции Include («Включить») или Exclude («Исключить») — если вы включите элемент, список будет содержать только события, соответствующие этому конкретному элементу или любым другим, которые вы специально включили, но не будут содержать что-нибудь ещё. Если вы исключите элемент, будет отображаться всё, кроме событий, которые соответствуют конкретному элементу, который вы исключили.
В этом случае мы решили включить процесс cltmng.exe, и теперь все, что мы видим в списке, связано с этим процессом.
Вы также можете использовать опцию Edit Filter («Редактировать фильтр») в меню или получить доступ к разделу Filters («Фильтры») меню, чтобы отобразить список фильтров и отредактировать их. Вы можете выбрать из раскрывающихся диалоговых окон и сопоставить по любому из доступных полей, выбрать, будет ли значение, которое вы вводите в поле, совпадать точно, или просто «начинается с», или ряд других параметров. Затем вы можете выбрать, включать или исключать события, соответствующие этим критериям.
Только не забудьте нажать кнопку Add («Добавить») после того, как вы определили фильтр, и прежде чем нажимать «ОК» или Apply («Применить»), потому что в противном случае ваш новый фильтр фактически не будет активирован. Поверьте, это частая ошибка!
Вы также можете удалить или отредактировать фильтры, выбрав их в списке, а затем изменив или удалив их.
Слишком много данных? Попробуйте удалить отфильтрованные события
Если вы точно знаете, что у вас правильные фильтры, чтобы смотреть только на то, что вы действительно хотите видеть, вы можете рассмотреть возможность использования функции Filter -> Drop Filtered Events (Отбросить отфильтрованные события).
На самом деле здесь происходит то, что экземпляр Process Monitor показывает только те элементы, которые соответствуют фильтру, но все остальное по-прежнему фиксируется в фоновом режиме, что может быть ТОННОЙ данных за очень короткое время — обратите внимание на строку состояния в приведённом ниже примере мы работали всего несколько минут. Если бы у нас была включена опция Drop Filtered Events («Отбрасывать отфильтрованные события»), она захватывала бы только те события, которые нам нужны.
Однако у использования этой функции есть большой недостаток: вы не сможете вернуть эти отфильтрованные события, если поняли, что отфильтровали список слишком сильно, и захотели изучить события из другого процесса. Вам придётся переделывать весь сценарий, что может быть слишком поздно. Поэтому используйте эту опцию с осторожностью.
Сохранение дампов для последующего анализа
И последнее, о чем мы поговорим сегодня, — это функция Open / Save («Открыть / Сохранить»), которую мы обычно не выделяем в других приложениях, но в данном случае это действительно важно.
Представьте, что вы работаете на чьём-то действительно старом и паршивом компьютере и хотите диагностировать конкретную проблему, но компьютер просто работает слишком медленно, чтобы сидеть на нем и все время заниматься этим. Вы можете просто запустить сканирование Process Monitor на их компьютере, сохранить данные на флэш-накопитель, а затем загрузить Process Monitor на свой невероятно быстрый персональный ноутбук и приступить к работе, анализируя, что могло произойти. Вы даже можете пойти в кофейню и проанализировать оттуда.
И, конечно же, вы также можете удалённо попросить запустить Process Monitor, выполнить сканирование, сохранить файл и отправить его вам для анализа. Таким образом вы можете сделать работу удалённо.
Следующий урок
В следующем уроке мы соберём воедино все полученные знания и покажем, как использовать Process Monitor в реальном мире для выполнения забавных и интересных вещей.
Использование procmon от sysinternals для диагностики проблемных мест в исполняемом коде
Сразу хочу сказать, что это только демонстрация возможностей procmon для определения проблемных мест в программном обеспечении. 1С83 была выбрана для опытов из-за неочевидности способа поиска точки входа в процедуру проверки наличия установленных эмуляторов ключа. Она выполняется через различное время после старта порядка 3~10 мин, и вызывает появление окна «нарушение целостности системы» с последующим закрытием приложения. Я призываю всех использовать только лицензионное программное обеспечение. Рассматривать эту статью, как описание возможности взлома, нет смысла. Хотя бы потому, что 1С83 давно взломана и без меня. Любой 1с-ник за секунду вам скажет, как ее запустить без ключа.
Если кто не в курсе procmon от sysinternals умеет ставить перехватчик на системные события работы процессов с файлами и регистром виндуза. И хотя любой процесс плодит гигантское количество обращений к файлам и регистру при старте, да и в процессе работы тоже, использование фильтров и поиска по событиям упрощает нахождение нужного. Интересной особенностью procmon является сохранение стека вызовов у каждого события. Таким образом можно проследить какие модули и в каком месте породили то или иное событие.
Итак, ставим фильтр по имени процесса 1с.

Запускаем 1с, и потом только включаем захват событий. Таким образом мы пропустим большое количество ненужных нам событий, случающихся при старте. Ждем появления сообщения о нарушении целостности.

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

Щелкаем на любое событие и идем на вкладку Стек.

Все что выше горизонтальной черты очевидно уже принадлежит модулям ядра виндуза, а вот три адреса ниже представляют интерес. Какой-то из них наверняка есть адрес возврата в тело процедуры проверки. Запустим же 1с заново и приатачимся отладчиком из Visual Studio, для простоты, т.к. оно уже у нас есть под рукой.

Остановим процесс и введем искомый адрес в окно дизассемблера, например, самый первый в порядке вызовов.

Ведущие нули в таком количестве оно нам дописало, т.к. это 64-бит процесс. Вот он и вызов из которого предполагается возврат на искомый адрес. Поставим точку останова, запустим остановленный процесс, и будем ждать.
Через какое-то время точка останова действительно срабатывает. Проходим вызов одним шагом вперед по F10 и смотрим содержимое регистра AX, все знают, что вызовы функций чаще всего возвращают результат именно в нем. Видим какую-то подозрительную константу, которая совпадает с далее следующей командой сравнения CMP.

Запускаем выполнение дальше и убеждаемся, что ничего не поменялось, программа ругается как обычно и вылетает. Что ж, а что будет при отсутствии эмулятора? Запускаем 1с заново, останавливаем, переходим по нашему адресу, ставим точку останова. Все, как и раньше. Заходим в менеджер устройств виндуза и выключаем устройство эмулятора, переименовываем раздел регистра с дампами и файл драйвера в System32, так как в списке захваченных событий выше мы видели обращения к соответствующим именам. Запускаем процесс из Visual Studio и ждем.

Видим, что в данном случае возвращается другая константа, которая тоже рядом проверяется. Запускаем выполнение дальше и убеждаемся, что прога работает без проблем. Предположим, что 0xa19d это проверка пройдена нормально, а 0x91cb это нарушение целостности. Двумя строчками выше видим безусловный переход JMP и понимаем, что предыдущий перед точкой останова вызов call, это точка входа в процедуру проверки и, видимо, предыдущий вызов проверяет регистр виндуза, а вызов в точке останова — файлы, что вполне согласуется с порядком захваченных событий. Проходя отладчиком путь от точки входа до выхода из процедуры в режиме с включенным эмулятором, убеждаемся, что переход на адрес 0x10e67dfb1 приводит к аварийному завершению. Таким образом, если попробовать перескочить сразу из точки входа на адрес 0x10e67df99, то, возможно, проверка будет пройдена.

Лезть в справочники за кодами инструкций не придется, т.к., к счастью, сразу выше точки входа мы видим двухбайтовую инструкцию безусловного относительного перехода JMP. Понятно, что код инструкции это EB, а второй байт означает смещение. Т.к. все знают, что регистр адреса текущей инструкции всегда содержит адрес следующей за исполняемой в данный момент, то к адресу точки входа нам надо прибавить 2 и от этого места посчитать количество байтов до целевого адреса, так у нас получится нужное смещение (второй байт инструкции) 2E. Открываем окно дампа памяти и по адресу входа в процедуру проверки меняем два байта на нашу инструкцию.

Запускаем программу выполняться дальше. И что мы видим? Нам повезло и это работает 🙂
Здесь можно было бы сказать, что теоретически можно использовать функцию виндуз API WriteProcessMemory, и автоматизировать внесение изменений в оперативную память процесса после его старта, но исследования в этом направлении я не продолжал, так как не было такой цели.
[видео] Process Monitor: как отследить приложение, записывающее непонятные файлы на диск

Непонятные файлы на диске мы обнаруживаем двумя путями. Либо они явно видны в проводнике или файловом менеджере, либо к ним приводят поиски причины исчезновения свободного места на диске. Хорошо, если после удаления файлов, они больше не появляются. Но так бывает не всегда, и в этом случае приходится определять приложение, которое их создает.
Однажды на форум обратился человек, у которого какое-то приложение записывало в корень системного диска файлы, в имени которых содержится tmp _out.

Конечно, не исключено, что эта система заражена, и требуется тщательная проверка всевозможными антивирусными средствами. Но далеко не всегда проблема связана с вредоносным кодом, и тогда понадобится другой подход. Проще всего вычислить виновника появления таких файлов с помощью утилиты Process Monitor. Из видео за четыре минуты вы узнаете, как это сделать.
Отслеживание активности
При запуске утилита отслеживает несколько типов системной активности:
- реестр
- файловую систему
- сеть
- процессы и потоки
Поскольку мы ищем причину записи файлов на диск, нужно сосредоточиться на активности в файловой системе. Для этого на панели инструментов оставьте включенной только одну кнопку, отвечающую за активность на диске.

Кроме того, убедитесь, что утилита отслеживает активность. Если у вас перечеркнута кнопка, которая на рисунке обведена красным, нажмите CTRL+E.
На рисунке выше активность отслеживается, причем только в файловой системе.
Основной фильтр
Теперь нужно применить фильтр, чтобы исключить не относящуюся к делу активность. Нажмите сочетание клавиш CTRL+L, и вы увидите возможности фильтрации. В Process Monitor сразу активны некоторые фильтры, исключающие отслеживание деятельности самой программы, а также некоторых системных компонентов (файла подкачки, таблицы MFT и т.д.). Это сделано для того, чтобы исключить мониторинг стандартной активности системы. В большинстве случаев удалять эти фильтры не нужно, и достаточно просто добавить свой.

На рисунке выше показан фильтр, который будет отслеживать создание и изменение всех файлов, в путях к которым содержится tmp _out. Давайте разберем фильтр подробнее слева направо:
- Path. Путь в файловой системе. Также можно указывать разделы реестра, когда отслеживается активность в нем.
- contains. Условие, по которому определяется поиск ключевого слова. В переводе с английского это слово означает «содержит». В зависимости от задачи можно конкретизировать условие, выбрав вариант begins with (начинается с) или ends with (заканчивается на).
- tmp _out. Ключевое слово, которое в данном случае должно содержаться в пути. Имя файла и его расширение являются частью полного пути к файлу.
- Include. Включение заданного условия в список отслеживаемых.
Не забудьте нажать кнопку Add, чтобы добавить фильтр в список. Впрочем, если вы забудете, Process Monitor напомнит об этом, прежде чем закрыть окно фильтров.
В данном случае я использовал часть имени файла в качестве ключевого слова, поскольку все непонятные файлы содержат в имени tmp_out. Если файлы создаются с разными именами, но зато в определенной папке, используйте путь к этой папке в качестве ключевого слова.
Поскольку задано жесткое условие фильтрации файловой активности, в окне программы, скорее всего, теперь не будет отображаться никаких процессов. Но Process Monitor уже начал их отслеживать.
Проверить работу фильтра очень просто. Достаточно создать в текстовом редакторе файл с искомым именем или в наблюдаемой папке, и Process Monitor моментально отреагирует на это.
Дополнительные фильтры
Обратите внимание, что утилита зафиксировала не только активность блокнота, но также проводника и поиска Windows. Не относящиеся к делу процессы можно исключить из результатов, создав дополнительные фильтры. Достаточно щелкнуть по процессу правой кнопкой мыши и выбрать из контекстного меню пункт Exclude . Это самый простой способ создания фильтра, но можно сделать это из окна фильтрации, как показано выше. В этом случае условие будет: Process Name – Is — — Exclude.
Запись и открытие лога
Когда вы точно знаете объект отслеживания (папку, раздел реестра, процесс и т.п), может иметь смысл не записывать в журнал отфильтрованные (ненужные) события: Filter — Drop filtered events. Это существенно сократит размер лога.
Учтите, что при длительном отслеживании размер лога может измеряться гигабайтами. По умолчанию Process Monitor записывает лог в файл подкачки. Если у вас маленький системный раздел, имеет смысл сохранять лог в файл на другом разделе диска.
Для сохранения лога в файл нажмите сочетание клавиш CTRL+B и укажите имя и желаемое расположение файла.

Изменения вступают в силу после перезапуска захвата активности. Теперь можно смело оставить Process Monitor включенным на длительное время, не опасаясь за лимит дискового пространства.
Остановить отслеживание активности можно сочетанием клавиш CTRL+E.
Впоследствии вы всегда сможете загрузить в утилиту лог из сохраненного файла. Закройте Process Monitor и дважды щелкните файл лога с расширением PML. Содержимое лога отобразится в окне Process Explorer.
Человек, обратившийся на форум с проблемой, так и не вернулся сообщить, помог ли ему мой совет. Но он был с таким вопросом не первый и, наверняка, не последний. Если вопрос возникнет у вас, вы сможете ответить на него с помощью Process Monitor.
О видео
Читатели блога выразили поддержку моей идее дополнять статьи видеоматериалами. Я подумал, что этот случай очень хорошо подходит, и записал ролик длиной менее 4 минут.
Если честно, создание такого видео занимает намного больше времени, чем написание статьи. Поэтому я в любом случае не готов заменять печатный текст видеоматериалами. Но мне кажется, что в данном случае видео интереснее и понятнее. А что вы думаете по этому поводу?
Видео длится около четырех минут, и я старался сделать его быстрым и емким. Ведь в реальности подготовка к поимке приложения занимает буквально одну минуту. Вас устраивает скорость изложения?
Более подробный рассказ о Process Monitor и другие примеры его практического использования вы можете посмотреть в видео моего коллеги Василия Гусева, если у вас есть свободные 40 минут 🙂
Об авторе
Вадим — владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.
Вас также может заинтересовать:
- Как с помощью Process Monitor или аудита отследить приложение, изменяющее параметры реестра
- Удаление программ из консоли и простой пример мониторинга реестра
- Как удалить профили ненужных и небезопасных беспроводных сетей в Windows
- [видео] Как закрывать и перезапускать современные приложения в Windows 8.1
- [видео] Как быстро и грамотно переместить профили пользователей на другой раздел
- Как определить, каким приложением занят файл
- Изучение автозагрузки Windows с помощью Windows Performance Analyzer
- [видео] Charu — самурайский менеджер буфера обмена
- Завещание мистера Гейтса
- [видео] Почему не всегда работает перетаскивание файлов при включенном UAC
- TrayCapture – ветеран звукозаписи
- 10 лучших бесплатных программ для быстрой диагностики Windows
- Как использовать встроенные средства устранения неполадок Windows
- Как определить, является проблема системной или вызвана сторонним приложением/службой
- Как устранить зависание панели задач или рабочего стола при запуске системы
- Куда пропадает свободное место на системном разделе?
Я в Telegram
Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.
комментариев 19
Вадим.
Может стоит упомянуть еще и Filemon он тоже позволит решить задачу.
Ваша оценка:
0
sergm, не вижу смысла, т.к. Process Monitor объединяет функционал Regmon и Filemon. Эти две утилиты больше не распространяются автором.
Годится! Согласны?
+4
Логично. Я сторонник того к чему привык 🙂 т.е. набору своего инструментария…
а то чего не хватает дописываю сам. PS надо будет обновиться.
Ваша оценка:
0
Vadim Sterkin, спасибо! Хоть для меня буквы информативнее, в видео я увидел один плюс — когда читал, пропустил строчку
Достаточно щелкнуть по процессу правой кнопкой мыши и выбрать из контекстного меню пункт
начало абзаца прочиталось, выделенное жирным тоже, а эта часть «выпала». В видео оно увиделось.
Ваша оценка:
0
sergm, понятно, что у каждого свой привычный набор утилит (и о моем я планирую рассказать в скором времени 🙂 Но Process Monitor уже достаточно давно заменил две отдельные утилиты и расширил их функционал. Так что да, обновляться надо 🙂 Morpheus, я рад, что ты нашел мое видео полезным, ибо твое скептическое отношение к ним мне известно 🙂 В этом и есть главное преимущество коротких видео. Статью мы часто читаем по диагонали, цепляясь глазом за якоря (заголовки, жирный шрифт, картинки, код). А видео удерживает внимание непрерывно, когда автору это удается, конечно 🙂 Просмотр длинного ролика вряд ли обойдется без перемотки «говорильни» к следующему фрагменту действия. Но с коротким видео, нашпигованным действиями, такого не происходит.
Ваша оценка:
0
Да, скептическое 🙂 но только когда кино заменяет собой текст и длится более 20 минут. Сути там минуты на 3, всё остальное — это «эээ», «ааа» и гигалитры воды. Я не готов 30 минут из 40 смотреть на презентационные шаблоны и рабочий стол показывающего, выискивая там нужные кусочки.
К короткому видео, когда оно дополняет текст (а не заменяет его), претензий нет. Это может быть полезно, если сделано со вкусом. Тебе удаётся делать интересно. Спасибо!
Твои статьи я читаю внимательно, но видимо глаз уже сам перематывает многабукф.
З.Ы. А почему нет ссылки «цитировать» для самого материала, как для комментов?
Ваша оценка:
+1
Morpheus: Это может быть полезно, если сделано со вкусом. Тебе удаётся делать интересно. Спасибо! »
Morpheus: А почему нет ссылки «цитировать» для самого материала, как для комментов? »
Ссылки «Ответить» и «Цитировать» — это плагин Quote Comments. Без него в постах только ссылка «Ответ», создающая древовидную структуру, которая мне не нравится. В статьях такого нет, да и не нужно особо. Я хочу, чтобы мои статьи воспринимались как единое целое, а не раздирались на цитаты 😉
Ваша оценка:
0
Спасибо Вадим! Очень интересно, но я с таким не сталкивался пока.
Видео суперски, кратко и ясно, такое редкость. Но и описание с нормальным количеством скринов, даже лучше.
Спасибо за Ваш блог. Читаю с удовольствием :Beer:
Ваша оценка:
0
А я Вадим сразу вам и написал- очень будет полезно если будут хоть коротелькие ролики!! Как писал выше- нажал на паузу и разобрался)..Да и мне как то зрительно более понятно(имхо).
Ваша оценка:
0
Андрей, спасибо за отзыв — я рад, что мои труды над созданием видео получают высокую оценку моих читателей зрителей 🙂 Алекс, ваши пожелания воплощаются в жизнь 😉 Но, как я сказал, видео более затратно по времени, хотя я все еще оптимизирую процесс его создания. Но при любом раскладе это дольше написания статьи, если придерживаться таких стандартов подачи материала, а не просто лепить 20-минутный ролик с мычанием 🙂
Ваша оценка:
0
Хорошая статья и самое главное (я преподаватель информатики) с хорошими примерами.
Ваша оценка:
0
Вадим понятно! но в любом случае будем надеяться хоть на редкие небольшие ролики:).
Ваша оценка:
0
Logvinov Vladimir, спасибо за отзыв. Похоже, вы оценивали материал с точки зрения дидактического пособия 🙂
Ваша оценка:
0
Полезная статья. Просмотрел и прочитал, к сожалению, не помогло. Дело в том, что у меня утекает дисковое пространство со скоростью 1-2 мега в секунду, причём я не могу найти, куда. утекает с системного диска. Аваст последний. Сканировал и спайдером, и авастом, шиш. ВСё чисто, по их мнению. Свободного места 30 гиг, если утром комп включил, и даже не логинишься, то к вечеру, после просто стояния в экране приветствия, при входе в систему обязательно вылезет окно, что нет дискового пространства на диске С. Понятно, что какая-то служба косячит, но вот какая? Причём после перезагрузки — места снова 30 гиг, и потихоньку утекает. ФАРом хорошо видно утекание. Темпы вычищены, и прочие восстановления системы уже давно отключены, а всё равно утекает. При этом файл подкачки не пухнет более 0,5 гига, да и оперативка не заполняется полностью. Впрочем, своп я отключал, не помогло. Как бы сделать «фото» размеров файлов вначале работы, потом через некоторое время, и когда место кончится? Кто может захапывать под себя 30 гиг, а уверен, и больше? Комп в домашней сети, за NAT, сетевые дырки прикрыты. Переустновить винду можно, но гиморно. Кроме того, спортивный интерес. Винда хп лицензия со всеми апдейтами. Месяц уже голову ломаю. Как сломаю, перейду на линукс 🙂
Ваша оценка:
0
Yuri, диагностику нужно проводить в два этапа:
1. Выявление папок, в которых записываются файлы.
2. Определение приложения, записывающего их. Для первого этапа используйте специализированные утилиты. См. номер 5 в списке 10 лучших бесплатных программ для быстрой диагностики Windows. В комментариях упоминались и другие программы этого типа.
Ваша оценка:
0
Просто спасибо. Такой труд дорогого стоит.
Ваша оценка:
0
Дмитрий, спасибо на добром слове.
Ваша оценка:
0

Сергей Валерьевич26.05.2017 в 20:37
Сделал всё как показано. Создал в процесс мониторе фильтр для файла с именем «123». Создаю его в блокноте, сохраняю с именем «123» — ноль реакции. Создал фильтр на Process name «CMD» — запускаю командную строку — срабатывает, показывает процесс. Что я делаю не так в первом случае?
Ваша оценка:
0
Мне отсюда не видно, но похоже, что не включено отслеживание файловой активности (cmd — процесс).
Ваша оценка:
0
