1

Иногда я использую Process Monitor для отладки программного обеспечения, а также играю в игры онлайн. В некоторых из этих игр используется античит -программа BattlEye , которая не позволяет запускать игру после запуска Process Monitor в системе, показывая это в журнале:

08:06:46: Starting BattlEye Service...

08:06:49: Launching game...
08:07:07: Disallowed driver: "\??\C:\Windows\system32\Drivers\PROCMON23.SYS". Please unload it or reboot your system.

Драйвер остается загруженным после закрытия Process Monitor, и, похоже, нет возможности его выгрузить.

На несколько других вопросов есть ответы о выгрузке драйверов с помощью net stop или sc stop , но драйвер ProcMon не является службой, поэтому это не работает. Я также пытался заглянуть в Диспетчер устройств и включить «Показывать скрытые устройства», но ни одна из записей не связана с ProcMon. Я не могу удалить файл драйвера, так как он на самом деле отсутствует в файловой системе; ProcMon сохраняет файл в своем исполняемом файле и извлекает его по мере необходимости.

Мой вопрос не является дубликатом этого вопроса, который касается аналогичной проблемы, когда драйвер сохраняется после перезагрузки. У меня вопрос по поводу выгрузки драйвера без перезагрузки.

3 ответа3

2

Стандартные драйверы - это сервисы, и вы действительно можете управлять ими через net и sc . (Например, посмотрите на sc query beep - остановка драйвера 'beep' является обычным способом отключения внутреннего динамика ПК).

В более ранних версиях Process Monitor (вероятно, до 2.3, когда он все еще имел поддержку Windows XP), он устанавливал "устаревший" драйвер устройства, который был виден через sc , диспетчер устройств и т.д.


Текущие версии Process Monitor, по-видимому, удаляют конфигурацию драйвера / службы из реестра сразу после запуска драйвера. Вы можете убедиться в этом, наблюдая за ProcMon. Можно вручную повторно добавить службу с типом 2 (драйвер FS ядра), и она сразу же будет отображаться как уже запущенная.

Однако служба также сообщит "NOT_STOPPABLE" и откажется от любых попыток остановки.

Кроме того, PROCMON23 теперь регистрируется как драйвер минифильтра файловой системы через диспетчер фильтров (FltDrv). Вы можете увидеть это в выводе fltmc , но попытка внешней выгрузки также не удалась (возможно, потому что у драйвера нет процедуры выгрузки):

C:\WINDOWS\system32>fltmc

Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
PROCMON23                               0       385200         0
WdFilter                                4       328010         0
storqosflt                              0       244000         0
wcifs                                   1       189900         0
...

C:\WINDOWS\system32>fltmc unload PROCMON23

Unload failed with error: 0x801f0010
Do not detach the filter from the volume at this time.

Так как "официальный" инструмент CLI не может удалить фильтр из FltMgr, а сам FltMgr является "критическим" драйвером, который нельзя перезапустить без перезагрузки, может показаться, что нет способа выгрузить PROCMON23 или PROCMON24.


Но самое интересное: выполнив вышеуказанные проверки с помощью procmon 3.40, я обнаружил, что последняя версия на сайте - 3.50 (в которой используется более новый драйвер PROCMON24). После запуска новой версии мне сообщили, что в системе уже установлена более старая версия драйвера, и я должен перезагрузиться.

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

0

Проблемный PROCMON23.SYS устанавливается ProcMon при его запуске. Если файл C:\Windows\system32\Drivers\PROCMON23.SYS не существует в то время, тогда ProcMon напишет его. PROCMON23.SYS включен как бинарный ресурс в исполняемый файл ProcMon.

Вы можете перечислить все работающие драйверы фильтров по:

fltmc filters

и на моем компьютере это дает:

образ

Как видите, моя версия Process Monitor новее вашей (24 вместо 23).

Обычно драйвер фильтра может быть удален такой командой, как:

Fltmc unload PROCMON24

Однако в этом случае это приводит к повышению уровня командной строки:

image2

Ошибка выгрузки 0x801f0010 - типичная ошибка для драйвера мини-фильтра, в котором нет процедуры выгрузки.

Вывод: PROCMON23.SYS и более поздняя PROCMON24.SYS плохо запрограммированы. Разработчик не предвидел, что кто-нибудь захочет выгрузить свой драйвер, и не включил в него необходимые процедуры. Поэтому этот драйвер не может быть выгружен.

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

-1

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

Зависимость Уокер

Это объясняет, почему вы должны перезагрузиться ... это единственный способ отсоединиться от ядра.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .