[Discusión] client-side + análisis remoto
#1
Que opinan de este método?, creo que debe ser algo similar a como trabaja VAC, desconozco si hay algún otro anticheat que haga algo parecido.

El cliente funciona como tendría que funcionar cualquier AC client-side, con la diferencia de que se envían datos al servidor remoto para su análisis y de preferencia se esta conectado/vinculado a algún servicio (google account, facebook, steam, numero de cel, etc)

Ventajas:
- Anti-Patching mas efectivo al tener validación remota
- Detección de cheats conocidos siempre actualizado (public killer)
- Posibilidad de implementar bigdata+AI cuando hayan suficientes datos
- Imposible de hacer emuladores (se necesita una cuenta)
- Duelen mas los bans, dependiendo del tipo de cuenta y limitaciones (Ej: no permitir conectar a cuentas sin actividad o recientemente creados, o usar algún servicio pago)

Contras:
no puedo pensar en nada xd, comenten y voy actualizando
Responder
#2
Desventajas:
- Te meto client1.dll y hw1.dll y fuiste.
- Agarro donde hace las validaciones y paso esa funcion a otro address cambiando el call y ya puedo modificar a mi gusto.
- Si mapeo manual no se como pensas detectar una vez dentro.
- Si no tenes un buen anti debugger te desamblo esa partecita donde se utiliza send y fuistes te envio todo bytes q na q ve.

Sirve re bien lo del logeo este de cuentas, @Paul Rayden quiso hacerlo pero no le salio.
Responder
#3
(03/11/2018, 09:26 PM)Destro escribió: El cliente funciona como tendría que funcionar cualquier AC client-side, con la diferencia de que se envían datos al servidor remoto para su análisis y de preferencia se esta conectado/vinculado a algún servicio (google account, facebook, steam, numero de cel, etc)

El juego de por sí debería funcionar tal cual funciona, enviar datos de Facebook, Google Account, etc, ya es algo intrusivo porque por default el juego no necesita absolutamente ninguno de esos datos.
Suficiente con que el Injected sacaba screen, a veces se bugeaba y te mandaba una foto del escritorio de Windows...
Lo de la cuenta de Steam, te lo tomo, pero el tema es que muchas personas no usan Steam...

(03/11/2018, 09:26 PM)Destro escribió: Ventajas:
- Anti-Patching mas efectivo al tener validación remota

Hice un Thread ayer sobre métodos Anti-Patching, y para ahorrarte laburos podrías hacer el Doble Mapeo de Módulos con Acceso Protegido.

(03/11/2018, 09:26 PM)Destro escribió: - Detección de cheats conocidos siempre actualizado (public killer)

Está bueno, de esa manera si se distribuyen los Cheats no va a haber chance de que funcionen.

(03/11/2018, 09:26 PM)Destro escribió: - Posibilidad de implementar bigdata+AI cuando hayan suficientes datos

No entendi, me explicas?

(03/11/2018, 09:26 PM)Destro escribió: - Imposible de hacer emuladores (se necesita una cuenta)

Lo que dije más arriba ... cambiaría esto por un simple Challenge como hace el C-D o el Injected ...

(03/11/2018, 09:26 PM)Destro escribió: - Duelen mas los bans, dependiendo del tipo de cuenta y limitaciones

Horrible, pésimo y asqueroso, bloquear a un player que utilizó algún Cheat por un tiempo indefinido es algo que estoy TOTALMENTE EN CONTRA, porque tu trabajo debería ser el de BLOQUEAR CHEATS y NO RESTRIGIR A PLAYERS DEL SERVIDOR.
Caso contrario estarías matando al juego (como el pt de payas hizo) sin darle la posibilidad a nadie de volver a jugar limpiamente.

(03/11/2018, 10:41 PM)Pan Bimbo (? escribió: - Te meto client1.dll y hw1.dll y fuiste.
- Si mapeo manual no se como pensas detectar una vez dentro.

Escucha una cosa cara de down, ya que siempre comentas queriendo rebajar las ideas ...

1) Te hace doble mapeo de módulos y fuiste.
2) Te empaqueta con un código polimórfico el hw y el client (como si el juego fuese un installer) y fuiste porque no sabés cómo van a estar armados los files.

(03/11/2018, 10:41 PM)Pan Bimbo (? escribió: - Agarro donde hace las validaciones y paso esa funcion a otro address cambiando el call y ya puedo modificar a mi gusto.
- Si no tenes un buen anti debugger te desamblo esa partecita donde se utiliza send y fuistes te envio todo bytes q na q ve.

Te la empaqueta con VMProtect y ni idea vas a tener del desamblado porque todo el código va a estar virtualizado por 5 o 10 o 50 máquinas de virtualización.
(Falta que ahora digas que si para contradecirme y ya prosigo a cagarme de risa de nuevo) ...
[Discord]: Rainnegan#7610

Código PHP:
new MySQL[][] = { "cincoya_datasplu""ahorateneslapw123""cincoya.net" 
Responder
#4
(03/11/2018, 10:58 PM)Cr3470r escribió:
(03/11/2018, 09:26 PM)Destro escribió: El cliente funciona como tendría que funcionar cualquier AC client-side, con la diferencia de que se envían datos al servidor remoto para su análisis y de preferencia se esta conectado/vinculado a algún servicio (google account, facebook, steam, numero de cel, etc)

El juego de por sí debería funcionar tal cual funciona, enviar datos de Facebook, Google Account, etc, ya es algo intrusivo porque por default el juego no necesita absolutamente ninguno de esos datos.
Suficiente con que el Injected sacaba screen, a veces se bugeaba y te mandaba una foto del escritorio de Windows...
Lo de la cuenta de Steam, te lo tomo, pero el tema es que muchas personas no usan Steam...

(03/11/2018, 09:26 PM)Destro escribió: Ventajas:
- Anti-Patching mas efectivo al tener validación remota

Hice un Thread ayer sobre métodos Anti-Patching, y para ahorrarte laburos podrías hacer el Doble Mapeo de Módulos con Acceso Protegido.

(03/11/2018, 09:26 PM)Destro escribió: - Detección de cheats conocidos siempre actualizado (public killer)

Está bueno, de esa manera si se distribuyen los Cheats no va a haber chance de que funcionen.

(03/11/2018, 09:26 PM)Destro escribió: - Posibilidad de implementar bigdata+AI cuando hayan suficientes datos

No entendi, me explicas?

(03/11/2018, 09:26 PM)Destro escribió: - Imposible de hacer emuladores (se necesita una cuenta)

Lo que dije más arriba ... cambiaría esto por un simple Challenge como hace el C-D o el Injected ...

(03/11/2018, 09:26 PM)Destro escribió: - Duelen mas los bans, dependiendo del tipo de cuenta y limitaciones

Horrible, pésimo y asqueroso, bloquear a un player que utilizó algún Cheat por un tiempo indefinido es algo que estoy TOTALMENTE EN CONTRA, porque tu trabajo debería ser el de BLOQUEAR CHEATS y NO RESTRIGIR A PLAYERS DEL SERVIDOR.
Caso contrario estarías matando al juego (como el pt de payas hizo) sin darle la posibilidad a nadie de volver a jugar limpiamente.

(03/11/2018, 10:41 PM)Pan Bimbo (? escribió: - Te meto client1.dll y hw1.dll y fuiste.
- Si mapeo manual no se como pensas detectar una vez dentro.

Escucha una cosa cara de down, ya que siempre comentas queriendo rebajar las ideas ...

1) Te hace doble mapeo de módulos y fuiste.
2) Te empaqueta con un código polimórfico el hw y el client (como si el juego fuese un installer) y fuiste porque no sabés cómo van a estar armados los files.

(03/11/2018, 10:41 PM)Pan Bimbo (? escribió: - Agarro donde hace las validaciones y paso esa funcion a otro address cambiando el call y ya puedo modificar a mi gusto.
- Si no tenes un buen anti debugger te desamblo esa partecita donde se utiliza send y fuistes te envio todo bytes q na q ve.

Te la empaqueta con VMProtect y ni idea vas a tener del desamblado porque todo el código va a estar virtualizado por 5 o 10 o 50 máquinas de virtualización.
(Falta que ahora digas que si para contradecirme y ya prosigo a cagarme de risa de nuevo) ...

Llegas a meterle publicidad y sólo me basta con enviarle un correo a vmprotect para decirle que estas usando sus productos ilegalmente y que no tenes licencia Guiño, pagar no creo que lo hagas.

y no se como se supone que vas a doblemapear los modulos xq hay que redireccionar los calls imports exports, no tenes chance, reverendo laburo y siempre hay metodos para pasar las cosas, solo hay que estar alpedo y tirarse una semana.

Y no rebajo ideas solo digo como se puede sobrepasar para que alguien mas piense como parchear esos "sobrepasos".
Responder
#5
(03/11/2018, 11:26 PM)Pan Bimbo (? escribió: Llegas a meterle publicidad y sólo me basta con enviarle un correo a vmprotect para decirle que estas usando sus productos ilegalmente y que no tenes licencia Guiño, pagar no creo que lo hagas.

y no se como se supone que vas a doblemapear los modulos xq hay que redireccionar los calls imports exports, no tenes chance, reverendo laburo y siempre hay metodos para pasar las cosas, solo hay que estar alpedo y tirarse una semana.

Si él le quiere meter publicidad para mantener su proyecto, lo puede hacer, yo lo haría, ahora, de acá a que los de VMProtect hagan algo ...
[Discord]: Rainnegan#7610

Código PHP:
new MySQL[][] = { "cincoya_datasplu""ahorateneslapw123""cincoya.net" 
Responder
#6
(03/11/2018, 11:26 PM)Pan Bimbo (? escribió: reverendo laburo y siempre hay metodos para pasar las cosas, solo hay que estar alpedo y tirarse una semana.

No me voy a meter en el quilombo entre ustedes dos y tampoco me interesa, solo quiero remarcar esa frase, porque creo yo, desde mi punto de vista, es justamente a donde se debe apuntar cuando se hace un anti-cheat, el objetivo final es complicar tanto las cosas que al fin y al cabo la otra persona no tenga ganas de seguir.



ON TOPIC: Hay una cosa que no logro entender porque no la estoy pudiendo ver en mi cabeza, pero que evita que una persona con conocimiento, le haga ingeniería inversa al cliente del AC y modifique las cosas de cuando se conecta al servidor, digamos, para emular un servidor local o cosas así, es decir, lo único que se me ocurre, es que el AC servidor, cuando intenta obtener alguna respuesta del cliente que no sabe responder, lo expulsa del servidor, pero que se yo, no hay maneras fáciles de burlar ese tipo de cosas, expliquen por favor.
Responder
#7
(04/11/2018, 01:02 AM)KISKE escribió:
(03/11/2018, 11:26 PM)Pan Bimbo (? escribió: reverendo laburo y siempre hay metodos para pasar las cosas, solo hay que estar alpedo y tirarse una semana.

No me voy a meter en el quilombo entre ustedes dos y tampoco me interesa, solo quiero remarcar esa frase, porque creo yo, desde mi punto de vista, es justamente a donde se debe apuntar cuando se hace un anti-cheat, el objetivo final es complicar tanto las cosas que al fin y al cabo la otra persona no tenga ganas de seguir.

Quilombo de mi parte no hay, sólo estoy debatiendo sobre el tema ...
Y concuerdo con vos, por eso yo decía también que aunque en el modo usuario (ring3) no sean tan efectivas las cosas y siempre haya un bypass, se puede cumplicar todo para el Cheater, y más si todo está protegido con VMProtect o con algún otro buen packer ...

S2
[Discord]: Rainnegan#7610

Código PHP:
new MySQL[][] = { "cincoya_datasplu""ahorateneslapw123""cincoya.net" 
Responder
#8
(03/11/2018, 10:58 PM)Cr3470r escribió:
(03/11/2018, 09:26 PM)Destro escribió: - Posibilidad de implementar bigdata+AI cuando hayan suficientes datos
No entendi, me explicas?
Eso es solo posible cuando esta involucrada una gran empresa con muchos recursos. Como el servidor-AC se comunica con el game-client y el game-server, puede obtener suficientes datos para analizarlo con una AI en busca de patrones para detectar cheaters.

(03/11/2018, 10:58 PM)Cr3470r escribió:
(03/11/2018, 09:26 PM)Destro escribió: - Duelen mas los bans, dependiendo del tipo de cuenta y limitaciones

Horrible, pésimo y asqueroso, bloquear a un player que utilizó algún Cheat por un tiempo indefinido es algo que estoy TOTALMENTE EN CONTRA, porque tu trabajo debería ser el de BLOQUEAR CHEATS y NO RESTRIGIR A PLAYERS DEL SERVIDOR.
Caso contrario estarías matando al juego (como el pt de payas hizo) sin darle la posibilidad a nadie de volver a jugar limpiamente.
Ami tampoco me gusta lo que hace payas. Preferiría que los bans no sean para bloquear de por vida al cheater, sino para crear un historial y reputación (con unos 3~10 días son suficientes), después cada uno hace lo que quiera en su servidor.


(04/11/2018, 01:02 AM)KISKE escribió: ON TOPIC: Hay una cosa que no logro entender porque no la estoy pudiendo ver en mi cabeza, pero que evita que una persona con conocimiento, le haga ingeniería inversa al cliente del AC y modifique las cosas de cuando se conecta al servidor, digamos, para emular un servidor local o cosas así, es decir, lo único que se me ocurre, es que el AC servidor, cuando intenta obtener alguna respuesta del cliente que no sabe responder, lo expulsa del servidor, pero que se yo, no hay maneras fáciles de burlar ese tipo de cosas, expliquen por favor.
[Imagen: 4f5899fae0.jpg]
creo que con esta imagen ya te imaginas porque es muy difícil hacer un emulador

- Ofuscación en el cliente
- Validación entre el client y game-server
- Validación entre el client y AC-server
Responder
#9
Suponiendo que el servidor AC es distinto al servidor gameserver, que me impide montar uno fake y redireccionar los paquetes hacia el fakeserver con cualquier spoofer, así me responde siempre que está todo ok y juego normal. Es más, haciendo eso ya puedo cobrar una suscripción a mi fakeserver y cualquiera puede meter lo que sea.
[Imagen: paypalqr.png]
Responder
#10
Teniendo una conexión segura ( HTTPS / websocket SSH/TLS ), ya con eso solo te queda meterte con el cliente ofuscado para saber que se esta trasmitiendo.

1. game-client se conecta al game-server
2. game-server se comunica al server-AC para generarle un keycode al game-client
3. server-AC enviá el keycode al game-client y game-server
4. game-client enviá el keycode al game-server, si no coinciden lo kickea

o

1. game-client se conecta al game-server
2. game-server generarle un keycode para el game-client y lo envia al server-AC
3. server-AC enviá el keycode al game-client
4. game-client enviá el keycode al game-server, si no coinciden lo kickea
Responder
#11
Aunque sea conexión segura, en mi PC tengo las claves para descifrarlo... el https solo protege de ataques MitM, pero el cliente ve texto plano siempre. Cuestión de interceptarlo antes del cifrado, o buscar las claves y decifrarlo a mano, nada complicado.
[Imagen: paypalqr.png]
Responder
#12
Aunque no creo que sea tan fácil como decís (siempre se puede hacer algo para dificultar las cosas), pero no es algo imposible.
Igualmente, suponiendo que lograste descifrar la comunicación, no te sirve de nada sin hacerle reverse a casi todo el cliente-AC para saber exactamente que tenes que enviarle al server-AC (nada imposible, pero tremendo dolor de cabeza).

obviamente lo que se enviá y recibe no pueden ser textos tipo: "[validate-hash-dll]­ vgui2.dll a2f1e3a4fae1f5ea1f135ea3f1", se tiene que armar un protocolo en bytes
Responder
#13
Lo del https sí es así de fácil... es todo parte del protocolo, leyendo paquetes DESDE el cliente podés obtener las claves públicas para leer lo que recibís y enviás, lo he hecho antes. Nisiquiera tenés que tocar la app, solo correrla.

Si, pero es cuestión de descifrar el protocolo... eso desgraciadamente es cuestión de tiempo para que se descifre.
[Imagen: paypalqr.png]
Responder
#14
(05/11/2018, 01:39 PM)Neeeeeeeeeel.- escribió: Lo del https sí es así de fácil... es todo parte del protocolo, leyendo paquetes DESDE el cliente podés obtener las claves públicas para leer lo que recibís y enviás, lo he hecho antes. Nisiquiera tenés que tocar la app, solo correrla.

Si, pero es cuestión de descifrar el protocolo... eso desgraciadamente es cuestión de tiempo para que se descifre.

Excepto que todo se haga por timestamps como lo hace el protocolo del Injected actual.
Si el timestamp que te mando en un paquete de datos tardó más de lo que debería haber tardado, es porque fué modificado o algo pasó.
(Este método es el responsable del por qué a partir de la 12.1 no se pudieron hacer más emuladores).
[Discord]: Rainnegan#7610

Código PHP:
new MySQL[][] = { "cincoya_datasplu""ahorateneslapw123""cincoya.net" 
Responder
#15
(05/11/2018, 07:41 PM)Cr3470r escribió: Excepto que todo se haga por timestamps como lo hace el protocolo del Injected actual.
Si el timestamp que te mando en un paquete de datos tardó más de lo que debería haber tardado, es porque fué modificado o algo pasó.
(Este método es el responsable del por qué a partir de la 12.1 no se pudieron hacer más emuladores).
Estamos hablando de diferencias en segundos o en ms?
[Imagen: paypalqr.png]
Responder
#16
(06/11/2018, 10:17 AM)Neeeeeeeeeel.- escribió:
(05/11/2018, 07:41 PM)Cr3470r escribió: Excepto que todo se haga por timestamps como lo hace el protocolo del Injected actual.
Si el timestamp que te mando en un paquete de datos tardó más de lo que debería haber tardado, es porque fué modificado o algo pasó.
(Este método es el responsable del por qué a partir de la 12.1 no se pudieron hacer más emuladores).
Estamos hablando de diferencias en segundos o en ms?

Msec, o directamente podría poner el timestamp en el paquete a enviar y encriptado.

[Hora actual + ip del server + ip del player] = Enviar challenge Client->Server

Recibir challenge (Servidor) : [Hora actual + ip del server + ip del player] = Armar paquete

Desencriptar challenge del cliente y hacer comparaciones entre el challenge del servidor y el challenge recibido, si hay alguna diferencia, nos vemos.
[Discord]: Rainnegan#7610

Código PHP:
new MySQL[][] = { "cincoya_datasplu""ahorateneslapw123""cincoya.net" 
Responder
#17
La única forma infalible es desde el servidor comprobar que todos los movimientos de cada jugador es válido.

Si jugás ajedrez online no vas a poder modificar los paquetes, por ejemplo, para mover la torre en una posición no reglamentada ya que están las validaciones server-side.
Doy ejemplo con el ajedrez porque he visto que todas o la mayoría de librerías tienen su lado del servidor con validaciones.

No sé como afectará o se manejará el hecho de tener plugins que modifiquen la jugabilidad original pero para un servidor sin plugins extraños servirá.
Supongo que esa es la razón por la que incluso en CS:GO no están implementadas las validaciones del lado del servidor. Aunque en GTA PS3 tampoco está implementado y la jugabilidad es siempre la misma, así que no sé que les impide hacerlo salvo reducir complejidad y cpu pero son razones muy malas para no hacerlo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)