Os drivers do Windows geralmente não contêm a assinatura digital no arquivo real. Em vez disso, todas as assinaturas de um grupo de drivers são agrupadas em um único arquivo chamado catálogo. Se este arquivo for danificado, todos os arquivos que ele autentica serão marcados como não assinados. O Windows não vai dizer que é realmente o catálogo que está danificado, você só tem que adivinhar. Ele também não informa qual catálogo está danificado. Os catálogos são armazenados em c:\windows\system32\catroot\
.
Você tem que ir para uma máquina de trabalho e executar sigverif e, em seguida, olhar para o log. Você verá uma linha como esta para o arquivo:
nwifi.sys 14/07/2009 2:5.1,2:5.2,2:6.0,2:Signed Microsoft-Windows-ClMicrosoft Windows
Microsoft-Windows-Cl
faz parte do nome do catálogo que contém a assinatura deste arquivo. O Windows não se preocupa em nos informar o nome completo do arquivo e há 11 arquivos de catálogo que começam com essa string. Para descobrir qual deles é realmente, você deve instalar o Windows SDK para obter o programa signtool.exe
. Na pasta catroot, sob um CLSID longo, você encontrará vários arquivos que começam com essa string. Para descobrir qual deles está danificado, use signtool para tentar verificar nwifi.sys. Eventualmente, você encontrará:
signtool verify /a /c c:\windows\system32\catroot\{F...}\Windows-Client-Features-Package~31bf3856ad364e35~amd64~~6.1.7601.17514.cat c:\windows\system32\drivers\nwifi.sys
Este comando será bem-sucedido em uma máquina normal do Windows 7 (com wifi). Na máquina com problema, ele falha. Depois de comparar os arquivos de catálogo, descobri que eram diferentes e, de fato, o Windows se recusaria a abrir o arquivo danificado se eu clicasse duas vezes diretamente nele. É claro que não ofereceria nenhuma pista sobre qual era o problema até eu já ter percebido.
Então, neste ponto, para consertar a máquina, basta copiar o catálogo da máquina em funcionamento para a máquina quebrada.