WinDivert é vírus? Entenda o driver e confira você mesmo
Se você abriu o Gerenciador de Tarefas, olhou a lista de drivers, ou viu um aviso do antivírus e encontrou o nome WinDivert, esta página é a resposta. Ela existe porque a pergunta é legítima: um programa de jogo carregou um driver no seu Windows, e você tem todo o direito de querer saber o que é isso.
A resposta curta: o WinDivert é um componente de rede de código aberto, assinado digitalmente, feito por terceiros, que o PingArmor usa apenas nos servidores OT (RubinOT, DeusOT, PokeXGames). A resposta longa é o resto deste texto — incluindo como conferir cada afirmação por conta própria, sem precisar acreditar em nós.
O que é o WinDivert?
É uma biblioteca que permite a um programa ver e redirecionar pacotes de rede antes de eles saírem da máquina. Não é uma invenção nossa nem um componente exclusivo do PingArmor: é um projeto público, usado há mais de uma década por firewalls, ferramentas de diagnóstico de rede e software corporativo de monitoramento.
O código-fonte é aberto e está em github.com/basil00/WinDivert, sob licença LGPL v3 ou GPL v2, à escolha de quem usa. O PingArmor não modifica nada: usa a biblioteca como o projeto a distribui — e a seção “Como conferir” abaixo mostra como você prova isso.
Ele tem duas partes: uma biblioteca comum (WinDivert.dll) e um driver de kernel (WinDivert64.sys). O driver é a parte que precisa da assinatura digital para o Windows aceitar carregar — e ele é assinado.
Por que o PingArmor precisa dele?
O PingArmor protege a sua sessão de jogo mantendo o tráfego dentro de um túnel, para que uma queda da sua internet principal não derrube o personagem. Para isso, o tráfego do jogo precisa entrar no túnel.
A forma como isso sempre funcionou, e continua funcionando, é por rota: uma instrução na tabela do Windows dizendo que aquele endereço sai pelo túnel. O PingArmor aprende os endereços do servidor ao longo das sessões e instala essas rotas antes de o jogo conectar. Quando você entra num nó que ele já conhece — a maior parte das vezes —, a conexão já nasce dentro do túnel, que é a condição para ela atravessar a troca de conexão sem ser recriada.
O limite desse método é conhecido e vale explicar, porque é exatamente onde o WinDivert entra: ele depende de conhecer o endereço com antecedência. Quando o servidor atende num nó que o app ainda não viu, a rota entra alguns segundos depois — e o Windows não move uma conexão que já está aberta. Aquela conexão específica segue pelo caminho de fora até ser refeita.
É esse resto que o WinDivert cobre. Com ele, a decisão passa a ser por pacote, no instante em que o pacote sai, sem depender de uma rota instalada antes — o que alcança também os endereços que aparecem pela primeira vez.
Uma consequência que vale entender, porque ela aparece na prática: o WinDivert move o tráfego, não move a conexão. Quando ele desvia uma conexão que nasceu fora do túnel, o tráfego passa protegido, mas o socket continua ligado ao endereço de rede do seu PC — e se esse endereço desaparecer (cabo arrancado do PC, placa de rede desativada), o Windows destrói a conexão, e nada pode impedir isso. Nesse caso o client reconecta, e a conexão nova já nasce protegida.
É por isso que a rota instalada no início continua importando mesmo com o motor ligado: a conexão que nasce dentro do túnel não depende do endereço físico da máquina. Os dois mecanismos se somam — a rota cobre o endereço já conhecido, o motor cobre o resto. A diferença entre uma queda de internet real e arrancar o cabo do PC está explicada na FAQ.
O que ele vê, e o que ele nunca vê
Três portas ficam fora do filtro por construção: 80, 443 e 53 — sites, navegação e resolução de nomes. O login do jogo usa 443, então ele também fica de fora. Não é uma configuração que dê para errar: é a forma do filtro.
Dentro do que sobra, o recorte depende do jogo:
| jogo | o que o filtro entrega ao PingArmor |
|---|---|
| PokeXGames | quatro portas (7000–7003) |
| DeusOT e RubinOT | o restante do tráfego TCP de saída, menos 80, 443 e 53 |
DeusOT e RubinOT são os casos largos, e vale explicar por quê. Os servidores dos dois rodam num conjunto de nós que muda, sem uma porta fixa que dê para listar. No DeusOT isso ficou claro quando medimos que o mesmo executável atende dois clientes diferentes do launcher, cada um conversando numa porta própria. No PokeXGames a porta é conhecida, então o filtro é estreito. Nos outros dois não há o que enumerar: o filtro pega o restante, e a decisão de quem é o dono do pacote acontece depois.
Essa decisão é por processo. O PingArmor olha o cabeçalho do pacote — para onde vai, de que porta sai — e qual programa é dono daquele socket. Se não for o jogo, o pacote é devolvido byte a byte, sem alteração. O conteúdo do que você transmite não é lido, não é gravado e não é enviado para lugar nenhum. O que fica são contadores — quantos pacotes passaram — que aparecem no relatório de suporte, se você escolher enviar um.
Nos dois casos largos isso só existe enquanto o jogo está aberto: fechou o jogo, o motor desarma e o filtro deixa de existir. No PokeXGames, cujo filtro são quatro portas, ele fica armado enquanto o túnel está de pé — quatro portas não alcançam nada além do próprio jogo, e armar antes garante que a primeira conexão já nasça protegida. Se você joga só Tibia Global, ele nunca chega a ser carregado.
Por que alguns antivírus classificam como HackTool ou Riskware?
Porque os motores classificam por capacidade, não por comportamento observado. Um componente que consegue inspecionar e redirecionar pacotes tem uma capacidade que também interessa a software malicioso — e isso basta para cair numa categoria de risco, independentemente de quem o esteja usando.
Existe um segundo motivo, mais concreto e menos conhecido: ferramentas de pirataria empacotam o WinDivert. Ativadores ilegais de Windows distribuem a mesma biblioteca, e a associação por heurística arrasta o arquivo limpo junto. É por isso que um driver legítimo às vezes aparece com um nome de detecção que fala em pirataria.
Vale citar quem não tem interesse em nos defender: a Microsoft, ao documentar uma campanha de malware que usou o WinDivert, registrou que ferramentas desse tipo “não são maliciosas nem vulneráveis; elas fornecem capacidades importantes para uso legítimo”. O problema, quando existe, é o programa que carrega a ferramenta — não a ferramenta.
Os rótulos que podem aparecer, em texto, para você comparar com o que viu na tela: RiskTool.Multi.WinDivert.gen (Kaspersky, que o prefixa com not-a-virus:), RiskWare.WinDivert.VulnDriver (Malwarebytes), Riskware/WinDivert (Fortinet), Windows.Rootkit.WinDivert (Elastic).
Como conferir você mesmo
Não precisa acreditar em nós. Três verificações, todas suas.
1. O arquivo é o oficial, sem modificação
O PingArmor embarca o WinDivert exatamente como o projeto o distribui — sem recompilar, sem alterar, sem reempacotar. Você pode provar isso comparando o hash do arquivo instalado com o do pacote oficial publicado no GitHub do projeto.
No PowerShell:
Get-FileHash "C:\Program Files\PingArmor\resources\WinDivert64.sys"
Para saber qual versão você tem, clique com o botão direito no mesmo arquivo, vá em Propriedades → Detalhes e veja o número da versão. Baixe o pacote correspondente na página oficial de releases, rode o mesmo comando no arquivo x64 de dentro dele, e compare. Os dois valores têm que ser idênticos — e são.
Baixe só de lá. É a mesma busca que leva às páginas de “reparo” citadas acima, e a diferença entre a fonte oficial e uma cópia qualquer é justamente o que este passo existe para provar.
2. O driver é assinado, e há três detalhes que confundem
Clique com o botão direito em WinDivert64.sys, vá em Propriedades → Assinaturas Digitais. Você vai ver que a assinatura é válida. Três coisas costumam causar dúvida ao conferir, e todas têm explicação:
- O certificado aparece como expirado. A assinatura tem carimbo de tempo, que a ancora no momento em que foi feita. Ela continua válida depois da expiração do certificado — é assim que assinatura de código funciona, e o próprio Windows a valida.
- O nome do signatário não é o do autor do projeto. O WinDivert é publicado em variantes que diferem apenas na assinatura do driver; o PingArmor embarca uma delas, íntegra.
- A biblioteca
WinDivert.dllnão é assinada. Só drivers de kernel exigem assinatura. Isso é esperado, e não vale para o.sys, que é assinado.
3. O que os antivírus dizem hoje
Cole o hash do passo 1 no VirusTotal e veja o resultado de dezenas de motores ao mesmo tempo, sem enviar arquivo nenhum. É a forma mais rápida de separar “um motor classificou por categoria” de “existe um problema real”.
E se o meu antivírus bloquear?
Pode acontecer, principalmente com produtos que sinalizam ferramentas de rede por categoria. A solução é adicionar a pasta do PingArmor à lista de exclusões do seu antivírus:
C:\Program Files\PingArmor
Uma entrada só — ela cobre os dois arquivos e continua valendo depois de atualizações. Só faça isso se o seu antivírus estiver de fato acusando algo: uma exclusão faz o antivírus parar de vigiar aquela pasta, e isso não é para ser feito por precaução.
O caminho do menu muda a cada produto e a cada versão, então em vez de reproduzir aqui um passo a passo que envelhece, vale ir direto na fonte: Windows Defender, Avast, AVG, Kaspersky, Norton, Bitdefender, Malwarebytes. Bitdefender e Malwarebytes publicam esse artigo só em inglês.
Uma exceção que precisa ser dita: no McAfee da linha de consumo, a exclusão de pasta não vale para a verificação em tempo real — só a de arquivo. Nele, exclua WinDivert.dll e WinDivert64.sys individualmente, dentro de C:\Program Files\PingArmor\resources.
Se o antivírus não apenas bloqueou, mas apagou o arquivo, criar a exclusão não basta: é preciso restaurar o arquivo da quarentena primeiro, e só então criar a exclusão — senão ele é removido de novo.
E o que o PingArmor faz enquanto o arquivo estiver bloqueado?
Ele avisa — e não segue prometendo uma proteção que não está entregando.
Quando o motor não pode ser ativado, aparecem duas coisas: um balão na área de notificação, ao lado do relógio, e uma mensagem na janela do app, com um atalho para esta página. Se você estiver em tela cheia e não vir o balão, a mensagem continua lá quando você voltar para o app.
O aviso é da sessão, não de um jogo específico. O app sabe que a ativação falhou, mas não tem como dizer qual dos jogos abertos ficou sem cobertura — então ele avisa por baixo, nunca por cima: se você tem dois jogos abertos e a mensagem apareceu, trate os dois como desprotegidos até resolver.
Se você já está conectado e jogando, o túnel continua de pé e o jogo continua rodando. O que falta é a camada que cobre as conexões para endereços que o app ainda não conhecia. Não precisa fechar nada: leve o personagem para um lugar seguro, libere o arquivo no antivírus pelos passos acima — restaurando da quarentena antes, se ele tiver sido apagado — e a proteção volta sozinha. O app continua tentando em segundo plano, com intervalos crescentes, e não é preciso reiniciar o jogo, o app nem o Windows.
Se você desconectar e tentar conectar de novo depois de uma falha, o PingArmor não conecta. Ele já viu que o motor não subiu, e prefere dizer isso a levantar um túnel que não entrega a proteção que promete. A tela mostra o que aconteceu, com o mesmo atalho para cá; depois de liberar no antivírus, o botão “Já liberei — tentar de novo” libera a conexão.
Vale ser exato sobre o alcance desse bloqueio: ele depende de o app já ter visto a falha. Numa abertura limpa — PC reiniciado, app aberto do zero — a conexão acontece normalmente, e a falha só aparece quando você abre o jogo. É esse o momento em que a falha fica visível: o aviso exige um jogo OT aberto, mesmo quando a ativação foi tentada antes — o app não tem como saber qual jogo você vai abrir.
O driver fica instalado no meu PC?
Não de forma permanente. O driver é carregado sob demanda quando o PingArmor precisa dele, e o Windows o descarrega no próximo reinício da máquina. A documentação do projeto é explícita: ele “nunca é instalado permanentemente no sistema, apenas carregado temporariamente sob demanda”.
Enquanto ele está registrado, você pode encontrá-lo na lista de serviços com o nome WinDivert. Estar registrado não é o mesmo que estar interceptando: sem o jogo aberto, o filtro largo não existe, e o estreito do PokeXGames alcança apenas as quatro portas dele.
Se quiser removê-lo antes do próximo boot, com o PingArmor desconectado, dois comandos num prompt de administrador:
sc stop WinDivert
sc delete WinDivert
Em resumo
| Pergunta | Resposta curta |
|---|---|
| É vírus? | Não. É um componente de rede público, assinado, usado por vários softwares legítimos |
| O PingArmor modificou o arquivo? | Não. É idêntico ao que o projeto distribui, e você pode conferir pelo hash |
| Ele lê o que eu transmito? | Não. Olha cabeçalho e dono do pacote; o conteúdo não é lido, gravado nem enviado |
| Fica sempre ligado? | Não. O filtro largo só com o jogo aberto; o do PokeXGames são quatro portas com o túnel de pé. No Tibia Global nem é carregado |
| Fica instalado para sempre? | Não. Sai no próximo reinício, ou em dois comandos |
| Meu antivírus pode acusar? | Pode, por categoria. A exclusão da pasta resolve — e só se ele acusar de fato |
Ficou alguma dúvida sobre isso? Veja a FAQ ou fale com a gente em [email protected]. Se quiser entender o resto da arquitetura — por que não há injeção de DLL, hook ou acesso ao processo do jogo —, o post PingArmor é seguro com BattlEye? cobre isso em detalhe. E se algo continuar sem funcionar depois de liberar a pasta, o guia de coleta de logs mostra como nos mandar a evidência.
Proteja sua conexão agora
Teste o PingArmor grátis por 3 dias. Sem cartão de crédito.
Teste grátis por 3 dias