|
El Comienzo del Mal Hace algunos meses, leyendo la q2 servers list -una lista de correo para gente que administra servidores- vi un mail de un tipo que reclamaba airosamente de que hab�a visto jugadores en su servidor haciendo cosas que normalmente no se pueden hacer. Obtuvo varias respuestas acerca de la existencia de un programa llamado ZBot, que es un "aiming cheat". Aiming Cheat quiere decir Trampa para Apuntar. Pues bien, esto puede ser entretenido, dije para m�. Hice un par de b�squedas, y ah� estaba. Baj� la cosa del demonio. La hice andar, me conect� al Coliseo con un nombre nuevo -no recuerdo, pero era algo as� como BadAss- y Pum!. Incre�ble. Te dedicas a pasear al medio de cualquier nivel con una rail y escuchas como mueren tipos. Incluso no necesitas mirarlos, s�lo ves que el arma realiza el movimiento del disparo y el tiro sale hacia atr�s. Me re� mucho de ver como ca�an los pajaritos, pero al final de la segunda etapa la cosa se vuelve sabor agrio. Es de risa, pero aburre. Simp�tico, y lo guard� al ba�l de los recuerdos. Pensando un poco m�s -a veces hay que pensar tambi�n- llegu� a la conclusi�n de que esto pod�a ser una verdadera molestia para quienes jugamos Quake2. Me dediqu� a investigar por ah� y supe del funcionamiento del artilugio �ste. Funcionamiento Existen varios tipos de bots. Est�n los server side bots, que sirven para entrenar, o como una suerte de "vigilantes" para ciertos servidores (tenemos Eraser, CR), est�n los client side bots, que hacen las veces de un programa cliente que juega de verdad en un servidor, pero no es controlada por un humano (Pandora puede ser un buen ejemplo) y est�n los Client Side Proxy Bots. �stos sirven para hacer trampa. Estos programas funcionan como intermediario entre el servidor y el cliente (en este caso el juego). Este proxy intercepta los mensajes del servidor, responde autom�ticamente ante ciertos eventos y el resto se los env�a normalmente al cliente. �Confuso? No es tan complicado. En una sesi�n normal de Quake, el servidor le env�a al cliente toda la informaci�n de lo que ocurre alrededor. Cuantas entidades andan por ah�, hacia que parte apunta -vector-, direcci�n, velocidad, que arma lleva; el cliente le env�a de vuelta al servidor nuestras acciones tambi�n. Hacia donde nos movemos, aceleraci�n, facing -donde miras-, etc; y si has disparado o no. Esto es pura magia y gozo, donde todos nos enfrentamos unos a otros felices de ser convertidos en pulpa. Ac� es donde entra el proxy. En una sesi�n usando uno de estos proxy bots, es el proxy el que se conecta al servidor. Entonces, el cliente se conecta al proxy -��qu�!?- y se inicia una sesi�n. Entonces, el servidor le env�a los mensajes al proxy y el proxy los redirige al cliente. Cuando se activa la trampa, el proxy interpreta los mensajes, y si tiene a una entidad cerca de su FOV (Field Of Vision, Campo de Visi�n), enga�a al server dici�ndole "Hey, server, estoy mirando directamente a este pelao", y luego "Hey, server, he disparao". El server calcula el vector desde el punto donde el proxy le dijo que estaba mirando y claro, al momento de disparar, el bicho le ha acertado con un rail justo entre las cejas al pobre pelao. En el siguiente frame, el proxy le dice al servidor que est� mirando justo donde estaba mirando antes de matar al infortunado pelado. La gracia de todo esto es que el tiempo entre un frame y otro es de unas pocas d�cimas de segundo, por lo que se produce el efecto de que el jugador que usa el bot disparase por la espalda. Soluci�n Dado el extra�o comportamiento del cliente cuando se est� usando el ZBot, el servidor puede detectar cuando un jugador est� usando un proxy bot. Afortunadamente, Lithium incorpor� esta detecci�n como parte de sus caracter�sticas. O sea, una soluci�n simple ser�a instalar Lithium. Hay otra soluci�n algo m�s complicada. El c�digo de detecci�n y expulsi�n de jugadores usando ZBot est� disponible, por lo que un administrador machaca puede bajar las fuentes desde Id Software, agarrar un Visual C++ 5.0 y recompilar el server con el c�digo de detecci�n incorporado. Esto lo considero como un buen remedio. Ahora, hay que considerar cual c�digo de protecci�n usar. Hay algunos que usan la caracter�stica del bot que no procesa comandos con "!" al principio, otra que se basa en el puerto -patea jugadores con zBot realmente est�pidos, que al parecer son mayor�a- y la m�s complicada es evaluar los paquetes que el cliente env�a. Bu�h, no he investigado m�s a fondo en esto. En cuanto tenga m�s informaci�n la publico. Leus[DS] | ||||
| Links | ||||