Como posso descarregar o driver do Process Monitor sem reiniciar?

1

Por vezes, utilizo Process Monitor para depurar software e também para jogar jogos online. Alguns desses jogos usam o software anti-cheat, que se recusa a permitir que o jogo seja executado após o Process Monitor ter sido iniciado no sistema, mostrando isso no log:

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.

O driver permanece carregado após o fechamento do Process Monitor, e parece não haver uma opção para descarregá-lo.

Várias outras perguntas têm respostas sobre o descarregamento de drivers usando net stop ou sc stop , mas o driver ProcMon não é um serviço, então isso não funciona. Eu também tentei procurar no Gerenciador de dispositivos e ativar 'Mostrar dispositivos ocultos', mas nenhuma das entradas aparece relacionada ao ProcMon. Não consigo excluir o arquivo do driver, pois ele não está presente no sistema de arquivos; O ProcMon armazena o arquivo em seu executável e o extrai conforme necessário.

Minha pergunta não é uma duplicata de esta questão , que é sobre um problema similar em que o driver persiste após uma reinicialização. Minha pergunta é sobre o descarregamento do driver sem reiniciar.

    
por James 04.08.2018 / 15:57

3 respostas

2

Os drivers padrão são serviços e você pode controlá-los via net e sc . (Por exemplo, dê uma olhada em sc query beep - parar o driver 'beep' é uma maneira comum de calar o alto-falante interno do PC.)

Nas versões anteriores do Process Monitor (provavelmente pré-2.3, quando ainda tinha suporte ao Windows XP), ele instalaria um driver de dispositivo "legado" visível via sc , Gerenciador de dispositivos, etc.

As versões atuais do Process Monitor parecem remover a configuração do driver / serviço do registro imediatamente depois de iniciar o driver. Você pode ver isso monitorando o ProcMon consigo mesmo . É possível adicionar novamente o serviço manualmente, com o tipo 2 (driver do kernel FS) e ele aparecerá imediatamente como já em execução.

No entanto, o serviço também relatará "NOT_STOPPABLE" e recusará qualquer tentativa de interrupção.

Além disso, o PROCMON23 agora se registra como um driver minifiltro do sistema de arquivos através do Gerenciador de Filtros (FltDrv). Você pode vê-lo na saída de fltmc , mas a tentativa de descarregá-lo externamente também falha (possivelmente porque o driver não tem a rotina de descarga):

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.

Como a ferramenta CLI "oficial" não consegue remover o filtro do FltMgr, e o próprio FltMgr é um driver "crítico" que não pode ser reiniciado sem reinicialização, parece que não há como descarregar PROCMON23 ou PROCMON24.

Mas a parte mais interessante: Depois de fazer as verificações acima com procmon 3.40, descobri que a última versão no site é 3.50 (que usa um driver PROCMON24 mais recente). Ao iniciar a nova versão, fui informado de que uma versão mais antiga do driver já estava no sistema e que eu deveria reinicializar.

Portanto, se o próprio ProcMon não puder descarregar seu próprio driver sem precisar de uma reinicialização, acho que você pode seguramente assumir que não será capaz de descarregá-lo também.

    
por 04.08.2018 / 17:08
0

O driver de filtro problemático PROCMON23.SYS é instalado pelo ProcMon quando é corre. Se o arquivo %código% não existe no momento, então o ProcMon o escreverá. O arquivo C:\Windows\system32\Drivers\PROCMON23.SYS em si é incluído como um recurso binário dentro do executável do ProcMon.

Você pode listar todos os drivers de filtro em execução por:

fltmc filters

e no meu computador isso dá:

Comovocêpodever,minhaversãodoProcessMonitorémaisrecentequeasua(24emvezde23).

Normalmente,umdriverdefiltropodeserdesinstaladoporumcomandocomo:

FltmcunloadPROCMON24

Noentanto,nestecaso,issogeraumpromptdecomandoelevado:

Erro de descarregamento 0x801f0010 é o erro típico de um driver de mini-filtro que não possui rotina de descarregamento.

Conclusão: PROCMON23.SYS e o PROCMON24.SYS posterior estão mal programados. O desenvolvedor não previu que alguém desejaria descarregar sua motorista e não incluiu a rotina necessária. Portanto, este driver não pode ser descarregado.

A má notícia para você é que uma reinicialização é necessária para descartá-lo, nada mais vai fazer o trabalho. Seu único recurso é reclamar com o desenvolvedor.

    
por 04.08.2018 / 16:27
-1

Parece que ele conecta-se ao kernel, o que você precisa (o kernel) para evitar a reinicialização por outras razões (PC danificado).

Walker de Dependência

Isso explicaria por que você precisa reiniciar ... é a única maneira de desconectar do kernel.

    
por 10.11.2018 / 02:05