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

19.04.2019

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

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

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

Отслеживание активности

При запуске утилита отслеживает несколько типов системной активности:

  • реестр
  • файловую систему
  • процессы и потоки

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

Кроме того, убедитесь, что утилита отслеживает активность. Если у вас перечеркнута кнопка, которая на рисунке обведена красным, нажмите 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 .

Запись и открытие лога

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

Для сохранения лога в файл нажмите сочетание клавиш CTRL+B и укажите имя и желаемое расположение файла.

Изменения вступают в силу после перезапуска захвата активности. Теперь можно смело оставить Process Monitor включенным на длительное время, не опасаясь за лимит дискового пространства.

Остановить отслеживание активности можно сочетанием клавиш CTRL+E .

Впоследствии вы всегда сможете загрузить в утилиту лог из сохраненного файла. Закройте Process Monitor и дважды щелкните файл лога с расширением PML. Содержимое лога отобразится в окне Process Explorer.

Человек, обратившийся на форум с проблемой, так и не вернулся сообщить, помог ли ему мой совет. Но он был с таким вопросом не первый и, наверняка, не последний. Если вопрос возникнет у вас, вы сможете ответить на него с помощью Process Monitor.

О видео

Читатели блога выразили поддержку моей идее дополнять статьи видеоматериалами. Я подумал, что этот случай очень хорошо подходит, и записал ролик длиной менее 4 минут.

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

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

Более подробный рассказ о Process Monitor и другие примеры его практического использования вы можете посмотреть в видео моего коллеги Василия Гусева , если у вас есть свободные 40 минут:)

Process Explorer и Process Monitor - два из трёх очень полезных инструментов для тонкой настройки операционных систем Windows.

Если вы хотите знать, что прямо сейчас происходит на вашем компьютере, попробуйте Process Explorer. В своей основе Process Explorer - более сложная версия диспетчера задач Windows 10.

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

Вы предпочитаете загруженный, но информативный дисплей Process Explorer, более чистому, но почти пустому диспетчеру задач? Пожалуйста, для этого имеется свой параметр. А именно, в программе Process Explorer, выберите меню "Параметры" и затем "Заменить диспетчер задач" (для внесения этого изменения вам потребуются учётные данные администратора). После этого, нажатие клавиш Ctrl+Shift+Esc, вместо , откроет инструмент Sysinternals.

На примере ниже чётко видно, что Process Explorer очень активен. Для идентификации каждого процесса по типу, он использует цветовое кодирование, а для привлечения внимания к начинающимся и заканчивающимся процессам - анимацию.

Вид группировки по умолчанию в Process Explorer обрабатывает процессы родитель-потомок и использует цветовое кодирование для выявления различных типов процессов.

Цветовое кодирование, вы можете настроить самостоятельно. Для этого, нажмите "Опции" и выберите "Настройка цветов".

Параметры по умолчанию следующие:

 Зелёный цвет указывает на новые объекты, а насыщенный красный - момент удаления объектов. Оба этих цвета появляются на короткое время, в момент начала и окончания процесса.

 Светло-голубой - определяет «собственные процессы», те, что работают под той же учётной записью, что и Process Explorer. Обратите внимание, что эти процессы могут выполняться в другом контексте безопасности чем учётная запись пользователя, под которой они были запущены.

 Розовый цвет - выделяет процессы, которые содержат одну или более служб Windows. Когда вы наводите курсор на одну из этих строк, появляется подсказка, отображающая имена работающих в этом процессе отдельных служб. Что может быть полезным для определения какой экземпляр Svchost.exe за это отвечает.

 Фиолетовый (или тёмно-фиолетовый) - означает «Упакованные» (зашифрованные или сжатые) исполняемые программы. Это может означать потенциально вредоносные программы, особенно, если они связаны с неизвестным процессом.

 Бирюзовый - показывает иммерсивные процессы, которые связаны с приложениями Магазина Windows.

 Тёмно-серый - идентифицирует приостановленный процесс. Обычно это приложения Windows Store, которые вы ранее открыли, но уже не используете. Некоторые приложения Магазина Windows специально написаны так, что могут продолжать выполняться в фоновом режиме. Например, Groove Music будет продолжать проигрывать мелодии даже при переключении фокуса в другую программу.

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

Маленькие графики, в верхней части окна Process Explorer, отображают системную информацию в режиме реального времени. Чтобы увидеть все графики в одном окне, нажмите Ctrl+I (как в информации) или, в строке меню, щёлкните "Вид" и выберите пункт "Сведения о системе". Ниже этот дисплей в действии.

Окно сведений о системе показывает графики производительности для текущей системы в режиме реального времени. А также, при наведении курсора на определённое место, детальные подсказки.

Внимание . Если вы не видите все графики, перезапустите Process Explorer от имени администратора.

Каждая из отдельных вкладок - CPU, Memory, I/O и GPU - содержит дополнительные сведения об этой конкретной группе ресурсов. В частности, на вкладке GPU, добавлены детали, которые вы не найдёте на вкладке "Производительность" диспетчера задач.

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

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

Детали для запущенного процесса включают информацию о версии и запускается ли он автоматически.

Из этого диалогового окна "Свойства" или из списка процессов, вы можете отправить хэш-код этого файла в службу VirusTotal. Где на любом из отслеживаемых VirusTotal 50 с лишним антивирусов выяснить, не является ли он возможной вредоносной программой.

Нижняя панель окна Process Explorer обычно скрыта. С помощью сочетания клавиш Ctrl+L, вы можете сделать её видимой (или, в меню "Вид" выберите "Показать нижнюю панель"). Эта панель показывает одно из двух представлений для текущего процесса: или дескрипторы. Вы можете переключаться между двумя представлениями с помощью сочетаний клавиш Ctrl+D и соответственно Ctrl+H На рисунке ниже нижняя панель в представлении библиотеки DLL.

Нижняя панель может отображать связанный с выбранным процессом список библиотек DLL или список дескрипторов.

Process Monitor

Последний из трёх суперзвезд Sysinternals это монитор процессов, также известный как Procmon. При запуске, он в режиме реального времени отслеживает все, связанные с файловой системой, реестром, сетью, процессами, потоками и библиотеками DLL, действия.

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

Во время трассировки, Process Monitor записывает все события каждого процесса, что, как показано в строке состояния, может привести к миллионам дискретных событий.

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

К примеру, на рисунке показан щелчок правой кнопкой мыши на строке Runtimebroker.exe в столбце имя процесса. Теперь можно выбрать, включить этот процесс в текущий фильтр, эффективно отображающий записи из этого процесса или исключить его, так чтобы скрыть результаты сопоставления. А также можно выбрать для выделения совпадающие записи, не скрывая те, которые не совпадают.

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

Посмотрите на строку состояния в нижней части окна Procmon, чтобы увидеть был ли к записанным данным применён фильтр и, если да, какое влияние он имел. Например на рисунке, отфильтрованный список показывает меньше, чем 1 из 1000 событий, что позволяет прокрутку данных или дальнейшее фильтрование в поисках паттернов или .

Посмотрите в строке состояния, нижней части окна Process Monitor насколько эффективен ваш фильтр.

А также можно создать или изменить фильтр, используя диалоговое окно Process Monitor "Фильтр", которое предлагает удобное его использование. Для доступа к диалоговому окну "Фильтр", на панели меню монитора процессов, нажмите соответствующую кнопку. Вы можете задать условия, которые определяют какие события будут включены или исключены. Потом нажмите кнопку "Добавить" или выберите существующий фильтр и нажмите кнопку "Удалить". Чтобы немедленно увидеть эффект от нового фильтра, нажмите кнопку "Применить".

Нажатие кнопки «Фильтр» открывает диалоговое окно фильтра Process Monitor, где, с помощью раскрывающихся списков, вы можете добавить критерии. Перед выходом не забудьте нажать кнопку "Применить".

Многих интересует вопрос «Как узнать, что делает программа при установке, запуске, закрытии, работе? Как следить за программой?» Ответ: с помощью другой программы, которая называется 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. Можем сразу перейти в эту папку для этого достаточно выделить строчку в данном случаи пятая и нажать на главной панели зеленую стрелочку, и сразу отроется папка, в которой создан этот файл. Далее идет подгрузка различных системных библиотек, чтение настроек из реестра как системных таки и пользовательских и много еще чего.

На главном меню есть еще один значок, о котором не говорилось раньше это:

Это иконка дерева процессов. Если ее нажать то увидем следующее окно:

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

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