He sido dev de cheats y contesto a vuestras preguntas

Soltrac

No sabía si poner esto en FEDA, en Offtopic, pero bueno, creo que este es el mejor sitio.

Llevo muchos años en MV y siempre me ha apetecido contar este lado "oscuro" de mi vida, para que la gente pudiera ver entender como funciona un cheat, el negocio que existe detrás de ello o temas puramente tecnológicos (engines, lenguajes de programación, software, etc.) . Me he lanzado a hacerlo porque viendo el foro de pubg, he visto que la gente considera indetectables ciertas ideas de cheats que realmente no tienen por qué serlas. Allí un user por privado me ha animado a hacer el AMA así que aquí estoy.

Antes de nada, pongo en antecedentes a la gente. Me he críado con un PC desde que tenía 5 años (ya casi toco los 35). Empecé programando en BASIC con los típicos programas para críos. Visto que me gustaba y se me daba medio bien, decidí que me quería dedicar profesionalmente a esto y estudié ingeniería informática. He trabajado y sigo trabajando en desarrollar software comercial, pero mi pasión por la informática es el hacking por un lado y la ingeniería inversa por otro.

En MV, con lo poquito que se, colaboré en threads épicos como Eurovisión o las tarjetas bankia. Por mi cuenta, he desarrollado bots que juegan al poker online (mal porque no soy muy bueno desarrollando IA), creadores de cuentas de email, etc. Siempre he intentado pillar trabajos de cosas más de este tipo. Un día, me surgió la oportunidad de trabajar para alguien que quería usar un cheat para un determinado juego y vi que había negocio en ello, así que me puse manos a la obra. Hoy por hoy, soy un pésimo reverse engineer, pero soy algo mejor en otras partes.

No se si de este AMA va a salir algo positivo, porque en una comunidad de jugadores, contar que uno ha dedicado un poco de su vida a hacer algo que mucha gente odia es un problema, pero bueno, quiero pensar que puede salir algo interesante. Podeis preguntar sobre lo que queráis, ética, información sobre anticheats, sobre protecciones de juego en particular, sobre un engine de videojuegos en particular o mi opinión de lo que sea. Entiendo que por la naturaleza del tema es posible que no querais hacer ciertas preguntas para que no os miren "raro". En este caso, podeis hacerlas por privado, eso sí, las responderé en público para que el thread tenga vida (y mantendré vuestro anonimato of course).

Lo que si que os adelanto. No me dedico hoy en día a esto, no uso personalmente cheats (salvo cuando he tenido que testear lo que he tenido que desarrollar). Podeis obviar preguntas del tipo donde puedo descargar gratis un cheat para X (no lo hagais, acabareis baneados) y podeis obviar también ofrecerme dinero para desarrollar un cheat para Y (no me dedico a esto ahora mismo como dije).

Que empiece el show.

53
B

Para que cheat trabajaste y por que no lo haces actualmente con lo rentable que es y será en el futuro?

1 respuesta
1 comentario moderado
Soltrac

#2 Propio, no para ninguna de las grandes. Siempre ha sido a pequeña escala. Ahora mismo gano más dinero con mi trabajo actual que con lo que se podía ganar de aquella manera. Pero sí, es algo que siempre puede estar ahí por si hiciera falta, el saber no ocupa lugar.

1 respuesta
Ridote

Explica también un poco la metodología para empezar a hacer un cheat. Por ejemplo, cómo detectas por dónde podrías explotar una vulnerabilidad del juego y cómo procedes a ello. Cómo hacen por ejemplo los wallhacks para CoD o cosas del estilo, estaría interesante saberlo. Realmente el servidor te envía la información de todos los jugadores o tienes que de alguna manera "hackear" el servidor.

1 respuesta
1 comentario moderado
BrKnChaiN

No has pensado (o pensanste en su momento) en hacer el bien al mundo y trabajar desarrollando cheats para luego irte a la compañia del juego a presentarle tu plan anticheat para ganar dinero y limpiar el mundo videojueguil de impresentables que defenestran la experiencia de los demas usuarios con semejante falta de respeto?

4 1 respuesta
ESL_Kaiser

Dices que los cheats son todos detectables., pero en muchísimos juegos, de ahora y de antes sigue habiendo un montón de personajes con cheats, aimbot, peonzas, wallhack, speedhack etc, como es que no les banean/detectan ?

1 respuesta
Fyn4r

Pones ese tipo de cosas en el CV de alguna forma?

1 respuesta
Soltrac

#5 Vamos a poner 2 ejemplos en el caso de un FPS como el COD. Lo que sería un ESP (dibujar cosas sobre la pantalla) y un Aimbot (apuntar automáticamente).

Para el primer caso, si queremos dibujar donde está un jugador y dibujarlo en pantalla, necesitamos saber en que posición del mapa está (alto, ancho y profundo X Y Z). Esto, aunque no lo creamos, lo sabemos porque el servidor nos lo envía. Lo que pasa es que el cliente no lo dibuja en pantalla (si está detrás de un muro), pero realmente sabemos donde está porque el servidor nos lo envía. Si sabemos buscar en la memoria de nuestro juego (y sí sabemos porque los sistemas operativos no los permiten), simplemente tenemos que dibujar en pantalla una proyección de la posición del jugador (X,Y,Z) sobre el alto y ancho de nuestra pantalla, es decir, dibujar al jugador aunque esté detrás de un muro.

Para el aimbot es parecido. Si sabemos donde está nuestro jugador, donde apunta nuestro jugador y sabemos donde está el jugador contrario. Podemos calcular matemáticamente cuanto debemos mover el crosshair para apuntar al jugador objetivo.

Un juego donde es imposible hacer un ESP es el LOL porque el servidor no envía al cliente la posición del jugador si está en la niebla, solo se la envía cuando está visible. En juegos FPS esto es más complicado porque si se hiciera así, podríamos tener problemas de lag de que un jugador se muestre un poco más tarde de lo que nos interesa.

13 1 respuesta
Soltrac

#7 Existen ya varias compañías que lo hacen, y te aseguro que mucho mejor de lo que yo podría hacerlo. Yo no soy un gurú, más bien, soy perrillo, hay gente muy buena tanto en el lado de los anticheat grandes (tipo battleye o easyanticheat) como en el lado de los cheats.

Enkripted

¿Como rentabilizas un cheat a nivel empresarial? Es decir ¿cual es el proceso de negocio?

1 respuesta
Ridote

#10 Que me dices de cheats como el de usar en el LOL los hechizos de invocador sin reuso? Tienes idea de qué carajos hizo mal rito para que eso pasase? Porque ahí en teoría envías el servidor tus acciones pero el servidor podrá rechazarlas, o no va así?

1 comentario moderado
Soltrac

#8 Es un juego del gato y del ratón. Depende muchísimo del anticheat que usen. La realidad es que por ponerte un ejemplo, es muy difícil hoy en día que te pille VAC, (solo te van a pillar si te revisan personalmente por overwatch), por el tipo de anticheat que es que otros tipo Battleye o EasyAnticheat. Caso aparte es Warden de Blizzard, ese para mi es lo mejor que hay hoy en día como anticheat.

Lo q quiero decir, es que vas a encontrar más cheaters jugando al CSGO que al Overwatch. Esto es así. Depende muchísimo del anticheat que use el juego.

#9 Depende de al tipo que trabajo que busque. Yo intento quitar el lado ético de las cosas. Personalmente, si he puesto en CV que programo bots para poker, pero lo de los cheats no lo he puesto todavía en ningún caso.

siler89

Se utiliza un lenguaje para cada anticheat o uno para todos?

1 respuesta
Soltrac

#12 Ese es uno de los motivos por los que no me dedico a hacer cheats a nivel empresarial y siempre ha sido trabajo personal a nivel freelance. Cuanto más grande sea tu cheat, antes va a ser detectado y necesitas mucho esfuerzo para que un cheat de pago sea indetectable. Yo personalmente, creo que podría conseguirlo con VAC durante un tiempo, pero no podría con Battleye o EasyAnticheat, me ganarían siempre. Ya no hablemos de ejemplos como el del LOL que ganan millones en juicios.

Cada uno creo que tiene que reconocer sus límites y el mío es que no soy tan bueno.

1 respuesta
Apo_powa

Lo de "buscar en la memoria de nuestro juego", no se supone que eso debería estar encriptado de alguna forma para que no se pueda acceder?

Hablo desde el desconocimiento, como los programas de codigo abierto y cerrado, los que son cerrados tienen que tener algún tipo de protección para que no puedas ver como esta hecho y copiarlo no? Con esto no pasa lo mismo? Hay alguna vulnerabilidad que comparten y peta por ahí?

Vuelvo a recordar que hablo desde el desconocimiento total.

2 respuestas
Soltrac

#16 Para Unity, lo más cómodo es .NET porque Unity es .NET.

Para los demás, como prefieras. o .NET o tirar de C, C++, etc. A mi me encanta .NET, pero C/C++ es muchísimo más rápido, así que fuera de Unity, tiro de C++.

B

Pero demuestra que eres un experto y no como otro usuario que hacia cosas tan simples como "Trainers".

1 respuesta
Damnedlove

Eres Plastike? :P

Como detectas un cheat chapucero de uno bien hecho?y no me refiero a que uno sea mas cantoso que otro, hablo en como esta programado, analizando las lineas de codigo.

HeXaN

#20 ¿Simples lo dices porque tú también haces trainers o porque piensas que es darle a un botón y ya se hace?

A ver si #1 empieza a dar información específica que si no, pierde bastante interés el tema.

1 respuesta
Soltrac

#18 Niguna pregunta es tonta, eso lo primero. Cuando no sabes programar, no entiendes como funciona la memoria, es normal hacerse estas preguntas, pero te lo explico y creo que lo vas a entender.

Una cosa es el código del programa. Efectivamente, el código del programa puede ir todo lo "encriptado" que quieras, pero llega un momento que el programa tiene que mostrarlo.

Voy a intentar explicarlo de otra manera.... imagina que mi jugador tiene la posición X,Y,Z = 23, 34, 12. Eso puede ir todo lo encriptado que quieras en el código, pero en algún momento tengo que mostrar mi posición porque el juego necesita saberla para saber donde está un jugador y mostrarlo en pantalla. Si yo soy capaz de encontrar donde se guarda la posición de mi jugador en memoria (y esto es fácil en la mayoría de juegos), digamos que la posición de memoria es la 565553, solo tengo que ir preguntándole al juego que hay en la posición de memoria 565553 para saber cual es la posición de mi jugador siempre.

Y la pregunta obvia es....¿por qué no marcamos todo como cheat lo que lea la memoria 565553? Porque los antivirus y ciertos procesos del sistema leen la memoria de los programas para intentar buscar virus. No solo eso, programas legales tipo overwolf, fraps, inyectan dentro de los procesos de juego. Habrían muchísimos falsos positivos.

Luego está eso, la inyección, que es otro método de escribir cheats. En vez de leer memoria, lo que haces es colar tu cheat dentro del proceso del juego y llamas a las funciones del juego. Esto, con engines públicos tipo Unity, UE4, Source, etc. es muy sencillo porque sabes como funciona el engine. Es más complicado con engines propios.

1 2 respuestas
Cryoned

¿nunca tuviste reparos morales al desarrollarlos y venderlos?

1 1 respuesta
Soltrac

#20 Creo que no es necesario mostrar nada....pero es que tampoco se que mostrar. Líneas de código que la mayoría de gente no va a entender? No se, esto es un AMA, podeis pedir lo que queráis.

De todas formas, la diferencia entre un trainer y un cheat de un multijugador es que en el cheat multijugador tienes que vencer al anticheat, pero la esencia es EXACTAMENTE la misma eh? Quiero decir....tú coges un trainer tonto, coges el cheat engine y te bloqueas la vida para que nunca te baje, está guay, pero en multijugador eso no te vale porque la vida del jugador auqnue la bloquees en el cliente, en el servidor te va a bajar. Y no solo eso, te animo a que arranques el pubg y arranques el cheat engine....bueno, mejor no lo hagas porque te va a caer un ban.

#22 Es lo que digo, solo teneis que preguntar específicamente y yo contesto hasta donde sepa....

siler89

Podrías dar algunas guías de referencia que te hayan sido útiles? (teniendo ya una base sólida en programación). Si no puedes pasarlas por aquí, te agradecería que me las pasaras por MP.

1 respuesta
Soltrac

#24 La verdad es que no. Pero no por nada....es simplemente que lo que yo puedo hacer lo puede hacer otro muchísimo mejor. Y si lo va a hacer otro, por qué no yo antes?

Quizás se deba a que aunque soy competitivo y me jode cuando en el lol me matan con un script o un tipo con autoaim en el FPS de turno, nunca he sido lo suficientemente bueno o competitivo para dedicar a los juegos el concepto de esport. No lo se.

Soltrac

#26

La mejor forma de empezar es hacerte el tutorial de cheat engine. Una vez lo tengas, tienes que reproducirlo pero programando tú. Es decir, con la API de Windows, aprender a usar ReadProcessMemory y WriteProcessMemory.

Una vez sepas esto bien, prueba a hacer algo en algún juego offline pero programando tú. Es decir, busca la posición de tu jugador, busca tu vida, auméntala con una aplicación externa, etc.

Después lo mismo pero con assault cube. Assault cube es un FPS sin ningún tipo de anticheat. Existen millones de tutoriales de assault cube en youtube y páginas. Si eres capaz de hacer ESP, autoaim para assault cube, etc, puedes pasar a juegos con anticheat.

El más sencillo es VAC. A partir de ahí, el siguiente nivel es un anticheat kernel tipo EAC o BE. Y ya si todavía tienes ganas y eres capaz de meterle mano a Warden me cuentas como lo has hecho XDDD.

Si eres bueno en .NET, puedes centrarte en Unity. Busca juegos offline en Unity u online pero sin anticheat. Busca en internet como inyectar en unity. Unity es muy muy muy sencillo porque al estar escrito en .NET ver el código fuente del juego es muy fácil.

4 1 respuesta
siler89

#28 Muchísimas gracias! En estos días me pondré a investigar y practicar.

centu

Hubiera matado por saber como se dupeaban items en diablo 2 en su tiempo.

10 1 respuesta