Непонятные файлы на диске мы обнаруживаем двумя путями. Либо они явно видны в проводнике или файловом менеджере, либо к ним приводят поиски причины исчезновения свободного места на диске. Хорошо, если после удаления файлов, они больше не появляются. Но так бывает не всегда, и в этом случае приходится определять приложение, которое их создает.
Однажды на форум обратился человек, у которого какое-то приложение записывало в корень системного диска файлы, в имени которых содержится 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 минут :)
sergm
Вадим.
Может стоит упомянуть еще и Filemon он тоже позволит решить задачу.
Vadim Sterkin
sergm, не вижу смысла, т.к. Process Monitor объединяет функционал Regmon и Filemon. Эти две утилиты больше не распространяются автором.
sergm
Логично.
Я сторонник того к чему привык :) т.е. набору своего инструментария…
а то чего не хватает дописываю сам.
PS надо будет обновиться.
Morpheus
Vadim Sterkin, спасибо!
Хоть для меня буквы информативнее, в видео я увидел один плюс — когда читал, пропустил строчку
Достаточно щелкнуть по процессу правой кнопкой мыши и выбрать из контекстного меню пункт
начало абзаца прочиталось, выделенное жирным тоже, а эта часть «выпала». В видео оно увиделось.
Vadim Sterkin
sergm, понятно, что у каждого свой привычный набор утилит (и о моем я планирую рассказать в скором времени :) Но Process Monitor уже достаточно давно заменил две отдельные утилиты и расширил их функционал. Так что да, обновляться надо :)
Morpheus, я рад, что ты нашел мое видео полезным, ибо твое скептическое отношение к ним мне известно :) В этом и есть главное преимущество коротких видео. Статью мы часто читаем по диагонали, цепляясь глазом за якоря (заголовки, жирный шрифт, картинки, код). А видео удерживает внимание непрерывно, когда автору это удается, конечно :)
Просмотр длинного ролика вряд ли обойдется без перемотки «говорильни» к следующему фрагменту действия. Но с коротким видео, нашпигованным действиями, такого не происходит.
Morpheus
Да, скептическое :) но только когда кино заменяет собой текст и длится более 20 минут. Сути там минуты на 3, всё остальное — это «эээ», «ааа» и гигалитры воды. Я не готов 30 минут из 40 смотреть на презентационные шаблоны и рабочий стол показывающего, выискивая там нужные кусочки.
К короткому видео, когда оно дополняет текст (а не заменяет его), претензий нет. Это может быть полезно, если сделано со вкусом. Тебе удаётся делать интересно. Спасибо!
Твои статьи я читаю внимательно, но видимо глаз уже сам перематывает многабукф.
З.Ы. А почему нет ссылки «цитировать» для самого материала, как для комментов?
Vadim Sterkin
Спасибо ;)
Ссылки «Ответить» и «Цитировать» — это плагин Quote Comments. Без него в постах только ссылка «Ответ», создающая древовидную структуру, которая мне не нравится. В статьях такого нет, да и не нужно особо. Я хочу, чтобы мои статьи воспринимались как единое целое, а не раздирались на цитаты ;)
Андрей
Спасибо Вадим! Очень интересно, но я с таким не сталкивался пока.
Видео суперски, кратко и ясно, такое редкость. Но и описание с нормальным количеством скринов, даже лучше.
Спасибо за Ваш блог. Читаю с удовольствием :Beer:
Алекс
А я Вадим сразу вам и написал- очень будет полезно если будут хоть коротелькие ролики!! Как писал выше- нажал на паузу и разобрался)..Да и мне как то зрительно более понятно(имхо).
Vadim Sterkin
Андрей, спасибо за отзыв — я рад, что мои труды над созданием видео получают высокую оценку моих
читателейзрителей :)Алекс, ваши пожелания воплощаются в жизнь ;) Но, как я сказал, видео более затратно по времени, хотя я все еще оптимизирую процесс его создания. Но при любом раскладе это дольше написания статьи, если придерживаться таких стандартов подачи материала, а не просто лепить 20-минутный ролик с мычанием :)
Logvinov Vladimir
Хорошая статья и самое главное (я преподаватель информатики) с хорошими примерами.
Алекс
Вадим понятно! но в любом случае будем надеяться хоть на редкие небольшие ролики:).
Vadim Sterkin
Logvinov Vladimir, спасибо за отзыв. Похоже, вы оценивали материал с точки зрения дидактического пособия :)
Yuri
Полезная статья. Просмотрел и прочитал, к сожалению, не помогло. Дело в том, что у меня утекает дисковое пространство со скоростью 1-2 мега в секунду, причём я не могу найти, куда. утекает с системного диска. Аваст последний. Сканировал и спайдером, и авастом, шиш. ВСё чисто, по их мнению. Свободного места 30 гиг, если утром комп включил, и даже не логинишься, то к вечеру, после просто стояния в экране приветствия, при входе в систему обязательно вылезет окно, что нет дискового пространства на диске С. Понятно, что какая-то служба косячит, но вот какая? Причём после перезагрузки — места снова 30 гиг, и потихоньку утекает. ФАРом хорошо видно утекание. Темпы вычищены, и прочие восстановления системы уже давно отключены, а всё равно утекает. При этом файл подкачки не пухнет более 0,5 гига, да и оперативка не заполняется полностью. Впрочем, своп я отключал, не помогло. Как бы сделать «фото» размеров файлов вначале работы, потом через некоторое время, и когда место кончится? Кто может захапывать под себя 30 гиг, а уверен, и больше? Комп в домашней сети, за NAT, сетевые дырки прикрыты. Переустновить винду можно, но гиморно. Кроме того, спортивный интерес. Винда хп лицензия со всеми апдейтами. Месяц уже голову ломаю. Как сломаю, перейду на линукс :)
Vadim Sterkin
Yuri, диагностику нужно проводить в два этапа:
1. Выявление папок, в которых записываются файлы.
2. Определение приложения, записывающего их.
Для первого этапа используйте специализированные утилиты. См. номер 5 в списке 10 лучших бесплатных программ для быстрой диагностики Windows. В комментариях упоминались и другие программы этого типа.
Дмитрий Дронов
Просто спасибо. Такой труд дорогого стоит.
Vadim Sterkin
Дмитрий, спасибо на добром слове.
Сергей Валерьевич
Сделал всё как показано. Создал в процесс мониторе фильтр для файла с именем «123». Создаю его в блокноте, сохраняю с именем «123» — ноль реакции. Создал фильтр на Process name «CMD» — запускаю командную строку — срабатывает, показывает процесс. Что я делаю не так в первом случае?
Vadim Sterkin
Мне отсюда не видно, но похоже, что не включено отслеживание файловой активности (cmd — процесс).