- Что такое хост-процесс для служб Windows svchost.exe и почему он грузит процессор
- Svchost.exe — что это за процесс (программа)
- Что делать, если svchost.exe грузит процессор на 100%
- Как узнать, svchost.exe — это вирус или нет
- Процесс svchost.exe и системные службы, связанные с ним.
- Что такое процесс svchost.exe?
- Как определить системную службу, связанную с конкретным процессом svchost.exe.
Что такое хост-процесс для служб Windows svchost.exe и почему он грузит процессор
У многих пользователей возникают вопросы, связанные с процессом «Хост-процесс для служб Windows» svchost.exe в диспетчере задач Windows 10, 8 и Windows 7. Некоторых смущает, что процессов с таким именем большое число, другие сталкиваются с проблемой, выраженной в том, что svchost.exe грузит процессор на 100% (особенно актуально для Windows 7), вызывая тем самым невозможность нормальной работы с компьютером или ноутбуком.
В этой подробно о том, что это за процесс, для чего он нужен и как решать возможные проблемы с ним, в частности выяснить — какая именно служба, запущенная через svchost.exe грузит процессор, и не является ли данный файл вирусом.
Svchost.exe — что это за процесс (программа)
Svchost.exe в Windows 10, 8 и Windows 7 является основным процессом для загрузки служб операционной системы Windows, хранящихся в динамических библиотеках DLL. То есть службы Windows, которые вы можете увидеть в списке служб (Win+R, ввести services.msc) загружаются «через» svchost.exe и для многих из них запускается отдельный процесс, которые вы и наблюдаете в диспетчере задач.
Службы Windows, а особенно те, за запуск которых отвечает svchost, являются необходимыми компонентами для полноценной работы операционной системы и загружаются при ее запуске (не все, но большинство из них). В частности, таким образом запускаются такие нужные вещи, как:
- Диспетчеры различных видов сетевых подключений, благодаря которым Вы имеете доступ в Интернет, в том числе и по Wi-Fi
- Службы для работы с устройствами Plug and Play и HID, позволяющие Вам пользоваться мышками, веб-камерами, USB-клавиатурой
- Службы центра обновления, защитник Windows 10 и 8 другие.
Соответственно, ответ на то, почему пунктов «Хост-процесс для служб Windows svchost.exe» много в диспетчере задач заключается в том, что системе необходимо запускать много служб, работа которых выглядит как отдельный процесс svchost.exe.
При этом, если каких-либо проблем данный процесс не вызывает, вам, вероятнее всего, не стоит каким-либо образом что-то настраивать, переживать о том, что это вирус или тем более пробовать удалить svchost.exe (при условии, что нахождение файла в C:\Windows\System32 или C:\Windows\SysWOW64, иначе, в теории, может оказаться, что это вирус, о чем будет упомянуто далее).
Что делать, если svchost.exe грузит процессор на 100%
Одна из самых распространенных проблем, связанных с svchost.exe — то, что этот процесс грузит систему на 100%. Наиболее частые причины такого поведения:
- Выполняется какая-либо стандартная процедура (если такая нагрузка не всегда) — индексация содержимого дисков (особенно сразу после установки ОС), выполнение обновления или его загрузки и подобные. В этом случае (если это проходит «само») делать обычно ничего не требуется.
- Какая-то из служб по какой-то причине работает неправильно (тут попробуем выяснить, что это за служба, см. далее). Причины неправильной работы могут быть разными — повреждения системных файлов (может помочь проверка целостности системных файлов), проблемы с драйверами (например, сетевыми) и другие.
- Проблемы с жестким диском компьютера (стоит выполнить проверку жесткого диска на ошибки).
- Реже — результат работы вредоносного ПО. Причем не обязательно сам файл svchost.exe является вирусом, могут быть варианты, когда посторонняя вредоносная программа обращается к Хост-процессу служб Windows таким образом, что вызывает нагрузку на процессор. Тут рекомендуется проверить компьютер на вирусы и использовать отдельные средства удаления вредоносных программ. Также, если проблема исчезает при чистой загрузке Windows (запуск с минимальным набором системных служб), то стоит обратить внимание на то, какие программы есть у вас в автозагрузке, возможно, влияние оказывают они.
Наиболее распространенный из указанных вариантов — неправильная работа какой-либо службы Windows 10, 8 и Windows 7. Для того, чтобы выяснить, какая именно служба вызывает такую нагрузку на процессор, удобно использовать программу Microsoft Sysinternals Process Explorer, скачать которую можно бесплатно с официального сайта https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx (представляет собой архив, который нужно распаковать и запустить из него исполняемый файл).
После запуска программы вы увидите список запущенных процессов, в том числе проблемный svchost.exe, нагружающий процессор. Если навести на процесс указатель мыши, во всплывающей подсказке появится информация о том, какие конкретно службы запущенны данным экземпляром svchost.exe.
Если это одна служба — можно попробовать отключить её (см. Какие службы можно отключить в Windows 10 и как это сделать). Если несколько — можно экспериментировать с отключением, а можно по типу служб (например, если всё это — сетевые службы) предположить возможную причину проблемы (в указанном случае это могут быть неправильно работающие сетевые драйвера, конфликты антивирусов, или же вирус, использующий ваше сетевое подключение, задействуя при этом системные службы).
Как узнать, svchost.exe — это вирус или нет
Существует некоторое количество вирусов, которые либо маскируются, либо загружаются с помощью настоящего svchost.exe. Хотя, в настоящее время они встречаются не очень часто.
Симптомы заражения могут быть различными:
- Основной и почти гарантированно говорящий о вредоносности svchost.exe — расположение этого файла вне папок system32 и SysWOW64 (чтобы узнать расположение, вы можете кликнуть правой кнопкой мыши по процессу в диспетчере задач и выбрать пункт «Открыть расположение файла». В Process Explorer посмотреть расположение можно схожим образом — правый клик и пункт меню Properties). Важно: в Windows файл svchost.exe можно обнаружить также в папках Prefetch, WinSxS, ServicePackFiles — это не вредоносный файл, но, одновременно, среди запущенных процессов файла из этих расположений быть не должно.
- Среди прочих признаков отмечают, что процесс svchost.exe никогда не запускается от имени пользователя (только от имени «Система», «LOCAL SERVICE» и «Network Service»). В Windows 10 это точно не так (Shell Experience Host, sihost.exe, запускается именно от пользователя и через svchost.exe).
- Интернет работает только после включения компьютера, потом перестает работать и страницы не открываются (причем иногда можно наблюдать активный обмен трафиком).
- Другие обычные для вирусов проявления (реклама на всех сайтах, открывается не то, что нужно, изменяются системные настройки, компьютер тормозит и т.д.)
В случае, если у Вас возникли подозрения на то, что на компьютере какой-либо вирус, имеющий к svchost.exe, рекомендую:
- С помощью ранее упоминавшейся программы Process Explorer кликнуть правой кнопкой мыши по проблемному экземпляру svchost.exe и выбрать пункт меню «Check VirusTotal» для проверки этого файла на вирусы.
- В Process Explorer посмотреть, какой процесс запускает проблемный svchost.exe (т.е. в отображаемом в программе «дереве» находится «выше» в иерархии). Проверить его на вирусы тем же способом, что был описан в предыдущем пункте, если он вызывает подозрения.
- Воспользоваться антивирусной программой для полной проверки компьютера (так как вирус может быть не в самом файле svchost, а просто использовать его).
- Посмотреть описания вирусов здесь https://threats.kaspersky.com/ru/ . Просто введите в поисковую строку «svchost.exe» и получите список вирусов, использующих этот файл в своей работе, а также описание, как именно они работают и каким образом скрываются. Хотя, наверное, это излишне.
- Если по имени файлов и задач вы способны определить их подозрительность, можно посмотреть, что именно запускается с помощью svchost с помощью командной строки, введя команду Tasklist /SVC
Процесс svchost.exe и системные службы, связанные с ним.
Что такое процесс svchost.exe?
Практически, каждый пользователь Windows, неоднократно наблюдал в списке отображаемых диспетчером задач, несколько процессов с именем svchost.exe . Для разных версий Windows и в зависимости от установленных компонентов системы, количество таких процессов может составлять от нескольких штук до нескольких десятков. При чем, это вполне нормальное явление, поскольку svchost.exe – это главный процесс ( Host process) для системных служб (сервисов), загружаемых из динамических библиотек (файлов .dll ). Для запуска таких служб используется один и тот же исполняемый файл svchost.exe , размещенный в системном каталоге \Windows\system32\ , но ему передаются разные параметры командной строки, для каждой конкретной службы – свои. Например, для запуска службы Удаленный вызов процедур (RPC) используется командная строка:
C:\Windows\system32\svchost.exe -k RPCSS
Такой способ запуска системных служб вполне оправдан, поскольку позволяет существенно уменьшить затраты оперативной памяти и ресурсов процессора. Все копии svchost.exe запускаются системным процессом services.exe (родительским процессом) в ходе начальной загрузки, инициализации системы и при необходимости, в ходе выполнения запросов пользовательских или системных задач. Таким образом, каждый процесс svchost.exe — это одна из системных служб Windows, например, ”Клиент групповой политики” или ”Система событий COM+”
Параметры вызова исполняемого файла svchost.exe для конкретных системных служб определяются значениями в ключе реестра
Параметр ImagePath задает командную строку для данной службы или группы служб. Имя библиотеки, которая используется для данной службы, определяется параметром ServiceDll подраздела Parameters
Перечень всех служб, запускаемых с использованием svchost.exe и их объединение в группы определяется содержимым ключа реестра
Так, например, в группу DcomLaunch входят 3 службы:
DcomLaunch — Модуль запуска процессов DCOM-сервера
Каждый ключ соответствует имени группы, а значение ключа — списку (через пробел) имён сервисов, относящихся к группе.
Некоторые компьютерные вирусы нередко маскируются под процессы с именем svchost.exe , поскольку так проще замаскировать их присутствие в зараженной систем среди прочих легальных процессов с таким же именем. Однако, такие ложные svchost.exe имеют некоторые принципиальные отличия, позволяющие довольно легко обнаружить и обезвредить вредоносную программу:
— исполняемый файл имеет путь отличный от \Windows\system32\ . Такой способ используют вирусы Net-Worm.Win32.Welchia.a , Virus.Win32.Hidrag.d , Trojan-Clicker.Win32.Delf.cn . — Процесс svchost выполняется в контексте учетной записи пользователя. Настоящий процесс svchost.exe является системной службой и всегда выполняется в контексте системных учетных записей ”Система” (”Локальная системная учетная запись”, SYSTEM, LOCAL SERVICE) или в контексте сетевых служб (NETWORK, NETWORK SERVICE). Соответственно, легальный исполняемый файл svchost.exe запускается только как системная служба, а не прикладная программа. Вполне очевидно, что запуск легальной службы никогда не обеспечивается способами, применимыми для прикладного программного обеспечения (ПО), например, с использованием записей раздела Run реестра или из папки Автозагрузка .
Следует отметить, что существует возможность создания вредоносной программой собственной службы, использующей для запуска настоящий svchost.exe , но выполняющей вредоносные действия через внедрение собственной библиотеки .dll . Как, например, как это делает вирус Conficker (Kido) . Подобный прием нередко использовался во времена Windows XP/2000, но в современных версиях Windows реализовать данный способ заражения системы становится все сложнее и сложнее. Как правило, признаком такого вирусного заражения является использование файла .dll , расположенного не в каталоге \Widows\System32\ , отсутствие цифровой подписи разработчика, а также адекватного описания поддельной службы.
Как определить системную службу, связанную с конкретным процессом svchost.exe.
Иногда, требуется определить, какая именно служба соответствует конкретному процессу scvhost.exe , например, когда этот процесс потребляет значительные ресурсы центрального процессора:
В данном примере, процесс svchost.exe потребляет 50% ресурсов процессора. Это ненормально, и внешне может проявляться в виде снижения общей производительности, подвисаний (лагов), скачкообразного перемещения указателя мыши и т.п. Поскольку системные процессы имеют более высокий приоритет по сравнению с пользовательскими, они и потребляют ресурсы системы в первую очередь, что снижает реальную производительность программ, выполняемых в контексте учетных записей пользователей.
Для поиска причин чрезмерного потребления ресурсов системы конкретным экземпляром svchost.exe , в первую очередь необходимо определить, действительно ли данный процесс является системным ( не вирусом), и с какой именно службой он связан. Существует несколько способов, применимость которых зависит от возможностей конкретной версии Windows .
Использование утилиты командной строки tasklist.exe
Для получения списка выполняющихся служб в любой версии Windows можно использовать команду:
tasklist /svc > %TEMP%\svclist.txt — то же, что и в предыдущем примере, но с выдачей результатов в текстовый файл. Результат будет представлен в DOS-кодировке, и для просмотра его кириллической составляющей стандартными средствами Windows, потребуется перекодировка, или редактор с поддержкой кодовой страницы CP866 (DOS), как например, Notepad++ или встроенный редактор Far Manager.
notepad++ %TEMP%\svclist.txt — открыть созданный файл со списком сервисов.
Пример отображаемой информации:
Отображается имя образа (исполняемого файла), уникальный идентификатор процесса PID и краткое название службы. Так, например, процесс svchost.exe с идентификатором 984 имеет отношение к службам с короткими именами DcomLaunch, PlugPlay, Power . Для получения подробной информации о службе, в том числе и ее выводимое имя можно использовать команду управления службами SC :
sc qc power — отобразить конфигурацию о службе Power
Пример отображаемой информации:
В графическом интерфейсе пользователя, сведения о службе можно получить с использованием оснастки “Службы” консоли управления Microsoft (комбинация клавиш Win+R и выполнить services.msc ), или через меню Панель управления – Администрирование – Службы
Использование Диспетчера задач Windows ( taskmgr.exe )
Стандартные диспетчеры задач отличаются по своим возможностям в зависимости от версии Windows. Так, например диспетчер задач Windows XP не имеет собственных средств по сопоставлению имени процесса с именем системной службы, а диспетчер задач Windows 10 позволяет это сделать с использованием контекстного меню, вызываемого правой кнопкой мышки:
При выборе пункта Перейти к службам откроется окно со списком служб, в котором будут подсвечены службы, связанные с выбранным процессом svchost.exe
При необходимости, можно нажать на ссылку Открыть службы в нижней части экрана, и, непосредственно из диспетчера задач, открыть список системных служб (оснастку консоли управления Windows services.msc ). Диспетчеры задач Windows Vista – Windows 8.1 менее информативны и обладают меньшей функциональностью, но также позволяют выполнять переход от выбранного процесса к связанным с ним службам.
Использование Process Explorer ( procexp.exe ) из пакета Sysinternals Suite
Утилита Process Explorer не входит в состав стандартных дистрибутивов Windows и может быть загружена с сайта Microsoft либо в составе пакета Sysinternals Suite, либо как отдельный программный продукт — Страница загрузки Process Explorer
Программа не требует установки, достаточно разархивировать загруженный пакет и запустить исполняемый файл procexp.exe . Возможности Process Explorer настолько обширны, что даже для их перечисления потребуется отдельная немаленькая статья. А для получения сведений о процессе достаточно просто подсветить его указателем мышки:
Более подробную информацию можно получить, открыв свойства процесса двойным щелчком, или через контекстное меню, вызываемое правой кнопкой мышки — Properties . На вкладке Services отображается полный перечень всех служб, связанных с выбранным процессом.
Для каждой службы выводится короткое и отображаемое имя, путь и имя используемой библиотеки dll , а также, при выборе конкретной службы, — ее краткое описание в нижней части окна.
Process — в данной колонке отображается дерево активных процессов и их потомков. Потомок (child) — процесс, созданный другим, родительским (parent) процессом. Любой процесс может быть и потомком, если он создан в ходе выполнения другого процесса, и родителем, если в ходе его выполнения создан другой процесс. Отображение элементов дерева процессов выполняется в соответствии с порядком их запуска в ходе загрузки операционной системы и ее дальнейшего функционирования.
Корнем дерева процессов является уровень System Idle Process . Фактически, это не реальный процесс, а индикатор состояния простоя системы, когда центральный процессор не выполняет каких-либо программ. Следующим элементом дерева представлен уровень 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 — рабочий набор процесса, представляющий собой суммарный объем всех страниц используемой им памяти, в данный момент времени. Размер этого набора может изменяться, в зависимости от запросов процесса. Практически все процессы используют разделяемую память.
Description — описание процесса
Company Name — имя компании-разработчика.
Path — путь и имя исполняемого файла.
Verified Signer — признак достоверности цифровой подписи исполняемого файла. Наличие строки «Not verified» говорит о том, что цифровая подпись отсутствует или ее не удалось проверить. Для проверки цифровой подписи нужен доступ в Интернет. Наличие цифровой подписи легального производителя ПО, гарантирует достоверность подписанного ей файла.
Иерархический характер дерева процессов способствует визуальному восприятию родительски-дочерних отношений каждого активного процесса. Нижняя панель дает информацию обо всех DLL, загруженных выделенным в верхней панели процессом, открытых им файлах, папках, разделах и ключах реестра.
При выборе уровня System дерева процессов в нижней панели можно получить информацию обо всех загруженных драйверах системы, их описание, версию, путь исполняемого файла, адрес в оперативной памяти, размер, Кроме того, можно проверить цифровую подпись, а также просмотреть строковые значения в самом исполняемом файле или в оперативной памяти.
При просмотре свойств любого процесса, можно получить очень подробную информацию о ресурсах системы, используемых данным процессом, включая память, процессор, систему ввода-вывода, графическую подсистему и сетевые соединения.
Использование Process Explorer позволяет легко определить дополнительные признаки, которые могут принадлежать вредоносной программе, замаскированной под легальный процесс:
— в пути исполняемого файла присутствует папка для хранения временных файлов (TEMP), или в случае с svchost.exe , путь исполняемого файла отличается от \Windows\System32, например — ”C:\Users\User1\Application Data\Microsoft\svchost.exe”. Такой svchost.exe однозначно является вредоносной программой.
— отсутствует информация о производителе программного обеспечения. В редких случаях это не является настораживающим признаком, но подавляющее большинство разработчиков современного ПО такую информацию предоставляют.
— отсутствует цифровая подпись. Большинство производителей программного обеспечения имеют сертификаты с цифровой подписью для своих программ. Для проверки подписи можно нажать кнопку Verify . Необходим доступ в Интернет. Наличие цифровой подписи у исполняемого файла говорит о том, что он не является поддельной программой.
— отсутствуют поля описания загрузочного образа Version и Time . Хотя эти поля и не обязательно являются признаком легального ПО, их отсутствие можно считать дополнительным настораживающим признаком угрозы.
— имя исполняемого файла соответствует имени реально существующего системного файла Windows, но путь отличается от стандартных \WINDOWS , \WINDOWS\SYSTEM32 или \WINDOWS\SysWOW64 (для 64-разрядных систем). Это характерно для вирусов, маскирующихся под наиболее часто встречающиеся программные модули — svchost.exe, smss.exe, csrss.exe, winlogon.exe и т.п. Легальное имя исполняемого файла и нестандартный путь его запуска являются явным признаком вредоносной программы.
— путь исполняемого файла совпадает c \WINDOWS или \WINDOWS\SYSTEM32 , но имя немного отличается от распространенных имен системных файлов — swchoct.exe вместо svchost.exe и т.п. Для современных ОС семейства Windows такой прием вирусного заражения встречается довольно редко, поскольку настройки безопасности современных систем затрудняют реализацию записи данных в системные каталоги.
— исполняемый файл находится в \WINDOWS или \WINDOWS\SYSTEM32, но дата его создания значительно отличается от даты создания остальных системных файлов и приблизительно соответствует предполагаемой дате заражения. Тоже довольно редко встречающийся прием вирусного заражения по той же причине, которая приведена в предыдущем пункте.
Кроме отображения информации о процессах, утилита Process Explorer позволяет убить выбранный процесс или дерево процессов. В ОС Windows XP и более ранних, уничтожение некоторых системных процессов, как например winlogon.exe , может приводить к синему экрану смерти (BSoD), а в более поздних версия Windows – к аварийному завершению сеанса пользователя.
Одним из приемов диагностики вирусного заражения или причин непомерного потребления системных ресурсов является поочередное принудительное их завершение и анализ состояния системы после него. Вместо принудительного завершения можно использовать последовательное изменение приоритетов процессов на минимальное значение. Если после завершения процесса или снижения его приоритета состояние системы стало нормальным (нет ”подвисаний”, лишнего трафика, роста температуры процессора или видеокарты и т.п.), это явно указывает на необходимость пристального внимания к параметрам процесса, его легальности или принадлежности к вредоносному ПО.
Утилита Process Explorer бесплатна, удобна в использовании, может применяться в переносимом варианте и много лет является одним из наиболее популярных инструментов системных администраторов Windows.
Дополнение к статье:
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»