Process Explorer - управление процессами в Windows.


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




    Process Explorer - программа от компании Sysinternals для наблюдения в реальном масштабе времени за действиями различных процессов и управления ими в среде операционной системы Windows. После приобретения Sysinternals компанией Майкрософт, в разделе технической поддержки появился раздел Windows Sisinternals где можно найти описание и ссылки для скачивания большинства программных продуктов Sysinternals.
Process Explorer - на сегодняшний день - это самая популярная утилита среди продуктов Sysinternals
Автор - Марк Руссинович (Mark Russinovich)

Программа работает во всех версиях ОС Windows и не требует инсталляции. Последнюю версию можно скачать с сайта Microsoft по ссылке на странице программы..
Начиная с версий, вышедших в 2011 г. Process Explorer не работает в среде Windows 2000.
Здесь относительно старая версия Process Explorer, работающая во всех Windows, включая Windows 2000.
В архиве присутствует исполняемый файл procexp.exe, файл документации на английском языке procexp.chm и текстовый файл eula.txt с лицензионным соглашением.

    Process Explorer позволяет:

- получать подробнейшую информацию о всех процессах, выполняющихся в среде Windows;
- получать доступ к важнейшим функциям управления процессами из главного меню или из контекстного меню выбранного процесса;
- управлять не только приложениями, но и службами системы (остановить, приостановить, возобновить, перезапустить);
- кроме функции принудительного завершения процессов (Kill), использовать функции приостановки (Suspend) и продолжения выполнения (Resume);
- управлять не только процессами, но и потоками (Threads), т.е. динамически внедряемыми в основной процесс программными модулями (DLL);
- изменять приоритеты выполняющихся процессов, их права доступа и разрешения, задавать соответствие процессорам в многопроцессорных (многоядерных) системах;
- создавать новые процессы с возможностью запуска от имени текущего пользователя, пользователя с ограниченными правами и администратора;
- в любой момент времени принудительно выполнять дампы памяти (Minidump или Fill Dump) с сохранением в выбранный файл;
- выполнять завершение работы Windows, завершение сеанса пользователя, переход в спящий режим, режим гибернации и блокировку рабочего стола;

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


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



    Интерфейс программы достаточно прост и удобен. Имеется строка меню (menu bar), панель инструментов (toolbar) и область вывода данных, представленная либо в виде иерархического списка процессов, либо в виде окна, разделенного на две половины. В верхней части - список процессов, в нижней - подробная информация о выбранном процессе - потоки, дескрипторы, открытые файлы, ключи реестра, и т.п., Представление области вывода данных можно изменить в любой момент времени нажатием комбинации CTRL+L или с использованием пункта меню "View" - "Show Lower Pane".

Process Explorer от Sysinternals


В данной статье будет рассмотрен интерфейс версий Process Explorer, выпущенных после 2011г. В более старых версиях программы. некоторые элементы могут отсутствовать.
В верхней панели (Upper Pane) выводится информация в виде нескольких колонок, состав которых можно изменить с помощью меню "View" - "Set Columns". По умолчанию, выбраны колонки, наиболее полно раскрывающие возможности программы и не снижающие удобства ее использования.

Process - в данной колонке отображается дерево активных процессов и их потомков. Потомок (child) - процесс, созданный другим, родительским (parent) процессом. Любой процесс может быть и потомком, если он создан в ходе выполнения другого процесса, и родителем, если в ходе его выполнения создан другой процесс. Отображение элементов дерева процессов выполняется в соответствии с порядком их запуска в ходе загрузки операционной системы и регистрации пользователя.
Корнем дерева процессов является уровень System Idle Process - состояние простоя системы. Следующим элементом дерева представлен уровень System. На самом деле, System - это не отдельно существующий реальный процесс, а уровень дерева, предназначенный для отображения активности системы, связанной с обработкой прерываний, работой системных драйверов, диспетчера сеансов Windows (Session Manager) smss.exe, и csrss.exe (Client - Server Runtime). Элемент Interrupts связан с обработкой аппаратных прерываний, элемент DPCs - с обработкой отложенных вызовов процедур (Deferred Procedure Calls). Механизм обработки аппаратных прерываний в Windows предполагает как бы двухуровневую обработку. При возникновении запроса на прерывание, сначала, получает управление программа-обработчик аппаратного прерывания, выполняющая лишь самые необходимые критические операции, а остальные действия откладываются до тех пор, пока не появится относительно свободное процессорное время. Тогда эти действия будут выполнены в рамках вызова отложенной процедуры. В многопроцессорных системах каждый процессор имеет свою отдельную очередь отложенных вызовов. Порядок обработки очереди запросов на прерывание и очереди отложенных процедур определяется их приоритетами. Для определения приоритетов используется уровень запроса на прерывание IRQL - программно-аппаратный механизм, применяемый для синхронизации выполнения отдельных процессов в операционных системах семейства Windows. Уровни IRQL аппаратных прерываний задаются программированием регистров контроллера прерываний, а уровни IRQL программного кода операционной системы - реализуются программно.

Степень использования ресурсов уровнем System дерева процессов, отображаемого программой Process Explorer, характеризует занятость операционной системы диспетчеризацией и обработкой прерываний. Высокая степень использования процессора для обработки прерываний может указывать на наличие проблем с оборудованием или некорректно работающий драйвер устройства. Обычно, это сопровождается эффектом заметного снижения общей "полезной" производительности системы.

Остальная часть дерева отображает иерархию реально выполняющихся в Windows процессов. Так, например, приложение служб и контроллеров SERVICES.EXE обеспечивает создание, удаление, запуск и остановку служб (сервисов) операционной системы, что и отображается в списке порождаемых им процессов.

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

CPU - отображается степень использования центрального процессора.

Private Bytes - объем оперативной памяти, выделенной данному процессу и не разделяемой с другими процессами.

Working Set - рабочий набор процесса, представляющий собой суммарный объем всех страниц используемой им памяти, в данный момент времени. Размер этого набора может изменяться, в зависимости от запросов процесса. Большая часть процессов используют разделяемую память (Shared Memory).

Description - краткое описание процесса

Company Name - название компании-разработчика.

Path - путь и имя исполняемого файла.

Verified Signer - признак достоверности цифровой подписи исполняемого файла. Наличие строки "Not verified" говорит о том, что цифровая подпись отсутствует или ее не удалось проверить. Для проверки цифровой подписи нужен доступ в Интернет.

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

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


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

Run - запустить программу, открыть документ, ярлык, URL. Аналогично стандартному меню Windows "Пуск - Выполнить"
Run As Limited User - то же самое "Выполнить", но под учетной записью пользователя с ограниченными правами, даже если текущий пользователь вошел в систему с правами администратора.
Save CTRL+S - сохранить текущее представление выходных данных Process Explorer в текстовый файл. Save CTRL+A - то же самое, но с возможностью выбора пути и имени файла.
Shutdown - завершение работы. Можно выбрать следующие режимы завершения
- Logoff - завершение сеанса текущего пользователя.
- Shutdown - выключить компьютер
- Hibernate - перевести компьютер в режим гибернации
- Stand By - перевести в спящий режим
- Lock - закрыть доступ к рабочему столу
- Restart - перезагрузить систему.
Exit завершить работу Process Explorer

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

Always on Top - всегда отображать окно программы Process Explorer поверх всех остальных окон.
Replace Task Manager - при установке данного режима, стандартный диспетчер задач Windows будет заменен на Process Explorer. Повторный выбор данного пункта меню возвращает Task Manager в качестве диспетчера задач Windows.
Hide When Minimized - скрыть значок программы в области уведомлений при сворачивании
Allow Only One Instance - разрешить запуск только одной копии Process Explorer
Confirm Kill - требовать подтверждение при принудительном завершении процессов
Verify Image Signature - проверять достоверность цифровой подписи исполняемых файлов
Tray Icons показывать в системном трее иконки графиков (history) использования процессора (CPU) системы ввода-вывода (I/O), объем общей выделенной памяти (Commit), физической памяти (Physical Memory).
Configure Symbols - конфигурирование источника для определения имен функций.
Configure Colors - настройка выделения цветом отображаемых объектов. Можно изменить цветовое кодирование процессов в основном окне программы. Кнопка "Defaults" позволяет вернуть настройки цветового выделения по умолчанию.
Цветовое выделение дает дополнительные признаки процессов: сиреневым цветом выделяются процессы, имеющие связанные с ними системные службы, зеленым - только что запущенные, красным - завершающиеся, фиолетовый - имеющий упакованный исполняемый файл и т.п.

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

System Information - суммарная информация об использовании центрального процессора, оперативной памяти, операциях ввода-вывода.
Show Processes From All Users - режим отображения информации о процессах. При включении данного режима будет выполняться выдача информации обо всех процессах всех активных пользователей системы, в том числе и системных служб. При выключении - только процессы, выполняющиеся под учетной записью текущего пользователя.
Scroll For New Process - указатель будет перемещаться на строку с отображением нового процесса.
Show Lower Pane CTRL+L - отображать нижнюю панель.
Lower Pane View - режим вывода данных в нижней панели - DLLs (CTRL+D) - отображаются данные о загруженных библиотеках DLL, Handles (CTRL+H) - отображаются данные об открытых указателях (хэндлах).
Refresh Now F5 - обновить экран.
Update Speed - интервал автоматического обновления экрана в секундах. Нажатие пробела вызывает включение/выключение паузы.
Остальные пункты данного меню позволяют изменить представление отображаемой информации, сохранить или загрузить ранее сохраненные настройки.

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

    Пункты данного раздела меню предназначены для управления процессами. Эти же пункты можно выполнить с помощью контекстного меню, вызываемого правой кнопкой мышки для выбранного процесса.
Set Priority - установить приоритет. Уровень приоритета процесса в Windows задается, в порядке возрастания числом от 0 до 31. Большинство процессов выполняются с приоритетом 8 (Normal). Любому процессу можно принудительно понизить или повысить приоритет с использованием данного меню. Удобно использовать в случаях, когда какая-нибудь программа работает с высоким потреблением ресурсов процессора длительное время и замедляет работу других приложений. В результате, может возникнуть "подтормаживание" других, не требующих значительных ресурсов, интерактивных процессов (браузер, проводник и т.п.), что создает не самые комфортные условия для работы пользователя. Снижение приоритета "прожорливой" программы позволит устранить это неприятное явление.
Kill Process Del - принудительно завершить выбранный процесс.
Kill Process Tree - принудительно завершить выбранный процесс и все порожденные им процессы (дерево процессов)
Restart - перезапустить выбранный процесс.
Suspend - приостановить выбранный процесс. Для продолжения работы процесса используется пункт меню Resume
Set Affinity - позволяет задать соответствие выбранного процесса процессорам в многопроцессорных системах.
Create Dump - принудительно выполнить дамп памяти. Позволяет получить малый или полный дамп памяти для анализа. Для получения дампов памяти в контексте выполнения системных процессов необходимо, чтобы Process Explorer выполнялся с правами локальной системной учетной записи (Local System, NT AUTHORITY\система).
Search Online - будет запущен браузер и выполнен поиск информации о выбранном процессе с использованием поисковика Google.
Properties - вывод информации о выбранном процессе. Данные представлены в виде окна свойств процесса с несколькими вкладками, позволяющими получить подробнейшую информацию.


Панель инструментов программы Process Explorer .



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

Панель Инструментов Process Explorer от Sysinternals

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

Кнопки панели инструментов Process Explorer от Sysinternals - Save - сохранить текущие информацию о выбранном процессе в текстовый файл.
Кнопки панели инструментов Process Explorer от Sysinternals - Refresh Now (F5) - принудительно обновить экран. Можно использовать клавишу F5
Кнопки панели инструментов Process Explorer от Sysinternals - System Information CTRL+I - отобразить окно информации о системе. Отображаются данные об использовании процессора, памяти, системы ввода вывода и, частично, о сетевой активности.
Кнопки панели инструментов Process Explorer от Sysinternals - Show Process Tree - отобразить окно с деревом процессов. Информация отображается в виде иерархической структуры, отображающей зависимости между родительскими и порожденными процессами. Процессы, имеющие одного и того же родителя, отображаются в порядке, соответствующем времени запуска. Так, например, процесс wininit.exe породил процесс services.exe, который, в свою очередь породил несколько процессов svchost.exe и т.д.
Кнопки панели инструментов Process Explorer от Sysinternals - Show Low Pane/Hide Low Pane - отобразить/скрыть нижнее окно со списком указателей или списком модулей DLL .
Кнопки панели инструментов Process Explorer от Sysinternals - View Handles/View DLL - отобразить в нижнем окне список указателей (CTRL+H) или список модулей DLL (CTRL+D).
Кнопки панели инструментов Process Explorer от Sysinternals - Properties - отобразить свойства процесса. Вместо кнопки можно использовать двойной щелчок или нажатие клавиши Enter
Кнопки панели инструментов Process Explorer от Sysinternals - Kill Process/Close Handle - уничтожить выбранный процесс или закрыть указатель.
Кнопки панели инструментов Process Explorer от Sysinternals - Find Handle or DLL - диалог поиска подстроки в имени DLL или Handle. Можно использовать комбинацию клавиш Ctrl+F
Кнопки панели инструментов Process Explorer от Sysinternals - Find Window's Process - Позволяет перейти к процессу, связанному с определенным окном. Для выбора окна нужно нажать левую кнопку мышки на значке мишени и (не отпуская кнопку) переместить указатель на нужное окно. Удобно использовать в случаях, когда на экран выведено некоторое окно, и неизвестен процесс, связанный с ним.





Примеры практического применения программы Process Explorer .



    Возможности программы Process Explorer во многом зависят от прав пользователя, в среде которого она выполняется. Чем выше права пользователя, тем больше у него возможностей по доступу к информации о процессах и управлению ими. Для стандартного использования программы, обычно, достаточно прав локального администратора. В ОС Windows Vista / Windows 7 нужно использовать "Запуск от имени администратора". Однако, для полного доступа к управлению системными службами, получения дампов памяти, приостановке сервисов или их уничтожения, этого недостаточно и требуется, чтобы программа выполнялась с правами локальной системной учетной записи (Local System или NT AUTHORITY\SYSTEM, NT AUTHORITY\Система), под которой работает большинство системных служб Windows.
Запустить какой-либо процесс под локальной системной учетной записью можно несколькими способами. Поскольку Process Explorer является продуктом Sysinternals, желательно, и способ его запуска с максимальными правами выбрать с использованием другой утилиты от Sysinternals - PSExec.exe. Подробное описание - здесь

Примерный перечень действий :

Предполагается, что программы Sysinternals (Process Explorer и PSExec) сохранены в папке C:\SYSINTERNALS . Запустить интерпретатор командной строки cmd.exe . Для пользователей Windows Vista /Windows7 используйте контекстное меню "Запуск от имени администратора". Перейдите в каталог с программами
CD C:\SYSINTERNALS
psexec -i -s C:\SYSINTERNALS\procexp.exe
Или без перехода в каталог программ:

C:\SYSINTERNALS\psexec -i -s C:\SYSINTERNALS\procexp.exe

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

При первом старте в данной операционной системе, утилита PSExec запросит подтверждение лицензионного соглашения. Ключ -i разрешает взаимодействие с рабочим столом, без него программа будет невидимой для пользователя. Ключ -s означает выполнение программы C:\SYSINTERNALS\procexp.exe с правами локальной системной учетной записи. Указание полного пути исполняемого файла C:\SYSINTERNALS\procexp.exe обязательно, поскольку PSExec инсталлирует собственную службу и именно она выполняет запуск приложения, указанного в командной строке. Для большинства случаев, текущим каталогом служб будет не ваш каталог с программами, а \Windows\system32 . Если скопировать PSExec.exe и procexp.exe в него, то полные пути можно не указывать.
Признаком того, что Process Explorer выполняется c правами локальной системной учетной записи, является текст с именем пользователя NT AUTHORITY\SYSTEM в заголовке окна программы.

Использование Process Explorer для поиска причин замедления работы системы.

    Process Explorer удобно использовать для создания комфортной работы интерактивных приложений на фоне выполнения длительных ресурсоемких задач. Например, когда выполняется архивирование больших файлов с использованием алгоритма, требующего высокой степени использования центрального процессора. Работа пользователя за рабочим столом может сопровождаться замедлением реакции приложений и общим "подтормаживанием" системы. Process Explorer позволяет легко обнаружить процесс, максимально использующий ресурсы CPU и, например, понизить его приоритет с уровня Normal (8) до уровня Below Normal (6) или Idle (4). В результате, работа за рабочим столом пользователя с использованием интерактивных задач, работающих с приоритетом 8 станет заметно приятней.
Несколько сложнее выглядит ситуация, когда замедление видимого быстродействия системы не связано с выполнением ресурсоемких приложений, и сопровождается кратковременными "подвисаниями", рывками при перемещении окон или даже указателя мышки.

Process Explorer от Sysinternals


На представленной картинке в колонке CPU видно, что режим ожидания (простоя) процессора составляет 47.88%, обработка прерываний - 49.34%, оставшиеся 2.78% делятся между системными службами и задачами пользователя. Такая высокая степень задействования процессора обработкой прерываний - это явно ненормально и говорит либо о проблемах с периферийным оборудованием, либо о некорректно работающем драйвере устройства. В правильно работающей системе на обработку прерываний отводится 1-5% в зависимости от интенсивности работы. Причиной же ситуации, соответствующей снимку экрана, являлось работа контроллера жесткого диска в режиме программируемого ввода-вывода PIO, а не в режиме прямого доступа в память (DMA).

Режим PIO контроллера  HDD.


В режиме PIO передача данных выполняется с помощью процессорных команд ввода-вывода, а не непосредственно контроллером диска с использованием прямого доступа в память (без использования CPU). После принудительного включения режима UltraDMA в свойствах контроллера система вернулась к нормальной производительности с обработкой прерываний процессором на уровне 05-1.5%.

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

Обнаружить проблемный драйвер довольно непросто и одного средства Process Explorer будет явно недостаточно. К сожалению, утилита не позволяет выявить степень использования ресурсов отдельными драйверами. Высокий уровень использования ресурсов процессом обработки аппаратных прерываний (Hwrdware Interrupts) и вызовом отложенных процедур (Deffered Procedure Calls или DPC's) может быть вызван одним из десятков или даже сотен драйверов. Определить проблемный драйвер стандартными средствами Windows невозможно, но, к счастью, в природе существуют средства для контроля производительности и оптимизации системы. В частности, существует набор инструментов для анализа производительности системы, предназначенный для разработчиков драйверов и программных модулей, работающих в режиме ядра Windows Performance Analysis Toolkit (WPT) . Ознакомительная документация. В состав набора инструментов входит утилита Xperf, позволяющая определить степень использования процессорного времени модулями ядра и драйверами системы. Существует также утилита мониторинга активности обработчиков прерываний RATTV3, позволяющая с заданной периодичностью собирать и записывать в журнал данные о счетчиках вызовов программ обработки прерываний. И, пожалуй, самое простое средство - консольная утилита Kernrate

    Механизм обработки прерываний в Windows построен таким образом, что непосредственно в обработчике прерывания (Interrupt Service Routine - сокращенно ISR), имеющем высокий приоритет, выполняются лишь самые критические операции, а остальные действия откладываются до тех пор, пока не появится относительно свободное процессорное время. В высокоприоритетной части обработчика прерываний используется минимальное время на выполнение, небольшое количество операций и особая надежность программного кода, поскольку ошибки, допущенные во время его выполнения, могут обрушить операционную систему, которая не сможет корректно их обработать. Поэтому обычно, обработчик прерывания, выполняет только минимально необходимую работу и подготавливает условия для окончательной обработки - осуществляет отложенный вызов процедуры (Deffered Procedure Call - сокращенно DPC), которая выполнит все остальные действия, не требующие повышенной срочности.



Утилита от Microsoft Kernrate Viewer позволяет относительно просто определить степень использования процессора отдельными драйверами в процессе обработки прерываний

Поддерживаемые операционные системы: Windows 2000, Windows XP и Windows 2003 Server. Поддерживаемые процессоры: Intel x86 processors (Pentium и старше), эквивалентные им процессоры AMD, а также 64-битные процессоры от Intel и AMD.

После установки Kernrate, в папке \Program Files\krview\kernrates будут находиться исполняемые файлы

Kernrate_i386_Win2000.exe
Kernrate_i386_XP.exe
Kernrate_ia64_XP.exe

Для удобства использования в командной строке, можно один из модулей, соответствующий вашей операционной системе, перетащить в папку, которая присутствует в путях поиска исполняемых файлов ( например \Windows\system32) и присвоить ему более короткое имя (например kernrate.exe).

После запуска утилита выдает на экран сообщение:

Press CTRL-C to finish collecting profile data - Нажмите CTRL-C для завершения сбора данных профилирования.

При нажатии CTRL-C программа завершает работу, и на экран выводятся собранные данные профилирования системы, включающие суммарную статистику по использованию процессоров, физической и виртуальной памяти, а также счетчики использования модулей в режиме ядра. Вся информация, как правило, на экране не помещается, поэтому лучше использовать запуск Kernrate с перенаправлением вывода в текстовый файл:

Kernrate > C:\kernrate.log

В этом случае, после нажатия CTRL-C, результаты работы программы можно будет просматривать в файле C:\kernrate.log.

Пример содержимого файла журнала работы Kernrate:

Вначале присутствует общая информация о компьютере и самой Kernrate. Затем, собранные и обработанные данные об использовании ресурсов системы:

------------Overall Summary:--------------
P0     K 0:00:19.437 (25.4%)     U 0:00:09.109 (11.9%)     I 0:00:48.125 (62.8%)     DPC 0:00:01.062 ( 1.4%) Interrupt 0:00:00.171 ( 0.2%) Interrupts= 52771, Interrupt Rate= 688/sec.


P0 - первый (или единственный процессор). Для многопроцессорных систем будут присутствовать P1 (второй CPU), P2 и т.д.
K 0:00:19.437 (25.4%) - использование процессора в режиме ядра (Kernel mode)
U 0:00:09.109 (11.9%) - использование процессора в пользовательском режиме (User mode)
I 0:00:48.125 (62.8%) - процессор в режиме ожидания (Idle)
Interrupt 0:00:00.171 ( 0.2%) - использование процессора программами обработки прерываний (Interrupt service routine)
DPC 0:00:01.062 ( 1.4%) - использование процессора вызовами отложенных процедур (Deffered Procedure Call)
Interrupts= 52771 - количество зафиксированных прерываний за время работы Kernrate
Interrupt Rate= 688/sec - количество зафиксированных прерываний в 1 секунду.

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

Результаты для режима ядра отображаются после строки :

-----------------------------
Results for Kernel Mode:
-----------------------------


Проценты в таблице базируются на количестве зафиксированных утилитой событий (Hits).

Module             Hits               msec           %Total           Events/Sec
processr           17135           76658             65 %             5588131
ntoskrnl              3670           76658             14 %             1196874
win32k               1015           76658              3 %             331015
hal                       964             76658             3 %             314383
aswSP                 646             76658             2 %             210675
FILTNT              595             76658             2 %             194043
Sandbox              416            76658             1 %             135667
aswSnx               337             76658             1 %             109903
Ntfs                     253             76658             0 %             82509
afd                       163             76658             0 %             53158
tcpip                    155             76658             0 %             50549
. . .


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

Module - имя программного модуля. Имя Processr (а также в других версиях Idle, P3) относится к выполнению цикла ожидания.
Hits - число попаданий событий в профиль Kernrate
msec - количество миллисекунд работы в режиме ядра зафиксированное в профиле.
% Total - процент использования процессора данным модулем.
Events/Sec - число зафиксированных событий за 1 секунду.

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

Утилита Kernrate имеет несколько десятков ключей командной строки, позволяющих выполнить более тонкое и точное профилирование и, например, получить данные по вызовам отдельных функций ядра конкретными процессами

    Кроме Kernrate, можно воспользоваться инструментом аудита ISR и DPC RATTV3 - RATT Long ISR and DPC Audit Tool от Microsoft.

По умолчанию, установка программы выполняется в каталог %Program files%\Microsoft\RATTV3. В процессе установки, в данном каталоге создается журнал Deploy.log и ярлык в папке "Автозагрузка" для автоматического запуска приложения RATT.EXE с ключами -loop -start . В целом, процесс сбора данных с помощью RATTV3 практически не влияет на быстродействие системы, но если нет необходимости в непрерывном мониторинге, ярлык для автоматического старта можно удалить и запускать RATTV3 вручную. Данные из файла журнала установки ( Deploy.log) программы не рекомендуется удалять или модифицировать.

В папке находятся 2 исполняемых файла ratt.exe и cswa.exe . Первый - это небольшая программа, выполняемая в фоновом режиме для управления процессом сбора информации. Второй - программа обработки, накопления, и сохранения результатов. Для сбора используется технология трассировки событий Windows (Event Tracing for Windows, сокращенно ETW). Программа cswa.exe - это обработчик трассировки, задачей которого является обнаружение событий обработки прерываний (ISR и DPC) и сохранение результатов в файлах журналов.
В процессе инсталляции RATTV3, в реестре Windows создается раздел HKEY_LOCAL_MACHINE\Software\Microsoft\RATTV3 , ключи которого позволяют управлять процессом сбора и сохранения данных.

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

Start Monitoring - включить режим наблюдения с периодичностью, задаваемой значением ключа реестра
HKEY_LOCAL_MACHINE\Software\Microsoft\RATTV3\TracingPeriod
Непосредственно сбор, обработка и накопление данных выполняется программой CSWA.EXE. Результаты записываются в журнал %system32%\logfiles\rattv3 и включают файл трассировки (ETL file), файл без расширения, содержащий счетчики драйверов и файл отчета с расширением TXT.

Stop Monitoring - остановить мониторинг.

Loop Mode - режим циклического выполнения.

FTP Enabled - данные мониторинга будут периодически сбрасываться на FTP-сервер. По умолчанию, этот режим отключен, но его можно включить изменив значение ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RATTV3\FTPEnabled

FTP Now - выполнить передачу данных на FTP-сервер немедленно.

Help - вызов справки.

CSWA создает файлы отчетов, которые содержат имя компьютера, дату, время и данные о компонентах, работающих в режиме ядра и вызвавших события обработки прерываний (ISRs и/или DPCs) в процессе мониторинга.

Для анализа возможностей компьютерных систем обрабатывать потоки данных в реальном масштабе времени (без задержек) удобно пользоваться утилитой Thesycons DPC Latency Checker (dpclat.exe) , предназначенной для определения задержек при обработке аудио и видео потоков данных. Программа бесплатна для некоммерческого использования и может работать в Windows 7, Windows 7 x64, Windows Vista, Windows Vista x64, Windows Server 2003, Windows Server 2003 x64, Windows XP, Windows XP x64, Windows 2000.

Скачать DPC Latency Checker можно на странице с документацией и описанием на английском языке сайта производителя

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



DPC Latency Checker.


На приведенном снимке экрана присутствует периодическая задержка в обработке отложенных процедур, выделенная на графике красным цветом. В информационном окне программы выведено сообщение о том, что некоторые драйверы устройств данного компьютера могут быть причиной задержек в воспроизведении аудио и видео данных. И пользователю предлагается простой алгоритм локализации проблемы - использовать диспетчер устройств (Device Manager) для последовательного отключения и подключения отдельных драйверов.





Использование Process Explorer для поиска вредоносных программ.

Process Explorer позволяет довольно просто обнаружить симптомы наличия вредоносных программ по некоторым, нехарактерным для стандартного программного обеспечения, признакам.
- процесс выделен фиолетовым цветом, т.е. имеет упакованный загрузочный модуль. Обычно, упаковка образов используется для затруднения исследования приложения с помощью дизассемблеров. Это не бесспорный признак вредоносного программного обеспечения, но факт, который должен вызвать более пристальное внимание к процессу.
Для дальнейшего анализа процесса можно воспользоваться кнопкой панели инструментов Properties или вызовом свойств процесса с использованием контекстного меню.


Process Explorer - свойства процесса.


Дополнительные признаки, которые могут принадлежать вредоносной программе:

- отсутствует имя производителя.
- отсутствует цифровая подпись. Большинство производителей программного обеспечения имеют сертификаты с цифровой подписью для своих программ. Для проверки подписи можно нажать кнопку Verify. Необходим доступ в Интернет.
- отсутствуют поля описания загрузочного образа Version и Time - в качестве пути исполняемого файла используется папка для хранения временных файлов (TEMP)
- имя исполняемого файла соответствует имени реально существующего файла Windows, но путь отличается от \WINDOWS или \WINDOWS\SYSTEM32 Обычно характерно для вирусов, использующих для исполняемого файла имена наиболее часто встречающихся программных модулей - svchost.exe, smss.exe, csrss.exe, winlogon.exe и т.п.
- путь исполняемого файла совпадает \WINDOWS или \WINDOWS\SYSTEM32 , но имя немного отличается от распространенных имен системных файлов - swchoct.exe вместо svchost.exe и т.п.
- исполняемый файл находится в \WINDOWS или \WINDOWS\SYSTEM32, но дата его создания значительно отличается от даты создания остальных системных файлов и приблизительно соответствует предполагаемой дате заражения.
- в некоторых случаях дополнительную информацию можно извлечь с использованием вкладки String, позволяющей просмотреть значение строковых констант, используемых данным процессом.

    Примеры использования утилиты Process Explorer для исследования различных проблем с функционированием системы можно найти в блоге Марка Руссиновича


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











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