Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 33053

Скачиваний: 742

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

102  Часть 

II   

Работа с утилитами

 Настройки 

отображения 

Чтобы окно Procmon осталось видимо, даже когда оно не 

в фокусе, пометьте флажок Always on Top (Всегда наверху) в меню Options (Пара-
метры)

.

 Выберите 

Font (Шрифт) в меню Options для изменения шрифта, используемого Proc-

mon в главном окне и в других таблицах, например, в диалоговых окнах фильтрации 
и выделения, во вкладке Stack (Стек) параметра Properties (Свойства) в меню Event 
(Событие)
, а также в диалоговых окнах Trace Summary (Сводка трассировки).

События

В табл. 4-1 описываются классы событий, захваченных Procmon.

Табл. 4-1. Классы 

событий

Значок

Событие

Описание

Файл 
реестра 
(Registry 
File)

Операции с реестром, в частности, создание, 
перечисление, запросы, а также удаление параметров 
и значений

Система 
(System)

Операции в локальной памяти и удаленных файловых 
системах, в том числе, в файловых системах или 
устройствах, добавленных во время работы Procmon

Сеть 
(Network)

Сетевая активность (UDP и TCP), в том числе 
исходные и конечные адреса (но без переданных или 
полученных данных). Procmon также поддерживает 
разрешение адресов в доменные имена и отображение 
IP-адресов. Параметр Show Resolved Network 
Addresses

 (

Показать найденные имена сетевых 

адресов) находится в меню Options. Можно также 
активировать ее с помощью клавиш Ctrl+N

Процесс 
(Process) 

События процесса и потоков, в частности, создание 
процесса родительским процессом, запуск процесса, 
создание потока, завершение потока или процесса, а 
также загрузка образов исполняемых файлов и файлов 
данных в адресное пространство процесса (обратите 
внимание на то, что Procmon не регистрирует загрузку 
этих образов)

Трассировка 
(Profiling)

Создает и записывает событие для каждого процесса 
или потока в системе, регистрируя потраченное время 
в режимах ядра и пользователя, использование памяти 
и переключения контекстов с момента завершения 
предыдущей трассировки. По умолчанию включенные 
в трассировку события для процесса регистрируются 
всегда, а для потока — никогда. Трассировка вывода 
отладчика (см. ниже), также входит в данный класс 
событий

SIN_ch_04.indd   102

27.12.2011   14:16:23


background image

Process Monitor 

Глава 4  103 

Включение и выключение отображения данных типов событий произво-

дится с помощью пяти кнопок в правой части панели инструментов Procmon. 
Эти кнопки будут описаны далее, в разделе «Фильтрация и выделение».

 Совет Событие 

Load Image (Загрузка образа) может помочь в решении проблем 

с запуском программы. Если программа не запускается, то зачастую найти причину 
проблемы можно, узнав, какие DLL были загружены последними. Например, в DLL 
может возникнуть ошибка, вызывающая нарушение доступа. Это может повлечь за 
собой блокировку загрузчика, «зависание» процесса или невозможность вызова не-
обходимой DLL. В последнем случае за событием Load Image, как правило, следуют 
события файловой системы, соответствующие поиску отсутствующей DLL.

Параметры отображения умолчанию

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

семью десятичными знаками после целого числа, однако фактическая 
точность зависит от таймера высокого разрешения процессора, точность 
которого определяется системой). Procmon регистрирует время по Грин-
вичу (UTC), но отображает время во временной зоне компьютера, на ра-
ботает программа. Например, если в журнале зафиксировано время 9:00 
утра по Восточному времени (UTC5), то в системе, настроенной на Ти-
хоокеанский часовой пояс, будет 6:00 утра.

•  Имя процесса  Имя процесса, выполняющего операцию, вместе со знач-

ком из исполняемого файла процесса.

•  ID процесса  Идентификатор процесса.
•  Операция  Имя записанной низкоуровневой операции и значок класса 

события (активность реестра, файловой системы, сети, процесса или со-
бытие трассировки).

•  Путь  Путь к объекту, с которым выполняется операция (если примени-

мо). Возможные пути включают: путь реестра, начинающийся с имени ку-
ста, путь файловой системы, начинающийся с буквы диска, UNC-имени, 
исходных и целевых сетевых адресов и портов. Обратите внимание на то, 
что HKEY CLASSES ROOT в Win32 — результат объединения HKLM\
Software\Classes и HKCU\Software\Classes. Для путей реестра HKCR 
является синонимом HKLM\Software\Classes; при доступе к разделу из 
HKCR отображается полный (HKCU или HKU). Кроме того, HKCU яв-
ляется синонимом куста HKEY USERS учетной записи, под которой ра-
ботает Procmon. Если Procmon работает под записью, отличной от записи 
процесса, то для данного процесса при обращении к HKCU выводится 
значение HW\{SID_пользователя}.

•  Результат  Результат операции. К основным результатам относятся сле-

дующие:  SUCCESS (УСПЕХ), ACCESS DENIED (В ДОСТУПЕ ОТКАЗА-
НО), NAME NOT FOUND (ИМЯ НЕ НАЙДЕНО), END OF FILE (КОНЕЦ 

SIN_ch_04.indd   103

27.12.2011   14:16:24


background image

104  Часть 

II   

Работа с утилитами

ФАЙЛА), а также BUFFER OVERFLOW (ПЕРЕПОЛНЕНИЕ БУФЕРА), по-
следний зачастую понимают неправильно (см. ниже); в табл. 4-2 описаны 
другие коды результатов.

•  Подробности  Дополнительная информация о событии, относящаяся к 

операции, в частности, желаемый уровень доступа при первом открытии 
объекта, размер, тип и содержание данных при чтении параметра реестра, 
число битов данных при отправке и получении по сети. Некоторые опе-
рации файловой системы содержат коды атрибутов файлов (табл. 4-3).

 Переполнение 

буфера 

По мере учащения атак через Интернет термин «перепол-

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

 Код 

STATUS BUFFER OVERFLOW (ПЕРЕПОЛНЕНИЕ БУФЕРА СОСТОЯНИЯ), как ре-

зультат NTSTATUS регистрируется, когда программа запрашивает значение переменной 
длины, например, параметр реестра, но не предоставляет буфер достаточного размера 
для получения этой информации, так как «не знает» размер запрошенного значения 
заранее. Система сообщает программе необходимый размер буфера и копирует в бу-
фер столько данных, сколько может, но фактически буфер не переполняется. Типичный 
прием при программировании таков: после получения BUFFER OVERFLOW программа 
выделяет буфер достаточного размера и снова запрашивает те же данные, в итоге 
операция завершается с кодом SUCCESS.

Табл. 4-2.  Основные коды результатов

Результат

Описание

SUCCESS (УСПЕХ)

Операция успешно завершена

ACCESS DENIED 
(ОТКАЗАНО В ДОСТУПЕ)

Операция не выполнена, так как дескриптор защи-
ты объекта не дает программе необходимые права 
или целевой файл доступен только для чтения 
(редко знаменует фатальные события при отладке)

SHARING VIOLATION 
(НАРУШЕНИЕ 
СОВМЕСТНОГО 
ДОСТУПА К ФАЙЛУ)

Операция не была выполнена, поскольку объект 
уже открыт и не поддерживает режим совместного 
использования ресурсов, запрашиваемый прог-
раммой

NAME COLLISION 
(КОНФЛИКТ ИМЕН)

Программа пыталась создать уже существующий 
объект

NAME NOT FOUND (ИМЯ 
ФАЙЛА НЕ НАЙДЕНО)

PATH NOT FOUND 
(ПУТЬ НЕ НАЙДЕН)

NO SUCH FILE (ФАЙЛ 
С ТАКИМ ИМЕНЕМ 
НЕ СУЩЕСТВУЕТ)

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

SIN_ch_04.indd   104

27.12.2011   14:16:24


background image

Process Monitor 

Глава 4  105 

Табл. 4-2.  (продолжение)

Результат

Описание

NAME INVALID 
(НЕПРАВИЛЬНОЕ ИМЯ)

Программа запросила объект с неправильным 
именем, например, C:\Windows\»regedit.exe

»

NO MORE ENTRIES 
(ЗАПИСИ 
ОТСУТСТВУЮТ)

NO MORE FILES (ФАЙЛЫ 
ОТСУТСТВУЮТ)

Программа завершила перечисление содержимого 
папки или раздела реестра

END OF FILE (КОНЕЦ 
ФАЙЛА)

Программа прочитала файл до конца

BUFFER TOO SMALL 
(НЕДОСТАТОЧНЫЙ 
ОБЪЕМ БУФЕРА)

По сути то же, что и BUFFER OVERFLOW. 
При устранении неполадок, как правило, не несет 
существенной информации

REPARSE (ПОВТОРНЫЙ 
РАЗБОР)

Программа запросила объект, который ссылается 
на другой объект. Например, HKLM\System\Cur-
rentControlSet может перенаправить на HKLM\
System\ControlSet001

NOT REPARSE POINT 
(НЕТ ТОЧКИ 
ПОВТОРНОГО РАЗБОРА)

Запрашиваемый объект не ссылается на другой 
объект

FAST I0 DISALLOWED 
(БЫСТРЫЙ ВВОД-
ВЫВОД ЗАПРЕЩЕН)

Низкоуровневый оптимизированный механизм 
недоступен для запрашиваемого объекта файловой 
системы. Редко бывает важным при устранении 
неполадок

FILE LOCKED WITH 
ONLY READERS (ФАЙЛ 
ДОСТУПЕН ТОЛЬКО ДЛЯ 
ЧТЕНИЯ)

Файл или проекция файла заблокирована и дос-
тупна только для чтения

FILE LOCKED WITH 
WRITERS (ФАЙЛ 
ДОСТУПЕН ДЛЯ ЗАПИСИ)

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

IS DIRECTORY (ОБЪЕКТ 
ЯВЛЯЕТСЯ КАТАЛОГОМ)

Запрашиваемый объект является каталогом фай-
ловой системы

INVALID DEVICE REQUEST 
(НЕДОПУСТИМЫЙ 
ЗАПРОС УСТРОЙСТВА)

Данный запрос не является допустимой операцией 
для целевого устройства

INVALID PARAMETER 
(НЕВЕРНЫЙ ПАРАМЕТР)

Службе или функции был передан неверный пара-
метр

NOT GRANTED (НЕ 
ПРЕДОСТАВЛЕНО)

Запрашиваемая блокировка файла не может быть 
предоставлена из-за наличия других блокировок

CANCELLED 
(ОТМЕНЕНО)

Запрос ввода-вывода, например, проверка каталога 
файловой системы на наличие изменений, был 
отменен

SIN_ch_04.indd   105

27.12.2011   14:16:24


background image

106  Часть 

II   

Работа с утилитами

Табл. 4-2.  (продолжение)

Результат

Описание

BAD NETWORK PATH 
(СЕТЕВОЙ ПУТЬ 
НЕ НАЙДЕН)

Сетевой путь не удается найти

BAD NETWORK NAME 
(СЕТЕВОЕ ИМЯ 
НЕ НАЙДЕНО)

Указанное сетевое имя не может быть найдено 
на удаленном сервере

MEDIA WRITE 
PROTECTED (НОСИТЕЛЬ 
ЗАЩИЩЕН ОТ ЗАПИСИ)

Носитель не может быть записан, так как защищен 
от записи

KEY DELETED (РАЗДЕЛ 
УДАЛЕН)

Попытка несанкционированной операции с разде-
лом реестра, который был подготовлен к удалению

NOT IMPLEMENTED 
(НЕ РЕАЛИЗОВАНА)

Запрашиваемая операция не выполнена, т. к. 
не реализована в целевом объекте

Настройка отображения полей

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

Рис. 4-2.  Диалог Column Selection

Можно включать и выключать вывод отдельных полей, щелкнув правой 

кнопкой мыши «шапку» списка и выбрав пункт Select Columns (Выбрать 
поля)
 либо вызвав команду Select Columns из меню Options. Как показано 

SIN_ch_04.indd   106

27.12.2011   14:16:24