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

42 Часть
II
Работа с утилитами
текста Windows Vista и более поздние версии измеряют фактическое время
ЦП в режиме ядра и пользователя, использованное каждым потоком. Если
включить отображение поля CPU Cycles Delta (Разница числа циклов ЦП),
Procexp будет отслеживать и выводить эти данные. Если в Windows Vista это
поле содержит «< 0.01», соответствующий процесс очень слабо загружает ЦП.
Как и в случае с Context Switch Delta, столбец CPU Cycles Delta помогает
выявлять процессы, потребляющих избыточное количество ресурсов.
В Windows Vista утилита Procexp может подсчитывать переключе-
ния контекста, но не время ЦП при обслуживании прерываний и DPC.
В Windows 7 возможен точный учет времени ЦП, в том затраченного на
обработку прерываний и DPC. Таким образом, в Windows 7 Procexp ото-
бражает относительную загруженность ЦП в процентах, рассчитанную по
фактически затраченному времени ЦП, а не по неточным данным таймера
Windows. Для процессов, слабо загружающих ЦП, отображается значение
«<0.01», выводить дополнительные данные для них не требуется. Procexp
вычисляет загруженность ЦП гораздо точнее Диспетчера задач. В результа-
те оказывается (порой неожиданно), что ЦП загружен куда сильнее, чем по
данным Диспетчера задач.
Права администратора
Procexp не всегда требует наличия прав администратора, однако значитель-
ная часть сведений о системе доступна только при работе с повышенным
уровнем разрешений. Особенно это касается процессов, работающих вне те-
кущего сеанса пользователя. Здесь возможности Procexp определяются на-
личием привилегии Debug Programs (Отладка программ), предоставляемой
по умолчанию группе Администраторы. Там, где политика безопасности не
дает администраторам привилегию Debug Programs, использовать все воз-
можности Procexp не удастся. Procexp отображает максимум доступной ин-
формации, если же это невозможно, программа оставляет поля пустыми или
выводит в них «access denied» (в доступе отказано).
Примечание
В Windows Vista и выше даже полных прав администратора недоста-
точно для чтения подробной информации о защищенных процессах. Audiodg.exe и
System являются защищенными процессами, о чем Procexp сообщает на странице Security
(Безопасность) диалогового окна процесса Properties.
Если вы не вошли в систему под учетной записью администратора, то для
запуска Procexp с правами администратора в Windows XP и Server 2003 вам
нужно запустить программу командой Run As (Запуск от имени) или же
из другой программы (например, cmd.exe), которая уже работает под учет-
ной записью администратора. В Windows Vista и более поздних версиях для
этой цели служит параметр Run As Administrator (Запуск от имени адми-
нистратора).
В Windows Vista и выше Procexp предлагает два дополнительных вари-
анта. Если Procexp работает без повышенных привилегий, то, выбрав Show
SIN_ch_03.indd 42
27.12.2011 14:14:20

Process Explorer
Глава 3 43
Details For All Processes (Показать подробности для всех процессов) в
меню File (Файл), можно перезагрузить Procexp с повышением привилегий
через UAC. Второй вариант — запуск Procexp с параметром /e, для чего так-
же требуется повышение привилегий через UAC. (Разумеется, это возмож-
но, если вы работаете в контексте, допускающем повышение привилегий;
подробнее см. в главе 2).
Главное окно
Список процессов представляет собой таблицу, в которой каждая строка
представляет процесс в системе, а столбцы (поля) — постоянно обновляю-
щиеся атрибуты этих процессов. Можно выбирать атрибуты для отображе-
ния, изменять размер и порядок сортировки столбцов, а также сохранять на-
стройки столбцов для дальнейшего использования. На панели инструментов
Procexp имеются средства для выполнения общих операций и построения
графиков, отражающих значения заданных параметров для всей системы.
В строке состояния отображается значение параметров, выбранных пользо-
вателем. Ниже мы остановимся на этих функциях подробнее.
Список процессов
Каждая строка в списке процессов представляет процесс, исполняемый на
локальном компьютере, хотя это не совсем корректная фраза. Как любит
подчеркивать мой друг и соавтор Дэвид Соломон, процессы не исполняются,
исполняться могут только потоки. Именно потоки, а не процессы являются
теми объектами, которые Windows планирует к исполнению, и которые по-
требляют время ЦП. Процесс — это всего лишь контейнер для набора ресур-
сов, в том числе для потоков. Также не совсем корректно говорить «активные
процессы» или «процессы с работающими потоками», поскольку большая
часть жизненного цикла многих процессов проходит при отсутствии рабо-
тающих или запланированных для исполнения потоков. Следовательно,
каждая строка списка процессов на самом деле отображает объект процесса
в системе, который имеет собственное виртуальное адресное пространство,
а также один или несколько потоков, которые, возможно, исполняют код.
Кроме того, как будет сказано ниже, первые три строки в режиме просмо-
тра по умолчанию (режим дерева) являются исключениями. Забегая вперед,
скажу, что буду называть их именно «работающими процессами».
Подсветка процессов
Одна из важных функций списка процессов — разноцветная подсветка, вы-
деляющая различные типы процессов. Можно самостоятельно задавать цвет
подсветки для каждого типа процессов, по умолчанию установлены следую-
щие цвета:
• Голубой Процессы, работающие под той же учетной записью пользо-
вателя, что и Procexp (т. н. «свои процессы»). Учтите, что, несмотря на
это, процессы могут находиться в разных сеансах LSA, на разных уровнях
SIN_ch_03.indd 43
27.12.2011 14:14:20

44 Часть
II
Работа с утилитами
целостности (IL) и сеансах терминалов. Поэтому процессы, запущенные
из-под одной учетной записи могут функционировать в разных контек-
стах защит. Обратите внимание и на то, что при запуске Procmon из-под
другой учетной записи остальные приложения, запущенные в этом сеан-
се, не будут подсвечиваться как «свои».
• Розовый Службы (процессы-контейнеры служб Windows).
• Фиолетовый Упакованные образы. Procexp с помощью простых эври-
стических процедур определяет исполняемые файлы, содержащие код в
сжатом и (или) зашифрованном виде. Зачастую вредоносное ПО исполь-
зует данную технологию, чтобы спрятаться от антивирусных программ, а
затем распаковать свой код в памяти и выполнить его. Обратите внима-
ние на то, что иногда эвристические процедуры вызывают ложные сраба-
тывания. Чаще всего это происходит с отладочными сборками Microsoft
Visual C++.
• Коричневый Задания (процессы, связанные с заданиями). Задание —
это объект Windows, позволяющий управлять процессами как единым
целым. На задания могут налагаться ограничения, например по выделен-
ной памяти или времени исполнения. Процесс может входить не более
чем в одно задание. По умолчанию задания не подсвечиваются.
• Желтый Процессы .NET (процессы, использующие Microsoft .NET
Framework).
• Темно-серый Приостановленные процессы. В этих процессах все по-
токи приостановлены и не могут быть запланированы для исполнения.
Процессы, завершившиеся аварийно, могут отображаться как приоста-
новленные, в отчетах об ошибках Windows при этом указывается аварий-
ное завершение (не путайте темно-серый цвет со светло-серым, которым
в цветовых схемах Windows по умолчанию подсвечивается выбранная
строка, когда окно Procexp не активно).
Если процесс относится к нескольким категориям, цвет подсветки опре-
деляется с учетом принятых приоритетов: приостановленные, упакованные,
.NET, задания, службы, «свои» процессы. Например, если процесс содержит
службу и использует .NET Framework, Procexp подсвечивает его как .NET-
процесс, так приоритет этой категории выше, чем служб. Procexp требует
прав администратора для распознавания упакованных образов, .NET-
процессов и принадлежности к заданию, а также если процесс работает на
более высоком IL, чем Procexp, или под другой учетной записью.
Помимо типов процессов в Procexp подсветкой выделяются новые и не-
давно завершенные процессы. По умолчанию новые процессы подсвечива-
ются зеленым в течение секунды. Когда процесс завершается, Procexp со-
храняет его в списке, на секунду подсвечивая красным. Имейте в виду: хотя
подсвеченный красным процесс еще отображается в списке, он уже завер-
шился и больше не существует. Можно настроить длительность подсветки,
выбрав пункт Difference Highlight Duration
(Длительность подсветки) в
SIN_ch_03.indd 44
27.12.2011 14:14:20

Process Explorer
Глава 3 45
меню Options (Параметры) и введя число от 0 до 9 (рис. 3-2). Учтите также,
что фактическая длительность подсветки зависит от интервала обновления
окна Procexp: новые и завершившиеся процессы подсвечиваются только по
истечении интервала обновления.
Рис. 3-2. Диалоговое окно Difference Highlight Duration
Для изменения цвета подсветки выберите команду Configure Highlighting
(Настройка подсветки) в меню Options. Как показано на рис. 3-3, мож-
но включать и отключать подсветку, помечая соответствующие флажки.
Флажки New Objects (Новые объекты) и Deleted Objects (Удаленные
объекты) также связаны с элементами, отображаемыми в режиме про-
смотра DLL и режиме просмотра описателей. Флажок Relocated DLLs
(Перемещенные DLL), не помеченный по умолчанию, действует только в
режиме просмотра DLL. Щелкните кнопку Change (Изменить) — откроется
окно Color-picker (Палитра), и выберите цвета подсветки соответствующе-
го типа процессов (цвет подсветки приостановленных процессов изменить
невозможно).
Рис. 3-3. Диалоговое окно Configure Highlighting
Обновление окна
По умолчанию Procexp обновляет отображаемые динамические атрибуты
ежесекундно. Динамические атрибуты — это атрибуты, которые периоди-
чески изменяются, например, затраченное время ЦП. Чтоб приостановить
обновление, нажмите пробел. После повторного нажатия пробела автома-
тическое обновление возобновляется. Чтобы однократно обновить все ото-
бражаемые данные (динамические и статические), нажмите F5 или щелкни-
те значок Refresh (Обновить) на панели инструментов. Изменять интер-
вал автоматического обновления можно с помощью пункта Update Speed
SIN_ch_03.indd 45
27.12.2011 14:14:20

46 Часть
II
Работа с утилитами
(Скорость обновления) в меню View (Вид). Длительность интервала об-
новления — от 0,5 до 10 с.
Совет
Изучать объекты, созданные и удаленные за произвольный промежуток вре-
мени, удобно при ручном обновлении и подсветке изменений. Приостановите обнов-
ление, выполните нужные действия в системе, а затем вернитесь в Procexp и нажми-
те F5.
Столбцы по умолчанию
Каждый столбец в списке процессов представляет тот или иной статический
либо динамический атрибут процесса. Динамические атрибуты обновляют-
ся при каждом автоматическом обновлении. Procexp по умолчанию отобра-
жает следующие столбцы:
• Process (Процесс) Имя и значок исполняемого файла, если Procexp
может идентифицировать полный путь к исполняемому файлу. Первые
три строки списка представляют «псевдопроцессы», о которых будет ска-
зано ниже.
• PID (ID процесса) Идентификатор
процесса.
• CPU (ЦП) Время ЦП, затраченное в течение последнего интервала об-
новления (в процентах, округленное до двух десятичных знаков; подроб-
нее см. ниже в описании вкладки Process Performance; о загруженности
ЦП см. выше в этой главе).
• Private bytes (Закрытая память) Число байтов памяти, выделенной и
переданной процессу для монопольного (а не для совместного с други-
ми процессами) использования. Закрытая память процесса включает его
кучу и стек. Постоянный рост данной величины зачастую свидетельству-
ет об утечках памяти.
• Working Set (Рабочий набор) Объем физической памяти, выделенный
процессу Диспетчером памяти.
• Description and Company Name (Описание и название компании) Ин-
формация из образа исполняемого файла. Отображается, только если
Procexp идентифицирует путь к файлу и сможет прочитать его. Если
утилита Procexp работает без прав администратора, она не сможет полу-
чить информацию о процессах, не являющихся службами и работающих
в другом контексте защиты.
Возможно отображение и множества других атрибутов, о которых рас-
сказывается ниже.
Допускается изменять ширину столбцов, перетаскивая их границы в
«шапке» списка. Чтобы включить автоподбор ширины столбца по его содер-
жимому, нужно дважды щелкнуть его границу справа от заголовка столбца.
Чтобы изменить порядок столбцов, перетащите их заголовки как требуется
(но столбец Process всегда будет первым слева, он также всегда будет ви-
ден). Столбцы, содержимое которых не умещается в отведенном для него
месте, можно прокручивать по горизонтали.
SIN_ch_03.indd 46
27.12.2011 14:14:21