Buenos días!. Me pongo a responder:
#136 Hoy en día, en juegos con largo recorrido es fácil porque la gente lo ha hecho tantas veces q hasta en github tienes código. Te pondré un ejemplo de modo externo, de modo interno es parecido:
Supongamos que ya con cheat engine o similares hemos encontrado en que posición de memoria están los jugadores y sus posiciones o simplemente en internet las han publicado y yo hago uso de ello:
Hago un bucle for cada 16 ms (alrededor de 60 FPS) en un programa para recorrer las posiciones de memoria de esos jugadores.
Una vez las tengo, compruebo lo básico. La vida del jugador (posición de memoria) y el equipo (posición de memoria) y ya depende del juego ciertas cosas más. Si el jugador está vivo y está en el otro equipo, voy a dibujarlo.
¿Cómo lo dibujo? Lo más sencillo es dibujar como dibuja el propio engine. Esta función es la que en el mundo de los desarrolladores de videojuegos se denomina WorldToScreen. Es decir, a partir de una posición en 3 dimensiones (X,Y,Z) dibujar una posición en 2 dimensiones (X,Y) que es mi pantalla. Si se donde está esa función y encima conozco el engine y se como se dibuja simplemente la replico. De esa manera, simplemente compruebo si la posición está dentro de mis límites de pantalla y dibujo lo q sea. Si la posición está fuera de la pantalla (por ejemplo, detrás mía), ya si quiero decido si dibujar algo.
Si el engine no es conocido, hay que tirar un poco de matemáticas y trigonometría.
Ahora la pregunta, como pinto? Cualquier lenguaje de programación te deja pintar en 2D en una pantalla invisible, pero esto es lento (porque estamos pintando cada frame y pintamos por software). Lo mejor es pintar en OpenGL o pintar en D2D/D3D que son muchos más rápidos porque pintamos por hardware. Para esto, tiramos de la SDK de ambos. Hoy en día, existen cientos de ejemplos en github y similares de pintar líneas, texto, etc en github.
Espero que la explicación más o menos se haya entendido.
#137 Va así. Es un poco muy coñazo depende del juego. Debuguear hoy en día con los anticheat es imposible, es la mejor manera de comerte un ban. Digamos que hay 3 pasos. Uno es conseguir leer el juego (saltarse el anticheat), el segundo es que no detecte lo que estás haciendo y el tercero que lo que estás haciendo funcione.
#138 Lo que quería decir es exactamente lo que has dicho. Q hoy en día VAC no puede detectarme (no se mañana), pero overwatch sí.
Para los 2 primeros, lo más cómodo es hacerlo en juegos f2p que use el mismo anticheat. Para el tecero pues uno se inventa sus métodos de debug (escribir en archivos y demás).
De todas formas, estamos en lo mismo. Depende del juego y del engine, ya existe mucha información de los engines más usados (UE4, Unity, Source, etc.)
#139 Me parece fatal. Desgana, etc. Desconozco si tiene algún anticheat, pero por lo que me comentas, no. Mi CV a EA no serviría de nada porque hay anticheats que se venden ya y además hay gente muchíiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimo mejor preparada que yo. Yo en este mundo estoy por debajo de la media.
#142 El secreto para mi va encaminado en 2 sentidos. Que el anticheat sea desarrollado por la propia compañía que desarrolla el videojuego (Warden de blizzard o Riot con el lol) y la seguridad del sistema operativo. Si yo desarrollo el videojuego, puedo controlar que cosas no son humanas. Battleye y EAC al ser externos, funcionan de 2 maneras que me parece que están bien, que son la de impedir acceder al juego y la de detectar cosas sospechosas en el PC, pero es necesario también detectar cosas inhumanas. Microsoft en este sentido está dando buenos pasos. Hace años era muy fácil esconder un rootkit. Si yo puedo esconder un virus, imagina un cheat. Cada vez que se va actualizando Windows, Patchguard protege más y más y cada vez es más difícil esconderlo. Además, lo mismo con el modo driver, si hago un driver y no lo firmo, no puedo usarlo. Antes firmar era cuestión de dinero, con Windows 10 ya tienes que tener una empresa. Si yo no puedo esconder un virus, no puedo esconder un cheat.
#144 Llegará con la profesionalización. Es decir, yo puedo doparme para echar una pachanga con los amigos al fútbol, pero si juego en la liga, la cosa es más seria.
#146 Pedazo de anticheat. Se nota que Blizzard hace las cosas bien. Vais a encontraros muy pocos cheaters en Overwatch.
#156 El problema es de desgana de los desarrolladores de juego (más que desgana, presupuestos). Aparte de que los S.O. son abiertos. En consolas no tienes este problema. Como contesté a #142, el camino es que el desarrollador del videojuego proteja su juego, como Warden hace con blizzard y que el S.O. cada vez sea un sistema más protegido. Por supuesto, la realidad es que la gente está dispuesta a pagar por tener ventajas. Y no solo por ganar un torneo de miles de dólares.