Raven AnticheatRavenAnticheat
Todos los temas de detección

Heartbeat anti-tamper: cómo Raven Anticheat detecta que desactivaron su capa de cliente

Un bucle heartbeat reporta continuamente al servidor el estado de ejecución del lado del cliente. Si el heartbeat se corta, se atrasa o devuelve valores incorrectos, el servidor considera que el cliente fue manipulado y actúa.

El problema que resuelve el heartbeat

El cheat más difícil de detectar es el que desactiva en silencio tu cliente de anticheat y después corre sin que nadie lo vea. Las comprobaciones de firmas se pueden hookear. La inspección de NUI se puede bloquear. Las funciones de integridad en ejecución se pueden parchear a no-op. Una vez que la capa de cliente se queda muda, un AC de una sola capa está ciego. El heartbeat anti-tamper existe para que ese silencio salga caro: la ausencia de heartbeat es, en sí misma, una detección.

Cómo funciona el bucle heartbeat

El cliente de Raven emite una carga firmada con una cadencia fija (adaptativa por servidor, ver la entrada del changelog del 2026-02-17; antes era fija en 1500 ms). La carga incluye un hash criptográfico del estado crítico en ejecución (integridad de recursos, huellas de la tabla de hooks, direcciones de los manejadores de eventos) junto con una marca de tiempo y un nonce por sesión. El servidor verifica la firma, compara el hash con la línea base esperada y anota el tiempo entre llegadas. Se detectan tres formas de fallo: el heartbeat no llega (cliente mudo), el heartbeat llega pero su contenido ya no coincide con los valores esperados (cliente manipulado), o el heartbeat llega con la cadencia equivocada (cliente con replay o desfasado).

Por qué importa la cadencia

Una ventana de heartbeat fija es más fácil de evadir. Un cheat que desactiva el cliente por un instante entre heartbeats puede mantener vivo el bucle y aun así correr sin ser visto. La cadencia adaptativa por servidor (calibrada contra la latencia media del tick durante las primeras 24 h) vuelve esa ventana impredecible para el cheat sin causarles problemas a los jugadores legítimos en rutas de alta latencia. La versión de 2026-03 rebalanceó la ventana por defecto de un valor fijo de 1500 ms a un rango adaptativo de 800 a 1500 ms, lo que bajó los falsos positivos en rutas de EU/AS cerca de un 38%.

Qué pasa cuando falla el heartbeat

Las respuestas ante fallos se configuran por servidor en tres niveles. El nivel 1 (aviso) marca al jugador en el mapa en vivo y notifica a los admins por el webhook de Discord configurado. El nivel 2 (kick) saca al jugador del servidor con un motivo de desconexión genérico y registra el evento con toda la evidencia (último heartbeat válido, marca de tiempo actual, diferencia de la carga). El nivel 3 (baneo automático) banea al jugador en el servidor local y lo deja en cola para promoverlo a la base de datos global de baneos tras la revisión de un admin. La configuración por defecto es conservadora (primero avisa, escala solo si se repite) porque la capa de heartbeat puede producir falsos positivos durante problemas de red legítimos.

Cómo interactúa el heartbeat con el trust score

Cada anomalía de heartbeat suma al trust score por jugador (introducido en la versión 2026.4.0, ver /changelog). Un heartbeat tarde suelto es ruido. Varios heartbeats tarde del mismo jugador en distintas sesiones, un heartbeat que se atrasa justo cuando el jugador entra en ciertos estados del juego, o un heartbeat que devuelve siempre el mismo hash aunque el pack de recursos se haya actualizado: todas esas son señales que sacan al jugador al mapa en vivo para revisión mucho antes de que salte cualquier baneo de nivel 3.

Preguntas frecuentes

¿Qué es el heartbeat anti-tamper en un anticheat de FiveM?

Un sistema heartbeat anti-tamper hace que el cliente del anticheat le envíe periódicamente al servidor una carga criptográfica firmada. La carga incluye hashes del estado crítico en ejecución del lado del cliente. Si la carga deja de llegar, llega tarde o llega con los valores equivocados, el servidor considera que el cliente fue manipulado y dispara la respuesta configurada.

¿Se puede falsear un heartbeat?

Falsear un heartbeat exige producir la carga firmada correcta, con la cadencia correcta y con el hash correcto del estado actual en ejecución. Hacer eso mientras además corres la lógica del cheat no es trivial, porque el hash incluye valores de integridad de recursos que cambian cuando la inyección funciona. El heartbeat por sí solo no alcanza, y por eso Raven también corre detección por firmas y validación de eventos del lado del servidor.

¿El heartbeat afecta el rendimiento del servidor?

Sin impacto medible. La carga del heartbeat es pequeña (menos de 1 KB) y el paso de verificación es de tiempo constante. El costo total del recurso Raven Anticheat se mantiene por debajo de 0.5 ms en el resource monitor de FiveM.

Otros temas de detección

¿Quieres esto protegiendo tu servidor?

Instalación en dos minutos. Autodetección de ESX, QBCore, vRP y QBox. Desde $20.