Смотрим процессы Windows — Process Explorer и Starter. Process Explorer. Обзор некоторых возможностей

Explorer.exe, если вы еще не знаете, то это очень важный процесс. Я конечно не могу его назвать критическим важным, так как без него система вполне нормально работает, просто вы ничего при этом не видите Но раньше, еще когда была популярна Windows XP, то при отключении explorer.exe оставалась заставка, а теперь в Windows 10 — черный экран, может в других версиях также. Это говорит о кардинальных изменениях в работе оболочки Windows, а именно за нее и отвечает данный процесс.

В любом случае, чтобы не случилось, вы должны знать как запустить процесс explorer.exe. В Windows 10 правда уже реализована возможность его перезапуска прямо из диспетчера, при этом не нужно его как раньше отключать, а потом запускать.

Что-то совсем не написал, что такое explorer.exe простыми словами. Это оболочка Windows, и она отвечает за отображение всего — и папок и файлов в них, другими словами проводник, без которого вы просто не сможете работать за компьютером.

Если у вас глючит меню Пуск или же долго открывается, то вам может помочь перезапуск проводника, то есть процесса explorer.exe. Откройте диспетчер задач, можно правой кнопкой мышки нажать по пустому месту на панели задач (внизу) и там в меню выбрать диспетчер.

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


После этого оболочка завершит свою работу и сразу запустится, то есть это то, что раньше (в старых версиях ОС) нужно было делать вручную.

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


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

Вот что вы будете видеть, если отключите explorer.exe (внизу это свернутые программы):


И последнее — как запустить процесс explorer.exe? Раньше, чтобы это сделать, нужно было открывать папку Windows и оттуда запускать этот процесс, в принципе и сейчас так можно, но теперь все намного проще — в диспетчере откройте меню Файл и там выберите Запустить новую задачу:


В поле напишите explorer и нажмите ОК или энтер (галочку ставить не нужно):


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

Потоки процесса, их активность, стек потока с загрузкой символов

В свойствах процесса в закладке threads видны все его потоки и загрузка CPU по потокам. Допустим хочется рассмотреть стек потока, который интенсивно что-то делает или висит. Для этого сперва надо его распознать, допустим по загрузке CPU, потом полезно приостановить процесс, чтобы спокойно рассмотреть его состояние - это можно сделать прямо в этом окне по кнопке “suspend”. Далее выделяем поток и нажимаем “stack”. В большинстве случаев стек будет начинаться в недрах системы и обрываться не совсем понятным образом. Дело в том, что не имея отладочной информации по системным библиотекам не удастся корректно развернуть стек и разобраться в нем. Есть решение – нужно сконфигурировать доступ с символьной информации с сайта Microsoft. Надо проделать несколько шагов:
  1. Установить Debugging Tools . Из приведенной ссылки надо пойти по ссылке “Debugging Tools for Windows 32-bit Versions” или “Debugging Tools for Windows 64-bit Versions”. Далее выбрать для скачивания последнюю версию не интегрированную в SDK, иначе это выльется в скачивание огромного объема SDK, а так всего несколько Mb.
  2. Настроить доступ к символам в Process Explorer. Options –> Configure Symbols. В одном поле задаем путь к dbghelp.dll, которая находится внутри установленного продукта из шага 1. Во втором настраиваем такую хитрую строку: “srv*C:\Symbols*http://msdl.microsoft.com/download/symbols”. Часть строки указывает на локальный кэш для PDB файлов, вторая часть на путь к серверу для скачивания.
  3. Теперь список потоков и стек будут более информативны. При открытии этих окон может происходить задержка на время подкачки PDB файлов с сервера Microsoft, но делается это один раз для каждой версии модуля, результат кэшируется в выбранной папке.

Информация по использованию памяти в системе

В окне «system information» закладка «memory». Здесь есть два графика – commit и physical. Physical – использование физической памяти без учета файлового кэша, под который уходит все что остается. Commit – сколько памяти выделено для процессов включая используемую виртуальную память. Под графиками в разделе «Commit Charge» есть поля Limit и Peak. Limit определяется суммой физической и виртуальной памяти, т.е. это максимальный суммарный объем памяти, который может выделить система. Peak – это максимум графика Commit за время работы утилиты. Процентные соотношения Current/Limit и Peak/Limit удобны для быстрой оценки насколько состояние системы приближалось к критическому лимиту по доступной памяти.

Handles и DLL процесса

В главном окне можно включить разделитель и снизу отображать DLL или handles выделенного процесса. При борьбе с вирусами и отладке программ это бывает очень полезно. На картинке - список handles для opera, первый handle файловой системы – это flash ролик в временном каталоге.

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

Поиск handles и DLL

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

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

PS Для отображения некоторых полей (например сетевая статистика) требуются административные привилегии. Повысить привилегии в уже запущенном Process Explorer можно с помощью команды в меню File. Только при наличии таких привилегий есть возможность добавить такие колонки. Я считаю такое поведение неверным, т.к. скрывает потенциальные возможности приложения от пользователя. Если поля добавлены и при следующем запуске нет административных прав, то они будут пустыми. Можно задать ключ "/e" в командной строке, чтобы форсировать поднятие привилегий при старте Process Explorer.

Потоки процесса, их активность, стек потока с загрузкой символов

В свойствах процесса в закладке threads видны все его потоки и загрузка CPU по потокам. Допустим хочется рассмотреть стек потока, который интенсивно что-то делает или висит. Для этого сперва надо его распознать, допустим по загрузке CPU, потом полезно приостановить процесс, чтобы спокойно рассмотреть его состояние - это можно сделать прямо в этом окне по кнопке “suspend”. Далее выделяем поток и нажимаем “stack”. В большинстве случаев стек будет начинаться в недрах системы и обрываться не совсем понятным образом. Дело в том, что не имея отладочной информации по системным библиотекам не удастся корректно развернуть стек и разобраться в нем. Есть решение – нужно сконфигурировать доступ с символьной информации с сайта Microsoft. Надо проделать несколько шагов:
  1. Установить Debugging Tools . Из приведенной ссылки надо пойти по ссылке “Debugging Tools for Windows 32-bit Versions” или “Debugging Tools for Windows 64-bit Versions”. Далее выбрать для скачивания последнюю версию не интегрированную в SDK, иначе это выльется в скачивание огромного объема SDK, а так всего несколько Mb.
  2. Настроить доступ к символам в Process Explorer. Options –> Configure Symbols. В одном поле задаем путь к dbghelp.dll, которая находится внутри установленного продукта из шага 1. Во втором настраиваем такую хитрую строку: “srv*C:\Symbols*http://msdl.microsoft.com/download/symbols”. Часть строки указывает на локальный кэш для PDB файлов, вторая часть на путь к серверу для скачивания.
  3. Теперь список потоков и стек будут более информативны. При открытии этих окон может происходить задержка на время подкачки PDB файлов с сервера Microsoft, но делается это один раз для каждой версии модуля, результат кэшируется в выбранной папке.

Информация по использованию памяти в системе

В окне «system information» закладка «memory». Здесь есть два графика – commit и physical. Physical – использование физической памяти без учета файлового кэша, под который уходит все что остается. Commit – сколько памяти выделено для процессов включая используемую виртуальную память. Под графиками в разделе «Commit Charge» есть поля Limit и Peak. Limit определяется суммой физической и виртуальной памяти, т.е. это максимальный суммарный объем памяти, который может выделить система. Peak – это максимум графика Commit за время работы утилиты. Процентные соотношения Current/Limit и Peak/Limit удобны для быстрой оценки насколько состояние системы приближалось к критическому лимиту по доступной памяти.

Handles и DLL процесса

В главном окне можно включить разделитель и снизу отображать DLL или handles выделенного процесса. При борьбе с вирусами и отладке программ это бывает очень полезно. На картинке - список handles для opera, первый handle файловой системы – это flash ролик в временном каталоге.

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

Поиск handles и DLL

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

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

PS Для отображения некоторых полей (например сетевая статистика) требуются административные привилегии. Повысить привилегии в уже запущенном Process Explorer можно с помощью команды в меню File. Только при наличии таких привилегий есть возможность добавить такие колонки. Я считаю такое поведение неверным, т.к. скрывает потенциальные возможности приложения от пользователя. Если поля добавлены и при следующем запуске нет административных прав, то они будут пустыми. Можно задать ключ "/e" в командной строке, чтобы форсировать поднятие привилегий при старте Process Explorer.

Изначально Internet Explorer считался не самым лучшим браузером, отчего пользователи предпочитали аналогичные продукты. Однако, в последнее время интернет-обозреватель претерпел множество изменений, последние версии разработчики постарались сделать максимально функциональными и продуктивными. Основное преимущество Internet Explorer в том, что по умолчанию он уже есть в любом компьютере с ОС от Майкрософт. Именно поэтому после первые шаги в интернет-пространстве вы начнете именно с него.

Первое знакомство с Internet Explorer

Тем, кого интересует, как поставить internet explorer, нужно сказать, что для этого от них практически ничего не требуется. Как уже было сказано, этот браузер является компонентом системы. Запустить приложение можно кликнув на его иконку или найдя его через Меню-Все программы. Но иногда при самостоятельной установке этого браузера могут возникать ошибки и браузер не установится, но об этом вы сможете прочитать .

Управлять работой обозревателя можно через меню, специальные кнопки или команды. Открыв окно приложения можно убедиться, что инструменты расположены в ней довольно удобно. Интерфейс Internet Explorer сходен с другими программами, написанными для Windows. В верхней части располагается заголовок окна, затем можно увидеть Меню и Панель инструментов. После адресной панели располагается непосредственно окно просмотра, а в его нижней части имеется строка состояния.

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

Для того чтобы перейти на определенный сайт, его адрес вводим в адресную строку и нажимаем Поиск. Рядом располагается небольшой треугольник, нажав на который вы сможете увидеть список тех веб-страниц, на которых вы уже бывали с этого браузера. Обновить сайт можно нажатием соответствующей кнопки. В правом верхнем углу окна располагается кнопка Домой. Кликнув на нее, вы попадете на домашнюю страницу, независимо от того, на каком сайте находились. Кроме того, здесь есть кнопки Сервис, с помощью которых браузер можно настраивать по собственному усмотрению, и Просмотр избранного и журнала. А как полностью правильно настроить браузер вы можете узнать из этой .

Internet Explorer как интернет-обозреватель по умолчанию

Теперь давайте рассмотрим, как назначить Internet Explorer приложением, в котором по умолчанию будут открываться сайты. В таком случае ссылки и веб-страницы будут изначально предложены для просмотра в этом браузере. Для того, чтобы сделать соответствующие настройки, заходим в Пуск и выбираем поиск. В строку вводим Программы по умолчанию. Далее в результатах нажимаем Задание программы.

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

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

Что тут можно сказать? Конечно, Process Explorer - это хорошая программа. Однако, не идеал. Именно в пику её неидеальности существует не только бесплатная, но и свободная альтернатива - . А теперь мы детально и по пунктам рассмотрим, почему Process Hacker не просто «чуть-чуть лучше», а лучше на порядок, лучше на столько, что переводит программу для продвинутого пользователя в класс инструмента системного программиста или администратора.

Термины

Ради сокращения количеств букв я буду называть Process Explorer (от Марка Руссиновича) - PE , а Process Hacker (от комьюнити) - PH .

Opensource

Я не яростный фанат свободного ПО: если проприетарная программа делает, что мне нужно, а свободная - нет, то первая лучше. Однако при прочих равных (а в данном случае PH точно не хуже) свободное ПО даёт больше пространства для манёвра. PH живёт на Sourceforge со всеми вытекающими преимуществами, весьма живым и частыми релизами.

Установка

Обе программы удобнее всего использовать в виде portable-версий.
PE требует прочитать и согласиться с лицензией.
PH просто запускается и работает.

Обновление

PE не умеет проверять наличие обновлений
PH умеет проверять наличие обновлений

Иконки в трее

Есть у обеих программ. По-дефолту PE показывает там только загрузку CPU в User Mode. По-дефолту PH показывает загрузку CPU и в UserMode и в Kernel Mode.
О стиле цветовой схемы можно спорить, но лично мне красный цвет на чёрном фоне (у PH ) более заметен, чем светло-зелёный на белом (у PE ).

У PE можно включить до 7 иконок в трее с разной полезной информацией
У PH можно включить до 8 иконок в трее с разной полезной информацией

Уведомление о процессах\сервисах\драйверах

Абсолютно незаменимая вещь в PH - уведомления о старте\остановке\установке сервисов и драйверов. При разработке такого ПО цикл «установить, запустить, проверить, остановить, удалить» приходится делать по 20 раз на день - и с PH сразу видишь, удачно идёт дело или нет, нет нужды лезть в «Службы» или «Диспетчер устройств», нажимать там «Обновить», ждать изменений.

Контекстное меню иконок в трее

Обе программы позволяют через контекстное меню иконки в трее открывать главное окно, перезагружать\выключать компьютер, открывать окно системной информации. Но PH ещё позволяет управлять вышеупомянутыми нотификациями и десятком процессов (из топа загрузки CPU).

System Information

Окна System Information в обеих программах очень похожи и по функционалу и по дизайну. PE разбивает информацию по вкладкам, PH - открывает вкладки по клику на диаграммах в главном окне. PH показывает чуть-чуть больше информации (название процессора, общий объём физической памяти и т.д.).

Главное окно

Интерфейсы программ выглядят достаточно схоже: дерево процессов и там и там.

Отметим, однако, нюансы.

Раскраска
  1. Раскраска есть в обоих программах, но если в PE она по столбикам, то в PH - по строкам. В итоге в PH удобно взглядом проследить по горизонтали все данные одного процесса, а в PE - по вертикали использование какого-нибудь ресурса разными процессами. (upd: в комментариях подсказывают, что в PE это настраивается)
  2. Настройка раскраски есть и там и там, но если PE настраиваются цвета для 8 типов процессов, то в PH - для 16 (плюс некоторые опции типа длительности подсветки процесса).

Выбор столбиков с информацией о процессе
Примерно равное количество параметров у обеих программ. У PE они распределены по группам, у PH - по алфавиту. В итоге если вы знаете точное название параметра - его быстрее найти в PH , если только какой области он касается (память, диск, сеть) - быстрее в PE . Кроме того надо признать, что PE больше знает о внутренних параметрах.NET-процессов (PH тоже идёт в этом направлении, есть специальный плагин для счётчиков.NET)
Фильтр по имени процесса
Нет в PE
Есть в PH , для поиска определённых типов процессов

Диаграммы производительности на тулбаре
Есть в PE
Нет в PH
Это тот редкий случай, когда что-то есть в PE и нет в PH . Давайте, однако, посмотрим как они выглядят:

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

«Run as...»

В PH есть очень нужный пункт меню «Run as...». С тех пор как в контекстном меню проводника Windows этот пункт исчез, уступив место «Run as administrator» его очень не хватало.
В PE этого пункта нет.

Окно «Find Handles or DLLs»

Обратите внимание, в PE здесь есть кнопки «Search» и «Cancel». В PH - только Find. Это потому, что PE может искать ну о-о-о-очень долго и иногда поиск правда надо отменять. PH ищет просто мгновенно. Ему кнопка «Cancel» не нужна.

Поиск окна

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

Справедливости ради надо признать что иконка у PE лучше (похожа на соответствующую иконку в Spy++)

Возможности контекстного меню процесса

Не будем останавливаться на общих возможностях, взглянем только на то, что есть в PH и нет в PE :

  • Открытие места хранения бинарника по Ctrl+Enter (в PE тоже есть, но на 2 клика дальше - в окне свойств процесса)
  • Отправка экзешника на Virustotal
  • Detach from debugger - полезно, когда к процессу прицеплена Visual Studio, которая «подвисла» и её хочется убить без закрытия процесса
  • Информационные окна по процессу: GDI Handles, Heaps, Unloaded Modules, WS Watch, Windows
  • Terminator - возможность убить процесс 17-ю разными способами. Интересно понаблюдать за корректностью завершения своей программы.
  • Inject DLLs: крайне полезная штука при тестировании инжектинга всяких хуков. Фактически позволяет на этапе тестирования обойтись без собственного инжектора, писать только саму инжектируемую библиотеку. Для проверки теорий и исследования - крайне полезная вещь.

Сервисы и драйвера

PE считает, что его дело только обычные процессы
PH является крайне удобным инструментом работы с сервисами и драйверами.

На специальной вкладке Services главного окна можно просматривать список процессов и драйверов, их статус, можно их останавливать, запускать, удалять, просматривать и менять их свойства.
Крайне полезный инструмент для системного программиста под Windows (особенно совместно с возможностью включить для иконки в трее нотификации об изменении в списке сервисов). А еще в меню Tools можно создать новый сервис.

Сетевая и дисковая активность процессов

PE позволяет просмотреть параметры сетевой и дисковой активности процесса, позволяет посмотреть общую производительность дисковой и сетевой подсистем.
PH кроме вышеуказанного имеет в главном окне две крайне полезные вкладки «Network» и «Disk», показывающие общую сетевую и дисковую активность процессов.
Справедливости ради нужно признать, что в современных версиях Windows нечто подобное (хотя и не так удобное) показывает штатный инструмент Resource Monitor.

Модульная архитектура

PE цельный и неделимый
PH модульный, поддерживает плагины (и значительная часть описанного здесь функционала именно плагинами и реализована).

Окно информации о процессе

Группировка информации по вкладкам в программам слегка отличается, сравнивать «в лоб» трудно.

В целом можно сказать, что объём предоставляемой информации и удобство пользования примерно одинаковы. Однако есть архиважная деталь: PE в этом окне иногда врёт. Причём, как я предполагаю, не из-за багов, а по маркетинговым причинам (а уж это вообще никуда не годится). Детально этот вопрос я разбирал вот , кому интересно - можете ознакомиться.

Окно информации о DLL

Обе программы позволяют просмотреть список DLL в адресном пространстве процесса. PE показывает их в нижней части главного окна (при включении соответствующей панели), PH показывает их во вкладке в окне информации о процессе. При двойном клике на библиотеке и там и там отображается информация о ней.

И вот здесь мы снова видим почему PE является просто прикладной утилитой для продвинутого юзера, а PH - инструментом программиста. Если PE показывает только общую информацию о библиотеке и список строк в ней, то PH показывает полный список импортируемых и экспортируемых функций. Для этого больше не нужны отдельные дизассемблеры!

Минутка здоровой критики

Не будем впадать в идолопоклонничество и посмотрим что в PE лучше:
  • есть нижняя панель, где могут отображаться DLLки или хэндлы, если интересует только эта информация - в PE до неё на один клик меньше
  • можно сохранять и загружать набор колонок с информацией о процессах, полезно при периодической работе над разными типами ПО. PH тоже позволяет это делать, но только через , что не так удобно
  • в окне информации о процессе есть вкладка Strings, позволяющая просмотреть используемые в процессе строки. PH тоже позволяет получить эту информацию, но не столь наглядно (блоки памяти на вкладке Memory)

Выводы

Как вы и сами могли заметить, PH - этот тот случай когда в общем и так неплохую программу взяли и сделали ещё лучше, ещё дружелюбнее и ещё полезнее. Направление развития PH задавалось сообществом, детские баги быстро фиксились, упор делался на полезность инструмента не только обычному пользователю, но и программисту с сисадмином.

Утилита полезная, пользуйтесь на здоровье.