Если компьютер стал медленнее, вентилятор работает на высоких оборотах без нагрузки или антивирус молчит, а сомнения остаются, самый быстрый способ начать проверку — командная строка. Она показывает то же, что и «Диспетчер задач», но с большей детализацией: полный путь к исполняемому файлу, командную строку запуска, родительский процесс и сетевые подключения. В этой статье разобран порядок действий: от общего списка процессов до проверки конкретного подозреваемого по пути, цифровой подписи и активности в сети.
Главный принцип такой проверки: само имя процесса почти ничего не значит. Вредоносные программы часто маскируются под системные имена вроде svchost.exe или explorer.exe, поэтому вывод делается не по названию, а по совокупности признаков — где лежит файл, кто его запустил, есть ли у него подпись издателя и с кем он общается по сети.
- Что понадобится перед началом
- Шаг 1. Получите полную картину списка процессов
- Шаг 2. Проверьте путь к исполняемому файлу
- Особый случай: множественные svchost.exe
- Шаг 3. Определите родительский процесс
- Шаг 4. Проверьте цифровую подпись файла
- Шаг 5. Проверьте сетевую активность процессов
- Шаг 6. Проверьте автозагрузку и запланированные задачи
- Сводная таблица команд
- Признаки, которые с высокой вероятностью указывают на проблему
- Типичные ошибки при самостоятельной проверке
- Что делать, если подозрения подтвердились
- Когда командной строки недостаточно
- Частые вопросы
- Опасен ли процесс, если его файл лежит в AppData?
- Можно ли определить вирус только по имени процесса через поиск в интернете?
- Почему процесс снова появляется после завершения?
- Насколько надёжен WMIC, если система предлагает PowerShell?
- С чего начать прямо сейчас
Что понадобится перед началом
Все описанные команды встроены в Windows, ничего скачивать не нужно. Часть команд требует прав администратора, поэтому консоль лучше сразу открыть с повышенными привилегиями:
- Нажмите сочетание клавиш Win + X и выберите «Терминал (Администратор)» либо «Командная строка (Администратор)». В Windows 10 можно найти cmd.exe через поиск, кликнуть по нему правой кнопкой и выбрать «Запуск от имени администратора».
- Убедитесь, что в заголовке окна указано «Администратор» — иначе часть данных (например, процессы других пользователей) будет скрыта.
- Зафиксируйте время появления проблемы: если процесс появился недавно, это упростит поиск по дате создания файла.
Отдельное предупреждение: команды ниже предназначены для диагностики, а не для удаления. Завершать процессы вручную стоит только после того, как вы убедились, что они действительно посторонние, — ошибка может привести к сбою системы или потере несохранённых данных.
Шаг 1. Получите полную картину списка процессов
Базовая команда, которая выводит все процессы с их идентификаторами (PID) и потреблением памяти:
tasklist /v /fo list
Ключ /v добавляет подробности: имя пользователя, от которого запущен процесс, статус и окно. Ключ /fo list форматирует вывод списком — так данные читаются легче, чем в таблице. Если нужен экспорт для последующего сравнения, добавьте перенаправление: tasklist /v > C:\temp\processes.txt.
Полезный приём — сохранить список дважды с интервалом в несколько минут и сравнить. Процессы, которые появились между снимками без ваших действий, заслуживают внимания. Для сравнения двух текстовых файлов подойдёт любая программа сравнения или простое визуальное сопоставление, если список короткий.
Обратите внимание на три вещи в выводе:
- Имя пользователя. Системные службы обычно работают от SYSTEM, LOCAL SERVICE или NETWORK SERVICE. Обычная программа, которая маскируется под системную, но запущена от вашей учётной записи, — тревожный признак.
- Количество экземпляров. Несколько десятков копий одного процесса могут указывать как на легитимное приложение (браузеры так делают), так и на майнер или червя.
- Потребление ресурсов. Стабильно высокая нагрузка процессора у процесса с незнакомым именем — повод для детальной проверки.
Шаг 2. Проверьте путь к исполняемому файлу
Это самый информативный шаг. Легитимные системные файлы Windows лежат строго в определённых папках, а вредоносные программы нередко прячут свои копии во временных каталогах или профилях пользователя.
В классической командной строке используйте WMIC (в новых версиях Windows 11 этот инструмент постепенно выводится из состава системы, поэтому параллельно приведён вариант на PowerShell):
wmic process get name,processid,executablepath
Команда выведет таблицу: имя процесса, PID и полный путь к файлу. Чтобы найти конкретный процесс по имени:
wmic process where name=»svchost.exe» get processid,executablepath,commandline
Эквивалент на PowerShell, который работает во всех актуальных версиях Windows:
Get-Process | Select-Object Name, Id, Path
А для получения командной строки запуска — более подробный вариант:
Get-CimInstance Win32_Process | Select-Object ProcessId, Name, ExecutablePath, CommandLine
Как интерпретировать пути:
- C:\Windows\System32\svchost.exe — нормальное расположение системных служб.
- C:\Windows\svchost.exe, C:\Users\<имя>\AppData\…\svchost.exe, C:\Temp\svchost.exe — расположение нетипичное. Официальные компоненты Windows практически никогда не запускаются из корня диска, временных папок или профиля пользователя.
- Пустой путь у процесса может означать, что он запущен от имени другого пользователя или системы и текущая консоль не имеет достаточных прав — повторите команду от администратора.
Дополнительный ориентир — поле CommandLine. У настоящего svchost.exe в командной строке всегда присутствует ключ -k (например, -k netsvcs). Если процесс называется svchost.exe, но запущен без этого ключа или вообще без параметров, высока вероятность подделки.
Особый случай: множественные svchost.exe
Многие пользователи пугаются, увидев десяток процессов svchost.exe. Это нормально: каждая группа служб Windows запускается в отдельном экземпляре. Проверить, какие именно службы работают внутри каждого экземпляра, можно командой:
tasklist /svc /fi «imagename eq svchost.exe»
Если рядом с каким-то PID не отображается ни одной службы — это аномалия, и такой экземпляр стоит проверить по пути и подписи файла.
Шаг 3. Определите родительский процесс
Знание того, кто запустил подозрительный процесс, помогает понять источник заражения. Родителя показывает PowerShell:
Get-CimInstance Win32_Process -Filter «Name = ‘подозрительный.exe'» | Select-Object ProcessId, ParentProcessId, CreationDate
Получив ParentProcessId, найдите соответствующий процесс в общем списке. Типичные закономерности:
- Системные службы обычно порождаются процессом services.exe.
- Программы, запущенные пользователем, — explorer.exe.
- Если «системный» процесс запущен из временной папки и его родителем оказался Word, Excel или скрипт wscript.exe, это характерный сценарий заражения через макросы во вложениях электронной почты.
- Дата создания (CreationDate), совпадающая с моментом открытия подозрительного документа или письма, дополнительно подтверждает связь.
Шаг 4. Проверьте цифровую подпись файла
Подпись — один из самых надёжных признаков. Компоненты Windows и программы крупных разработчиков подписаны сертификатом издателя, а подделка обычно либо не подписана вовсе, либо использует украденный или поддельный сертификат.
Самый простой способ без установки инструментов — открыть свойства файла через проводник: правой кнопкой по файлу, вкладка «Цифровые подписи», затем посмотреть сведения о сертификате. Но из командной строки это делается быстрее через PowerShell:
Get-AuthenticodeSignature «C:\путь\к\файлу.exe» | Format-List
Интерпретация результата:
- Status: Valid, и в SignerCertificate указан известный производитель (Microsoft Corporation для системных файлов) — хороший знак.
- Status: NotSigned — для системного имени процесса это серьёзный повод насторожиться.
- Status: HashMismatch — файл был изменён после подписания. Такой файл повреждён или модифицирован, запускать его нельзя.
Для массовой проверки всех процессов сразу удобно объединить команды:
Get-Process | Where-Object {$_.Path} | ForEach-Object { $sig = Get-AuthenticodeSignature $_.Path; [PSCustomObject]@{ Name=$_.Name; Path=$_.Path; Status=$sig.Status } } | Where-Object {$_.Status -ne ‘Valid’} | Format-Table -AutoSize
Эта конструкция выведет только те процессы, чьи файлы не имеют действительной подписи. Среди них будут и легитимные программы мелких разработчиков, но именно здесь чаще всего обнаруживается постороннее ПО.
Шаг 5. Проверьте сетевую активность процессов
Многие угрозы проявляют себя подключениями к внешним серверам. Команда netstat связывает сетевые соединения с PID процессов:
netstat -abno
Расшифровка ключей: -a показывает все соединения и прослушиваемые порты, -b выводит имя исполняемого файла (требует прав администратора), -n отображает адреса числами, -o добавляет PID.
На что смотреть в выводе:
- Состояние ESTABLISHED у процесса, которому сеть не нужна. Текстовый редактор или калькулятор не должны держать постоянное соединение с интернетом.
- LISTENING на необычных портах. Системные службы слушают стандартные порты (например, 135, 445, 3389 при включённом удалённом рабочем столе). Неизвестный процесс, ожидающий соединений на высоком нестандартном порту, — типичный признак бэкдора.
- Внешние IP-адреса. Сам по себе внешний адрес ни о чём не говорит, но принадлежность можно проверить через любой сервис whois: соединения с хостинг-провайдеров в дальних регионах от программы, которая не должна выходить в сеть, требуют объяснения.
Альтернатива на PowerShell: Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess, а затем сопоставить OwningProcess со списком процессов через Get-Process -Id.
Шаг 6. Проверьте автозагрузку и запланированные задачи
Найденный подозрительный процесс почти наверняка прописан на автозапуск — иначе он не пережил бы перезагрузку. Проверьте места автозапуска из той же консоли:
wmic startup get caption,command,location
или на PowerShell:
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User
Также стоит просмотреть запланированные задачи, поскольку вредоносное ПО всё чаще использует планировщик вместо классической автозагрузки:
schtasks /query /fo LIST /v
Вывод получится большим, поэтому его разумно сохранить в файл и искать по знакомому пути подозрительного файла. Особое внимание — задачам, которые запускают исполняемые файлы из временных папок, папки AppData или с внешних носителей, а также задачам, созданным недавно без вашего ведома.
Сводная таблица команд
| Задача | Командная строка (cmd) | PowerShell |
|---|---|---|
| Список процессов с PID | tasklist /v | Get-Process |
| Путь к файлу процесса | wmic process get name,processid,executablepath | Get-Process | Select-Object Name, Id, Path |
| Командная строка запуска | wmic process get name,commandline | Get-CimInstance Win32_Process | Select-Object CommandLine |
| Службы внутри svchost | tasklist /svc | — |
| Родительский процесс | — | Get-CimInstance Win32_Process | Select-Object ParentProcessId |
| Подпись файла | — | Get-AuthenticodeSignature |
| Сетевые соединения | netstat -abno | Get-NetTCPConnection |
| Автозагрузка | wmic startup get caption,command | Get-CimInstance Win32_StartupCommand |
| Запланированные задачи | schtasks /query /v | Get-ScheduledTask |
Признаки, которые с высокой вероятностью указывают на проблему
Ни один признак по отдельности не является доказательством заражения, но сочетание двух и более — веский повод действовать:
- Исполняемый файл с именем системного процесса лежит вне C:\Windows\System32.
- Файл не имеет цифровой подписи или подпись недействительна (HashMismatch).
- Процесс держит постоянные сетевые соединения, хотя ему это не нужно функционально.
- Процесс появился одновременно с открытием вложения, установкой программы из непроверенного источника или визитом на сомнительный сайт.
- Процесс автоматически возобновляется после завершения — значит, где-то есть механизм перезапуска (служба, задача планировщика, другой процесс-сторож).
- Антивирус отключён сам по себе, его службы не запускаются или база определений давно не обновляется.
Типичные ошибки при самостоятельной проверке
- Вывод по одному имени файла. Имя легко подделать. Всегда проверяйте путь и подпись, прежде чем делать выводы.
- Завершение процесса до выяснения. Если это легитимная системная служба, система может уйти в перезагрузку или сбой. Кроме того, механизм перезапуска просто поднимет процесс заново, и вы потеряете возможность исследовать его дальше.
- Удаление файлов вручную. Частичное удаление компонентов оставляет в системе задачи автозапуска и службы, которые продолжат попытки восстановления. Полноценное лечение выполняется антивирусом с актуальными базами или специалистом.
- Игнорирование контекста. Подписанный файл неизвестного издателя из AppData может быть частью установленной вами же программы. Прежде чем удалять, вспомните, что ставилось в последние дни.
- Диагностика без прав администратора. Часть процессов и соединений будет скрыта, и картина окажется неполной.
Что делать, если подозрения подтвердились
- Отключите компьютер от сети (выньте кабель или выключите Wi-Fi), чтобы ограничить передачу данных наружу, но не выключайте питание — работающая память и открытые процессы пригодятся для анализа.
- Запустите полную проверку установленным антивирусом с обновлёнными базами. Дополнительно можно выполнить проверку загрузочным антивирусным диском другого производителя — разные продукты находят разные угрозы.
- Сохраните собранные данные: путь к файлу, его имя, результат Get-FileHash (хеш-сумма файла полезна для поиска информации об угрозе), вывод netstat. Эти сведения помогут и специалисту, и поиску по базам известных вредоносов.
- Если антивирус не находит угрозу, а признаки сохраняются, обратитесь к профильному специалисту. Самостоятельное «лечение» сложных инфекций (руткитов, файловых шифровальщиков) часто заканчивается переустановкой системы с потерей данных.
- После очистки смените пароли важных учётных записей с другого, заведомо чистого устройства — некоторые угрозы перехватывают вводимые учётные данные.
Когда командной строки недостаточно
Описанных методов хватает для первичной диагностики, но у них есть ограничения. Продвинутые угрозы умеют скрывать свои процессы от стандартных API, подменять системные библиотеки и маскировать сетевой трафик под легитимный. Если список процессов выглядит «слишком чистым» при явных симптомах заражения, это само по себе признак скрытого присутствия. В таких случаях применяются специализированные средства: утилиты мониторинга процессов от сторонних разработчиков, анализ автозагрузки профессиональными инструментами, проверка с загрузочного носителя. Это уже область работы специалиста по информационной безопасности.
Частые вопросы
Опасен ли процесс, если его файл лежит в AppData?
Не обязательно. Многие легитимные приложения (мессенджеры, обновляторы, лаунчеры) размещают свои исполняемые файлы в AppData. Однако системные имена процессов (svchost.exe, lsass.exe, services.exe) в этой папке — почти наверняка подделка. Оценивайте сочетание имени, пути, подписи и поведения.
Можно ли определить вирус только по имени процесса через поиск в интернете?
Поиск по имени — лишь отправная точка. Результаты будут противоречивыми: одно и то же имя используют и легитимные программы, и вредоносные. Достоверность даёт проверка пути, подписи, хеш-суммы файла и его репутации в сервисах анализа файлов.
Почему процесс снова появляется после завершения?
Значит, существует механизм перезапуска: запись в автозагрузке, задача планировщика, служба или второй процесс-сторож, который следит за первым. Завершать процесс бессмысленно, пока не найден и не отключён механизм восстановления. Именно поэтому порядок действий важен: сначала диагностика автозагрузки и задач, потом нейтрализация.
Насколько надёжен WMIC, если система предлагает PowerShell?
WMIC десятилетиями работал стабильно, но Microsoft постепенно отказывается от него в новых версиях Windows, и в свежих сборках он может отсутствовать. Приведённые PowerShell-команды дают те же данные и являются перспективным вариантом, поэтому разумно освоить оба подхода.
С чего начать прямо сейчас
Если нужна быстрая проверка, минимальный набор выглядит так: откройте консоль от администратора, выполните tasklist /v, затем Get-CimInstance Win32_Process | Select-Object ProcessId, Name, ExecutablePath, CommandLine и просмотрите пути. Всё, что лежит вне System32 и Program Files при «системном» имени, проверьте через Get-AuthenticodeSignature и netstat -abno. Совпадение двух-трёх тревожных признаков — основание для полной антивирусной проверки, а при сохранении симптомов — для обращения к специалисту. Регулярная привычка хотя бы раз просматривать список процессов с путями заметно повышает шансы заметить проблему на ранней стадии, когда она решается проще всего.
Материал носит информационный характер и не заменяет профессиональную помощь в области информационной безопасности. При подозрении на заражение, особенно если на компьютере хранятся важные данные или доступы к финансовым сервисам, решение о лечении системы принимайте вместе со специалистом.
