Module load completed but symbols could not be loaded for WdFilter.sys FLTMGR.SYS
O problema
O dispositivo apresentava tela azul e reinicialização logo em seguida.
Resumo
O dispositivo apresentava tela azul e reinicialização logo em seguida. Durante a análise do problema, verificou-se que o recurso de despejo de memória no arquivo de DUMP estava desabilitado na máquina, impedindo a coleta de evidências. Após habilitar a opção de despejo de memória, identificou-se um problema relacionado aos drivers FLTMGR.SYS e WdFilter.sys, mas as informações sobre o erro não foram carregadas corretamente no arquivo de DUMP, impossibilitando uma análise mais precisa. Suspeitando de um possível comportamento causado pelo antivírus, atualizamos o antivírus e em seguida executamos comandos para procurar e corrigir arquivos corrompidos no sistema, resolvendo o problema de tela azul.
Análise do problema
Durante a análise do problema, verificou-se que o recurso de despejo de memória no arquivo de DUMP estava desabilitado na máquina, impedindo a coleta de evidências. Após habilitar a opção de despejo de memória, identificou-se um problema relacionado aos drivers FLTMGR.SYS e WdFilter.sys, mas as informações sobre o erro não foram carregadas corretamente no arquivo de DUMP, impossibilitando uma análise mais precisa. Suspeitamos de um possível comportamento causado pelo antivírus, então, atualizamos o antivírus e executamos alguns comandos para procurar e corrigir arquivos corrompidos no sistema, resolvendo o problema de tela azul.
Além disso, tivemos também dificuldade para instalar as atualizações do Windows devido à aplicação de uma GPO antiga que configurava o serviço de Wpdade do Windows e apontava para o servidor WSUS com chaves de registro para pausar as atualizações do Windows. A solução encontrada foi apagar todas as chaves de registro aplicadas via GPO no equipamento.
Causa Raiz
A causa raiz do problema foram os drivers FLTMGR.SYS e WdFilter.sys por uma possível interferência do antivírus, que foi solucionada com a atualização do antivírus e a correção de arquivos corrompidos no sistema. Por fim, a dificuldade na instalação de atualizações do Windows se deu pela aplicação de uma GPO antiga que configurava o serviço de Update do Windows e apontava para os servidores WSUS com chaves de registro para pausar as atualizações do Windows, sendo solucionada com a remoção das chaves de registro aplicadas via GPO no equipamento.
Solução
A solução para o problema de tela azul foi a habilitação do recurso de despejo de memória no arquivo de DUMP, a atualização do antivírus e a correção de arquivos corrompidos no sistema. Já para a dificuldade em instalar as atualizações do Windows, a solução foi apagar todas as chaves de registro aplicadas via GPO no equipamento.
Script em PowerShell para automatizar a solução:
# Script: WindowsUpdateDefender.ps1# Descrição: Esse script vai aplicar atualização do antivírus, executar correção de arquivos corrompidos no sistema,# Atualizar o Windows e apagar todas as chaves de registro aplicadas via GPO para o serviço do Windows Update.# Autor: DicasQueFunfa# Data: 09/03/2023# Dependências: Install-Module -Name PSWindowsUpdate e Import-Module PSWindowsUpdate# Adiciona log de execução$logFile = "C:\temp\Logs\WindowsUpdateDefender.log"Start-Transcript -Path $logFile -Append# Alterar a política de execução de scripts do PowerShell para "RemoteSigned"function Set-ExecutionPolicyRemoteSigned {# Obtém a política de execução atual$policy = Get-ExecutionPolicy# Verifica se a política atual é diferente de "RemoteSigned"if ($policy -ne "RemoteSigned") {# Define a política de execução como "RemoteSigned"Set-ExecutionPolicy RemoteSigned -Force# Verifica se a política de execução foi definida com sucessoif ((Get-ExecutionPolicy) -eq "RemoteSigned") {Write-Host "A política de execução de scripts foi alterada para 'RemoteSigned'."} else {Write-Warning "Não foi possível alterar a política de execução de scripts."}} else {Write-Host "A política de execução de scripts já está definida como 'RemoteSigned'."}}# Função para verificar e instalar o módulo PowerShellGetfunction Install-PowerShellGetModule {# Verifica se o módulo PowerShellGet está instalado$module = Get-Module -Name "PowerShellGet" -ListAvailable -ErrorAction SilentlyContinueif ($module -eq $null) {# Instala o módulo PowerShellGetWrite-Host "O módulo PowerShellGet não está instalado. Instalando o módulo agora..."Install-Module -Name "PowerShellGet" -Force} else {Write-Host "O módulo PowerShellGet já está instalado."}}# Chama a função para verificar e instalar o módulo PowerShellGetInstall-PowerShellGetModulefunction Install-ModuloWindowsUpdate {# Verifica se o módulo PSWindowsUpdate está instalado$module = Get-Module -Name "PSWindowsUpdate" -ListAvailable -ErrorAction SilentlyContinueif ($module -eq $null) {# Instala o módulo PSWindowsUpdateWrite-Host "O módulo PSWindowsUpdate não está instalado. Instalando o módulo agora..."Install-Module -Name "PSWindowsUpdate" -Force} else {Write-Host "O módulo PSWindowsUpdate já está instalado."}}# Chama a função para verificar e instalar o módulo PSWindowsUpdateInstall-ModuloWindowsUpdatetry {# Atualizar antivírusWrite-Host "Atualizando antivírus..."Update-MpSignature -UpdateSource "MicrosoftUpdateServer" -ErrorAction StopWrite-Host "Antivírus atualizado com sucesso!"# Procurar e corrigir arquivos corrompidos do sistemaWrite-Host "Verificando e corrigindo arquivos corrompidos no sistema..."sfc /scannow# Remover chaves do registro associadas à política de grupo do serviço de atualização do Windows aplicada via GPOWrite-Host "Removendo chaves do registro associadas à política de grupo do serviço de atualização do Windows..."Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Recurse -ErrorAction SilentlyContinueRemove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Recurse -ErrorAction SilentlyContinueWrite-Host "Chaves do registro removidas com sucesso!"# Verifica se o serviço do Windows Update está em execução$service = Get-Service -Name wuauservif ($service.Status -ne "Running") {# Inicializa o serviço do Windows UpdateWrite-Host "Iniciando o serviço do Windows Update..."Start-Service -Name wuauservWrite-Host "Serviço do Windows Update iniciado com sucesso!"}# Verifica se há atualizações disponíveisWrite-Host "Verificando atualizações disponíveis..."$updates = Get-WindowsUpdate -ErrorAction Stopif ($updates -eq $null) {Write-Host "Não há atualizações disponíveis no momento."} else {Write-Host "Atualizações disponíveis:"$updates | Format-Table -AutoSize$opcao = Read-Host "Deseja instalar agora (SIM) ou (Não)?"switch ($opcao) {"Sim" {Write-Host "Instalação Aceita. O dispositivo será atualizado."# Verifica se o serviço do Windows Update foi interrompido$wuService = Get-Service -Name wuauservif ($wuService.Status -eq "Stopped") {Write-Host "O serviço do Windows Update estava parado e foi iniciado."Start-Service -Name wuauserv}# Instala as atualizaçõesWrite-Host "Instalando atualizações..."Install-WindowsUpdate -AcceptAll -AutoReboot -ErrorAction StopWrite-Host "As atualizações foram instaladas com sucesso!"}"Não" {Write-Host "Instalação recusada"break}Default {Write-Host "Resposta incorreta:" $_}}}}catch {# Captura e trata errosWrite-Host "Erro: $_" -ForegroundColor Red}# Finaliza o log de execuçãoStop-Transcript
Arquivo de DUMP
The current thread is making a bad pool request. Typically this is at a bad IRQL level or double freeing the same allocation, etc.
Arguments:
Arg1: 000000000000000d, type of pool violation the caller is guilty of.
Arg2: ffffd3086d6e5b30
Arg3: 000000007266504d
Arg4: 77d327bd6f192610
Debugging Details:
------------------
*** ERROR: Module load completed but symbols could not be loaded for WdFilter.sys
Page 20040eb33 too large to be in the dump file.
BUGCHECK_STR: 0xc2_d
DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT
PROCESS_NAME: MsMpEng.exe
CURRENT_IRQL: 0
ANALYSIS_VERSION: 6.3.9600.16384 (debuggers(dbg).130821-1623) amd64fre
LAST_CONTROL_TRANSFER: from fffff8014486896e to fffff801447f6210
STACK_TEXT:
fffff60c`45cbee98 fffff801`4486896e : 00000000`000000c2 00000000`0000000d ffffd308`6d6e5b30 00000000`7266504d : nt!KeBugCheckEx
fffff60c`45cbeea0 fffff801`44db2019 : ffffd308`63dd5050 ffffd308`6d6e5b48 00000000`00000081 01000000`00100000 : nt!ExFreeHeapPool+0x1a0a6e
fffff60c`45cbef80 fffff801`44dd3226 : ffffd308`6d6e5b30 00000000`00000000 00000000`00000001 00000000`00000000 : nt!ExFreePool+0x9
fffff60c`45cbefb0 fffff801`46335243 : 0000008b`c487ddc0 ffffd308`63dd5050 00000000`00000000 00000000`00000000 : nt!VerifierExFreePoolWithTag+0x56
fffff60c`45cbefe0 fffff801`442cb7fb : 00000000`00000000 00000193`4e0b0f70 d3086b9b`000002b0 0000008b`c487ddc0 : WdFilter+0x25243
fffff60c`45cbf090 fffff801`44303499 : ffffbc01`f4906500 ffffbc01`f4906430 0000008b`c487ddc0 ffffa552`a94fff20 : FLTMGR!FltpFilterMessage+0xdb
fffff60c`45cbf0f0 fffff801`442c4910 : ffffbc01`f203bd60 00000000`00000002 00000000`00000000 ffffbc01`f4906430 : FLTMGR!FltpMsgDispatch+0x179
fffff60c`45cbf160 fffff801`446ce6c5 : ffffbc01`f4906430 00000000`00000000 fffff60c`45cbf540 00000000`00000001 : FLTMGR!FltpDispatch+0xe0
fffff60c`45cbf1c0 fffff801`44ac3528 : ffffbc01`f4906430 00000000`00000000 00000000`00000000 00000000`00000000 : nt!IofCallDriver+0x55
fffff60c`45cbf200 fffff801`44ac2df5 : 00000000`00000000 fffff60c`45cbf540 00000000`00000000 fffff60c`45cbf540 : nt!IopSynchronousServiceTail+0x1a8
fffff60c`45cbf2a0 fffff801`44ac27f6 : 00007ff9`07f1f4ac 00000000`00000000 00000000`00000000 00000000`00000000 : nt!IopXxxControlFile+0x5e5
fffff60c`45cbf3e0 fffff801`44807bb5 : 00000000`00000000 00000000`00000000 00000000`00000000 0000008b`c487e4b0 : nt!NtDeviceIoControlFile+0x56
fffff60c`45cbf450 00007ff9`24fabe84 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x25
0000008b`c487dc78 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ff9`24fabe84
STACK_COMMAND: kb
FOLLOWUP_IP:
WdFilter+25243
fffff801`46335243 0f1f440000 nop dword ptr [rax+rax]
SYMBOL_STACK_INDEX: 4
SYMBOL_NAME: WdFilter+25243
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: WdFilter
IMAGE_NAME: WdFilter.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 0
FAILURE_BUCKET_ID: 0xc2_d_VRF_WdFilter+25243
BUCKET_ID: 0xc2_d_VRF_WdFilter+25243
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:0xc2_d_vrf_wdfilter+25243
FAILURE_ID_HASH: {90c175c5-7cf9-66d5-0c76-92c98cb21ab0}
Followup: MachineOwner
Comentários
Postar um comentário
ATENÇÃO: Seu comentário é muito importante para nós e esperamos que você compartilhe suas opiniões e sugestões abaixo. No entanto, lembramos que é de inteira responsabilidade dos usuários seguir as dicas postadas no Blog DicasQueFunfa. Pedimos que evite comentários ofensivos, ilegais ou prejudiciais, pois esses não serão tolerados e serão removidos. Agradecemos sua colaboração e esperamos que suas contribuições enriqueçam ainda mais nosso conteúdo.