¿Qué es WinDivert y por qué tu antivirus lo bloquea?
Si abriste el Administrador de tareas, miraste la lista de controladores, o viste un aviso del antivirus y encontraste el nombre WinDivert, esta página es la respuesta. Existe porque la pregunta es legítima: un programa de juego cargó un controlador en tu Windows, y tienes todo el derecho a querer saber qué es eso.
La respuesta corta: WinDivert es un componente de red de código abierto, firmado digitalmente, hecho por terceros, que PingArmor usa solo en los servidores OT (RubinOT, DeusOT, PokeXGames). La respuesta larga es el resto de esta página — incluyendo cómo comprobar cada afirmación por tu cuenta, sin tener que creernos.
¿Qué es WinDivert?
Es una biblioteca que permite a un programa ver y redirigir paquetes de red antes de que salgan de la máquina. No es un invento nuestro ni un componente exclusivo de PingArmor: es un proyecto público, usado desde hace más de una década por firewalls, herramientas de diagnóstico de red y software corporativo de monitorización.
El código fuente es abierto y está en github.com/basil00/WinDivert, bajo licencia LGPL v3 o GPL v2, a elección de quien lo use. PingArmor no modifica nada: usa la biblioteca tal como el proyecto la distribuye — y la sección “Cómo comprobarlo” más abajo te muestra cómo demostrarlo.
Tiene dos partes: una biblioteca común (WinDivert.dll) y un controlador de kernel (WinDivert64.sys). El controlador es la parte que necesita la firma digital para que Windows acepte cargarlo — y está firmado.
¿Por qué PingArmor lo necesita?
PingArmor protege tu sesión de juego manteniendo el tráfico dentro de un túnel, para que una caída de tu internet principal no tire al personaje. Para eso, el tráfico del juego tiene que entrar en el túnel.
La forma en que esto siempre funcionó, y sigue funcionando, es por ruta: una instrucción en la tabla de Windows que dice que esa dirección sale por el túnel. PingArmor aprende las direcciones del servidor a lo largo de las sesiones e instala esas rutas antes de que el juego conecte. Cuando entras en un nodo que ya conoce — la mayoría de las veces —, la conexión nace dentro del túnel, que es la condición para que atraviese el cambio de conexión sin ser recreada.
El límite de ese método es conocido y vale explicarlo, porque es exactamente donde entra WinDivert: depende de conocer la dirección con antelación. Cuando el servidor responde en un nodo que la app aún no vio, la ruta entra unos segundos después — y Windows no mueve una conexión que ya está abierta. Esa conexión concreta sigue por el camino de fuera hasta que se rehace.
Es ese resto lo que WinDivert cubre. Con él, la decisión pasa a ser por paquete, en el instante en que el paquete sale, sin depender de una ruta instalada antes — lo que alcanza también a las direcciones que aparecen por primera vez.
Una consecuencia que vale entender, porque aparece en la práctica: WinDivert mueve el tráfico, no mueve la conexión. Cuando desvía una conexión que nació fuera del túnel, el tráfico pasa protegido, pero el socket sigue ligado a la dirección de red de tu PC — y si esa dirección desaparece (cable desconectado del PC, placa de red desactivada), Windows destruye la conexión, y nada puede impedirlo. En ese caso el cliente reconecta, y la conexión nueva ya nace protegida.
Por eso la ruta instalada al principio sigue importando incluso con el motor encendido: la conexión que nace dentro del túnel no depende de la dirección física de la máquina. Los dos mecanismos se suman — la ruta cubre la dirección ya conocida, el motor cubre el resto. La diferencia entre una caída real de internet y desconectar el cable del PC está explicada en la FAQ.
Qué ve, y qué nunca ve
Tres puertos quedan fuera del filtro por construcción: 80, 443 y 53 — sitios web, navegación y resolución de nombres. El login del juego usa 443, así que también queda fuera. No es una configuración que se pueda equivocar: es la forma del filtro.
Dentro de lo que queda, el recorte depende del juego:
| juego | lo que el filtro entrega a PingArmor |
|---|---|
| PokeXGames | cuatro puertos (7000–7003) |
| DeusOT y RubinOT | el resto del tráfico TCP de salida, menos 80, 443 y 53 |
DeusOT y RubinOT son los casos amplios, y vale explicar por qué. Los servidores de los dos corren en un conjunto de nodos que cambia, sin un puerto fijo que se pueda listar. En DeusOT eso quedó claro cuando medimos que el mismo ejecutable atiende a dos clientes distintos del launcher, cada uno hablando en un puerto propio. En PokeXGames el puerto es conocido, así que el filtro es estrecho. En los otros dos no hay nada que enumerar: el filtro toma el resto, y la decisión sobre quién es el dueño del paquete ocurre después.
Esa decisión es por proceso. PingArmor mira la cabecera del paquete — a dónde va, de qué puerto sale — y qué programa es dueño de ese socket. Si no es el juego, el paquete se devuelve byte a byte, sin alteración. El contenido de lo que transmites no se lee, no se guarda y no se envía a ningún sitio. Lo que queda son contadores — cuántos paquetes pasaron — que aparecen en el informe de soporte, si eliges enviarlo.
En los dos casos amplios esto solo existe mientras el juego está abierto: cerraste el juego, el motor se desarma y el filtro deja de existir. En PokeXGames, cuyo filtro son cuatro puertos, queda armado mientras el túnel está en pie — cuatro puertos no alcanzan nada más allá del propio juego, y armar antes garantiza que la primera conexión ya nazca protegida. Si solo juegas Tibia Global, nunca llega a cargarse.
¿Por qué algunos antivirus lo clasifican como HackTool o Riskware?
Porque los motores clasifican por capacidad, no por comportamiento observado. Un componente capaz de inspeccionar y redirigir paquetes tiene una capacidad que también le interesa al software malicioso — y eso basta para caer en una categoría de riesgo, independientemente de quién lo esté usando.
Hay una segunda razón, más concreta y menos conocida: las herramientas de piratería empaquetan WinDivert. Activadores ilegales de Windows distribuyen la misma biblioteca, y la asociación por heurística arrastra al archivo limpio con ellos. Por eso un controlador legítimo a veces aparece con un nombre de detección que habla de piratería.
Vale citar a quien no tiene interés en defendernos: Microsoft, al documentar una campaña de malware que usó WinDivert, registró que las herramientas de ese tipo “no son maliciosas ni vulnerables; proporcionan capacidades importantes para uso legítimo”. El problema, cuando existe, es el programa que carga la herramienta — no la herramienta.
Las etiquetas que pueden aparecer, en texto, para que las compares con lo que viste en pantalla: RiskTool.Multi.WinDivert.gen (Kaspersky, que la prefija con not-a-virus:), RiskWare.WinDivert.VulnDriver (Malwarebytes), Riskware/WinDivert (Fortinet), Windows.Rootkit.WinDivert (Elastic).
Cómo comprobarlo tú mismo
No hace falta que nos creas. Tres comprobaciones, todas tuyas.
1. El archivo es el oficial, sin modificar
PingArmor incluye WinDivert exactamente como el proyecto lo distribuye — sin recompilar, sin alterar, sin reempaquetar. Puedes demostrarlo comparando el hash del archivo instalado con el del paquete oficial publicado en el GitHub del proyecto.
En PowerShell:
Get-FileHash "C:\Program Files\PingArmor\resources\WinDivert64.sys"
Para saber qué versión tienes, haz clic derecho en el mismo archivo, ve a Propiedades → Detalles y mira el número de versión. Descarga el paquete correspondiente en la página oficial de releases, ejecuta el mismo comando en el archivo x64 de dentro, y compara. Los dos valores tienen que ser idénticos — y lo son.
Descárgalo solo de ahí. Es la misma búsqueda que lleva a las páginas de “reparación” citadas arriba, y la diferencia entre la fuente oficial y una copia cualquiera es justamente lo que este paso existe para demostrar.
2. El controlador está firmado, y hay tres detalles que confunden
Haz clic derecho en WinDivert64.sys, ve a Propiedades → Firmas digitales. Verás que la firma es válida. Tres cosas suelen generar dudas al comprobar, y todas tienen explicación:
- El certificado aparece como caducado. La firma tiene sello de tiempo, que la ancla al momento en que se hizo. Sigue siendo válida después de que el certificado caduque — así funciona la firma de código, y el propio Windows la valida.
- El nombre del firmante no es el del autor del proyecto. WinDivert se publica en variantes que difieren solo en la firma del controlador; PingArmor incluye una de ellas, íntegra.
- La biblioteca
WinDivert.dllno está firmada. Solo los controladores de kernel exigen firma. Eso es lo esperado, y no vale para el.sys, que sí está firmado.
3. Qué dicen los antivirus hoy
Pega el hash del paso 1 en VirusTotal y mira el resultado de decenas de motores a la vez, sin subir ningún archivo. Es la forma más rápida de separar “un motor lo clasificó por categoría” de “hay un problema real”.
¿Y si mi antivirus lo bloquea?
Puede pasar, sobre todo con productos que marcan herramientas de red por categoría. La solución es añadir la carpeta de PingArmor a la lista de exclusiones de tu antivirus:
C:\Program Files\PingArmor
Una sola entrada — cubre los dos archivos y sigue valiendo después de las actualizaciones. Hazlo solo si tu antivirus está marcando algo de verdad: una exclusión hace que el antivirus deje de vigilar esa carpeta, y eso no es para hacerlo por precaución.
La ruta del menú cambia con cada producto y cada versión, así que en vez de reproducir aquí un paso a paso que envejece, conviene ir directo a la fuente: Windows Defender, Avast, AVG, Kaspersky, Norton, Bitdefender, Malwarebytes. Bitdefender y Malwarebytes publican ese artículo solo en inglés.
Una excepción que hay que decir: en el McAfee de consumo, la exclusión de carpeta no vale para el análisis en tiempo real — solo la de archivo. Ahí, excluye WinDivert.dll y WinDivert64.sys individualmente, dentro de C:\Program Files\PingArmor\resources.
Si el antivirus no solo bloqueó, sino que borró el archivo, crear la exclusión no basta: hay que restaurar el archivo desde la cuarentena primero, y solo entonces crear la exclusión — si no, se elimina de nuevo.
¿Y qué hace PingArmor mientras el archivo esté bloqueado?
Avisa — y deja de prometer una protección que no está entregando.
Cuando el motor no puede activarse, aparecen dos cosas: un globo en el área de notificación, al lado del reloj, y un mensaje en la ventana de la app, con un acceso directo a esta página. Si estás en pantalla completa y no ves el globo, el mensaje sigue ahí cuando vuelvas a la app.
El aviso es de la sesión, no de un juego específico. La app sabe que la activación falló, pero no puede decir cuál de los juegos abiertos quedó sin cobertura — así que avisa de más, nunca de menos: si tienes dos juegos abiertos y apareció el mensaje, trata los dos como desprotegidos hasta resolverlo.
Si ya estás conectado y jugando, el túnel sigue en pie y el juego sigue funcionando. Lo que falta es la capa que cubre las conexiones hacia direcciones que la app aún no conocía. No hace falta cerrar nada: lleva el personaje a un lugar seguro, permite el archivo en el antivirus con los pasos de arriba — restaurándolo de la cuarentena antes, si fue borrado — y la protección vuelve sola. La app sigue reintentando en segundo plano, con intervalos crecientes, y no hay que reiniciar el juego, la app ni Windows.
Si te desconectas e intentas conectar de nuevo tras una falla, PingArmor no conecta. Ya vio que el motor no arrancó, y prefiere decirlo a levantar un túnel que no entrega la protección que promete. La pantalla muestra qué pasó, con el mismo acceso directo a esta página; después de permitirlo en el antivirus, el botón “Ya lo permití — intentar de nuevo” libera la conexión.
Vale ser exacto sobre el alcance de ese bloqueo: depende de que la app ya haya visto la falla. En un arranque limpio — PC reiniciado, app abierta desde cero — la conexión ocurre con normalidad, y la falla solo aparece cuando abres el juego. Ese es el momento en que la falla se hace visible: el aviso exige un juego OT abierto, incluso cuando la activación se intentó antes — la app no tiene cómo saber qué juego vas a abrir.
¿El controlador queda instalado en mi PC?
No de forma permanente. El controlador se carga bajo demanda cuando PingArmor lo necesita, y Windows lo descarga en el siguiente reinicio de la máquina. La documentación del proyecto es explícita: “nunca se instala permanentemente en tu sistema, solo se carga temporalmente bajo demanda”.
Mientras está registrado, puedes encontrarlo en la lista de servicios con el nombre WinDivert. Estar registrado no es lo mismo que estar interceptando: sin el juego abierto, el filtro amplio no existe, y el estrecho de PokeXGames alcanza solo sus cuatro puertos.
Si quieres quitarlo antes del próximo arranque, con PingArmor desconectado, dos comandos en un símbolo del sistema como administrador:
sc stop WinDivert
sc delete WinDivert
En resumen
| Pregunta | Respuesta corta |
|---|---|
| ¿Es un virus? | No. Es un componente de red público, firmado, usado por varios programas legítimos |
| ¿PingArmor modificó el archivo? | No. Es idéntico al que distribuye el proyecto, y puedes comprobarlo por el hash |
| ¿Lee lo que transmito? | No. Mira la cabecera y el dueño del paquete; el contenido no se lee, guarda ni envía |
| ¿Está siempre encendido? | No. El filtro amplio solo con el juego abierto; el de PokeXGames son cuatro puertos con el túnel de pie. En Tibia Global ni se carga |
| ¿Queda instalado para siempre? | No. Se va en el próximo reinicio, o con dos comandos |
| ¿Mi antivirus puede marcarlo? | Puede, por categoría. La exclusión de la carpeta lo resuelve — y solo si lo marca de verdad |
¿Te quedó alguna duda? Mira la FAQ o escríbenos a [email protected]. Si quieres entender el resto de la arquitectura — por qué no hay inyección de DLL, hooks ni acceso al proceso del juego —, el post ¿Es PingArmor seguro con BattlEye? lo cubre en detalle. Y si algo sigue sin funcionar después de permitir la carpeta, la guía de recolección de logs muestra cómo enviarnos la evidencia.
Protege tu conexión ahora
Prueba PingArmor gratis durante 3 días. Sin tarjeta de crédito.
Probar gratis 3 días