Ingeniería inversa del anti-cheat de Call of Duty
- Introducción
- Se comparten los resultados de una investigación sobre el anti-cheat en modo de usuario de Black Ops Cold War.
- Es un juego de Treyarch, y se lo denomina TAC (Treyarch Anti-Cheat).
- La principal diferencia con los juegos más recientes es la presencia o ausencia de un driver en modo kernel.
Arxan
- Rol de Arxan
- Herramienta de ofuscación/protección usada en los juegos de Call of Duty.
- Cifra el ejecutable y finaliza el proceso si detecta un depurador o una discrepancia en el checksum.
Cifrado del ejecutable en tiempo de ejecución
- Protección del ejecutable
- El ejecutable del juego está empaquetado y cifrado, y Arxan se encarga de desempaquetarlo y descifrarlo.
Checksum del ejecutable
- Monitoreo del checksum
- Arxan supervisa continuamente los parches aplicados al ejecutable.
Ofuscación con jmp
- Ofuscación de funciones
- Separa funciones e instrucciones con
jmp para dificultar el análisis.
Ofuscación del punto de entrada
- Protección del punto de entrada
- Es difícil seguir el punto de entrada en juegos protegidos por Arxan.
Cifrado de punteros
- Protección de punteros
- Los punteros importantes se cifran y descifran cada vez antes de usarse.
Métodos de TAC para detectar monitoreo
- Detección de hooks de API
- TAC realiza funciones de anti-cheat usando la API de Windows y detecta patrones específicos.
Resolución de exportaciones de API en tiempo de ejecución
- Búsqueda de API
- TAC resuelve API usando hashes del módulo y hashes de nombres de API.
Registros de depuración
- Detección de registros de depuración
- TAC detecta registros de depuración y finaliza el proceso.
Aplicación forzada de firma de drivers
- Detección del modo de prueba
- Detecta el modo de prueba de Windows y marca la cuenta.
Métodos de TAC para finalizar procesos
- Finalización del proceso
- TAC finaliza el proceso de dos maneras y restablece los registros.
Detección de registro de cheats
- Detección de asignación de consola
- Detecta cheats comprobando si se ha asignado una ventana de consola.
Detección de elementos visuales
- Detección de ESP e interfaz
- Detecta cheats que dibujan en pantalla usando DirectX 12.
1 comentarios
Opiniones de Hacker News
Se necesita regulación legal contra vender funciones de un producto y luego eliminarlas. En particular, si se eliminan funciones por contrato o por el EULA, se debería exigir un reembolso para el propietario del juego. Invalidar compras en Steam debería ser legalmente imposible y, aun si se restringe el inicio de sesión de una cuenta, los objetos y el inventario deberían seguir siendo comerciables. Si se quiere aplicar un código de conducta en juegos multijugador, no se debería poder cobrar por el juego, las sanciones deberían seguir un principio de proporcionalidad y debería existir un sistema de apelación con costo limitado y participación humana
Revirtió una prohibición permanente injusta tras una batalla legal de dos años contra Activision. Activision perdió sin presentar pruebas de trampa
No juega el juego, pero su pareja sí. Vio cómo se observaba a jugadores que estaban bajo tierra, y aun si el cliente es hackeado o hace trampa, el servidor debería verificar del lado del servidor que el estado del jugador sea válido
Tiene curiosidad por la ofuscación de saltos. Se pregunta si los saltos incondicionales no son lo bastante comunes como para no poder filtrarlos como precondición. Parecería fácil encontrar el final de una función, y se pregunta si se podría analizar la pila para saber dónde regresa una función y buscar una llamada justo antes de la dirección de retorno
Tiene curiosidad por saber dónde aprendió estas técnicas. Le gustaría entender la mitad de lo que dice este artículo, pero no sabe cómo empezar
Hizo un poco de ingeniería inversa en un MMO popular basado en Horde/Alliance y siguió casi los mismos pasos, incluyendo el hash de exportación FNV32. Parece que usan trucos muy similares. Se pregunta si estaba empaquetado usando la misma protección
Excelente trabajo de investigación. Claramente no es la primera experiencia del autor
Mientras se pueda leer y escribir memoria, no se puede impedir la trampa en línea en juegos FPS
El escaneo de firmas es la parte más adictiva de la ingeniería inversa. Hacer una lista de firmas y escribir bindings para un lenguaje de scripting para llamar punteros a función es la base sobre la que funcionan muchas plataformas de mods de terceros
Las trampas en juegos multijugador son un problema enorme y destruyen la confianza en los principales FPS. Como jugador de CS, jugó por un tiempo a los nuevos juegos de CoD, pero ya no hay ningún juego que pueda recomendar por culpa de las trampas. Juegos como Escape From Tarkov permiten que, debido a las trampas, te roben hasta el cañón del arma y te fuercen a cerrar el juego o la PC. El modo competitivo de Counter-Strike funciona como una sección de anuncios de trampas dentro del juego. Valorant, con su antitrampas intrusivo, es mejor que otros juegos, pero no está tan limpio como afirman sus fans. La industria del matchmaking privado de Counter-Strike se construyó prometiendo antitrampas y juego a nivel profesional con antitrampas como base