Filemon - отслеживание обращений к файловой системе.

Общие сведения о программе Filemon .


    Filemon - программа от компании Sysinternals для наблюдения в реальном масштабе времени за действиями с файлами, сетью и именованными каналами. После приобретения Sysinternals компанией Майкрософт, в разделе технической поддержки появился раздел Windows Sisinternals где можно найти описание и ссылки для скачивания большинства программных продуктов Sysinternals. Однако, FileMon, а также программа мониторинга обращений к реестру Regmon были заменены одной программой Process Monitor, которая, все же, утратила некоторые возможности предшественников и менее удобна в использовании. Несмотря на то, что Process Monitor обладает большими возможностями, в среде операционных систем Windows 2000/XP, для мониторинга обращений к файлам и реестру, нередко удобнее использовать Filemon и Regmon.

Данная статья предназначена для пользователей Windows XP/2000, использующих Filemon версий 6.x - 7.x

Скачать Filemon 6.12 94 кб.

Скачать Filemon 7.04 256 кб.

Авторы - Марк Руссинович (Mark Russinovich) и Брюс Когсуэлл (Bryce Cogswell)

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

    После запуска исполняемого файла filemon.exe, будет выполняться перехват всех операций с файлами и вывод данных в основном окне программы:

Монито
ринг обращений к файлам с помощью Filemon


Интерфейс программы состоит из 3-х частей - строка меню (menu bar), панель инструментов (toolbar) и область вывода данных в виде списка. Для остановки процесса перехвата обращений к файловой системе нужно щелкнуть мышкой по кнопке с лупой, так, чтобы ее изображение стало перечеркнутым красной линией. Повторный щелчок вернет режим перехвата.

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

# - номер строки с начала сессии перехвата обращений к файловой системе.

Time - время обращения. Формат можно задать с использованием меню Options- Clock Time и точность - Options - Show Milliseconds
Process - имя и идентификатор процесса (PID), который вызвал обращение к файлу.

Request - тип запроса. Типы запросов отслеживаемые filemon:
CLOSE - закрытие файла.
CREATE - создание файла
DELETE - удаление
DIRECTORY - запрос информации о каталоге
LOCK - монопольный захват ресурса
OPEN - открытие файла
QUERY INFORMATION - запрос информации о ресурсе
READ - операция чтения данных
SET INFORMATION - изменить информацию о ресурсе
UNLOCK - отменить монопольный захват ресурса
WRITE - операция записи данных

Result - результат выполнения запроса:

END OF FILE - обнаружен признак конца файла (EOF)
FILE NOT FOUND - файл не найден
NAME COLLISION - была попытка создать новый файл, но файл с таким именем уже существует.
NO MORE FILES - список содержимого каталога сформирован.
PATH NOT FOUND - не найден путь
RANGE NOT LOCKED - попытка выполнить разблокировку файла, который не был заблокирован.
SUCCESS - операция выполнена успешно.

Other - дополнительная информация :

Attributes - атрибуты файла - А- архивный, D-каталог, H-скрытый, R-только чтение, S-системный.
Exd - значение YES говорит об установке монопольного доступа к ресурсу
FileBasicInformation - получена(установлена) базовая информация о ресурсе (время модификации, атрибуты и т.п)
FileBothDirectoryInformation - запрос дополнительной информации о каталоге. Обычно используется для получения списка файлов.
FileNameInformation - информация о длине имени файла.
FileRenameInformation - информация о переименовании файла.
Lenth - длина. Число считанных или записанных данных, размер файла
Offset - смещение, начало области данных, над которыми выполняется операция.
Options - дополнительные параметры для операций над ресурсом.





Основное меню (menu bar) программы Filemon .



    Пункты основного меню File

Load - открыть из файла ранее сохраненный отчет и просмотреть его
Save - сохранить содержимое окна в файл отчета .
Save As - выбрать другое расположение и имя для файла отчета
Path Properties - свойства выделенного файла или каталога.
Process Properties - свойства процесса, инициировавшего операцию. (исполняемый файл, путь, параметры командной строки и т.п.)
Capture Events - CTRL+E - включить перехват событий обращений к файловой системе.

Пункты основного меню Edit

Copy - скопировать в буфер обмена выделенные строки.

Delete - удалить выделенные строки.
Include Process - добавить выделенный процесс в группу отслеживаемых
Exclude Process - исключить выделенный процесс из группы отслеживаемых
Include Path - добавляет путь из выделенной строки в список отслеживаемых
Exclude Path - исключить путь из выделенной строки из списка отслеживаемых. Find - поиск по всему содержимому буфера перехваченных данных, строки с заданным текстом.

Explorer Jump
- быстрый переход в Проводнике к файлу или каталогу, указанному в колонке Path выбранной строки. Если путь недействителен, то переход будет выполнен лишь в той части пути, которая существует.
Clear Display - очистить список перехваченных данных. Удаляются все строки, записанные с момента начала перехвата.

Пункты основного меню Options

Font - выбор шрифта для окна
Highlight Colors - выбор цвета для фона и текста записей, выбранных в качестве подсвечиваемых.
Filter/Highlight - определение фильтров для записей, которые должны быть включены / исключены из перехваченных данных, и строк, выделяемых подсветкой. Более подробно о фильтрах - ниже по тексту.
History Depth - максимальное число перехватываемых событий. (0 - без ограничений).
Auto Scroll - включить/выключить автоматическую прокрутку содержимого окна, так чтобы всегда можно было видеть последнюю запись.
Clock Time - переключение формата времени (часы или секундомер)
Show Milliseconds - дополнительно в значении времени показывать миллисекунды.
Always On Top - окно программы всегда поверх всех остальных окон

Пункты основного меню Volumes

Данное меню позволяет выбрать тома для мониторинга. Обычно Filemon используется для отслеживания обращений к локальным (Fixed, CD, Removable) и сетевым дискам (Network). Однако возможно включение режима наблюдения за операциями для именованных каналов и почтовых ящиков. Именованный канал (named pipe)- это средство для передачи данных между процессами, являющимися клиентом или сервером. Сервером является процесс, создавший именованный канал, а клиентом - процесс, подключающийся к созданному именованному каналу. Именованные каналы, в основном, используются внутри самой ОС для взаимодействия между службами системы (сервисами) или взаимодействия приложений с сервисами. Как, например, управление службами Windows с использованием оснастки панели управления. В качестве программного интерфейса приложений для посылки и приема сообщений по именованным каналам используются те же самые функции Windows API, что и при работе с файлами (ReadFile, WriteFile). Создаваемый канал так же получает свое имя, указатель файла (handle) и для него возможны операции записи и чтения как для обычного файла в составе файловой системы. Взаимодействующие процессы могут выполняться как на одном компьютере, так и на разных внутри локальной сети..
Почтовые ящики (mail slots) обладают такими же свойствами, как и именованные каналы, но используются для обмена данными между приложениями.







Установка фильтров программы Filemon .




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

- процессу
- пути файла/каталога
- типу действия

Задать условия фильтрации можно сразу после старта утилиты или вызвав окно настройки фильтров ( Filemon Filters ) в любой момент времени c использованием меню программы или комбинации клавиш CTRL+L

Настройка фильтров для Filemon


Для настройки фильтров можно использовать три текстовых поля. Фильтры разделяются друг от друга символом "точка с запятой". Возможно использование символа * (звездочка) в качестве шаблона (wildcard). Если указать * в поле Include, то в условия перехвата событий будут включены все действия всех процессов. Если в поле Include будет указан фильтр "C:\windows", то утилита будет собирать все данные, связанные с операциями ввода/вывода для указанного пути любых процессов системы.
В поле Exclude указываются фильтры для процессов и путей, которые должны быть исключены из выходных данных. Если в поле Include установлен фильтр C:\WINDOWS, а в поле Exclude - C:\WINDOWS\SYSTEM32то операции ввода/вывода для каталога C:\WINDOWS\SYSTEM32 будут исключены из выходных данных утилиты Filenmon.
В поле Highlight указываются фильтры по которым определяются выделяемые из выходного списка строки.
В окне настройки фильтров имеется возможность установки флажков (checkboxes) фильтрации элементов списка по типу выполняемых действий. Если снять все флажки, никакой информации выводиться не будет. Установка флажка определяет, какие операции будут выводиться в окне данных.
Log Opens - выводить данные об операциях, связанных с открытием файлов.
Log Reads - выводить данные об операциях чтения .
Log Writes -выводить данные об операциях записи.

В последних версиях были добавлены

Log Errors - выводить данные об операциях, завершившихся с ошибкой .
Log Successes - выводить данные об операциях, выполненных успешно .

Программа запоминает историю вводимых фильтров. При старте используется последний заданный фильтр. Для сброса критериев фильтрации в исходное значение используется кнопка Defaults в окне Filemon Filters     На практике, задание критериев фильтрации выводимых данных гораздо удобнее использовать меню, вызываемое правой кнопкой мышки на выбранной строке

Правая кнопка - фильтры для Filemon


Include Process и Include Path - добавить в поле Include процесс или путь, отображаемый в текущей строке.
Exclude Process и Exclude Path - исключить из выходных данных Filemon процесс или путь, отображаемый в текущей строке.
Обычно, используется исключение путей и процессов, информация о файловых операциях которых не нужна в выходных данных.





Пример применения утилиты Filemon .




    Одно из основных применений Filemon - слежение за операциями с файловой системой процесса, аварийно завершающегося с сообщением о том, что не найден файл или путь. Особенно, если сообщение не содержит имени файла или каталога. Нередко встречаются случаи, когда программа запускается, может даже выдать какую-нибудь заставку и завершается без каких-либо сообщений. С подобным явлением приходилось сталкиваться при запуске некоторых компьютерных игр. Причиной было отсутствие файлов или каталогов, неверное расположение временных или конфигурационных файлов, использование кириллических символов в именах и т.п. Причин может быть множество, и определять их простым перебором возможных вариантов - дело трудоемкое и неблагодарное. А Filemon позволяет легко определить недостающие, или неверно расположенные, файлы и каталоги.
Второе, не менее важное направление - исследование работы конкретного приложения. Например, нужно определить, в каком месте сохраняются настройки обозревателя Mozilla Firefox.
Запускаете Filemon и определяете условия фильтрации:
Include - firefox
Exclude - оставляете пустым
Поле Highlights тоже можно оставить пустым. При необходимости, критерии подсвечивания и исключения можно всегда задать в ходе работы, когда начнется перехват файловых операций и вывод данных в основном окне Filemon.
После начала отслеживания, переходите к настройкам обозревателя и изменяете какую-либо из них. После сохранения настроек переключаетесь в окно Filemon, останавливаете процесс перехвата событий и анализируете полученные данные. Конечно, в случае сложной программы, операций ввода/вывода может быть немалое количество, и придется разбираться исходя из здравого смысла и логики работы приложения. Так, наиболее вероятно, что настройки не хранятся во временных файлах, поэтому их можно сразу исключить из анализа. Следующее предположение - настройки обозревателя связаны с профилем пользователя, следовательно в нем же должны сохраняться. ( каталог C:\documents And Settings\пользователь : для Win2k/XP). Сохранение настоек - это операция записи. В результате таких предположений круг поиска будет значительно сужен и файл настроек будет найден без труда.

Не совсем по теме. Найденный таким образом файл с настройками Mozilla Firefox (с именем prefs.js) оказался довольно интересным по содержанию, особенно комментариями в начале файла

# Mozilla User Preferences
/* Do not edit this file.
*
* If you make changes to this file while the application is running,
* the changes will be overwritten when the application exits.
*
* To make a manual change to preferences, you can visit the URL about:config
* For more information, see http://www.mozilla.org/unix/customizing.html#prefs
*/

Из перевода становится понятно, что настройки, внесенные вручную в данный файл, при запущенном обозревателе, не будут сохранены, поскольку будут перезаписаны при его завершении. И для ручного изменения настроек следует в адресной строке Mozilla Firefox набрать about:config . За дополнительной информацией предлагается перейти по ссылке на сайт mozilla.org.
А также, понятно, что для сохранения настроек, можно сохранить содержимое файла prefs.js под другим именем. Можно проверить, как поведет себя обозреватель при отсутствии файла настроек или его повреждении.

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


Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой "Поделиться"











В начало страницы     |     На главную страницу