[Videotutoriales] Hacking de juegos (Online/Local, Cheat Engine, OllyDbg...)

Iniciado por blipi, 7 Enero 2014, 02:15 AM

0 Miembros y 4 Visitantes están viendo este tema.

blipi

Videotutoriales de Hacking*

Buenas a todos y ante todo gracias por pasar por este post. Encontraréis links a mis videotutoriales de hacking de juegos (aunque en el canal, hay otras cosas, como programación en general).

Para aquellos impacientes que no desean leer o ir buscando uno a uno, os dejo una lista de reproducción donde añado los capítulos según los voy grabando:
Lista de reproducción: https://www.youtube.com/playlist?list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0

Y mi canal, donde también veréis las novedades:
Canal: http://youtube.es/user/bl1pi

Para los demás, os dejo a continuación una lista de los capítulos con una debida explicación/resumen.
Los links se encuentran debajo de la descripción de cada vídeo.

Si habéis leído hasta aquí, me gustaría puntualizar el término hacking. Aunque voy a nombrarlo así porque es "como se conoce", lo que realmente estamos haciendo es cracking, o, como en la sección que estamos, ingeniería inversa.


Capítulos:

  • 1. Introducción y Cheat Engine | Hacking de juegos

    • En este primer vídeo aprenderemos a usar y a entender como funciona Cheat Engine. Es un programa que nos permite escanear la memoria de otros programas. Dicho de otra forma, Cheat Engine es un programa que dado unos valores (por ejemplo, 100 de vida) que cambian en el tiempo (nos disparan, ahora tenemos 90), nos permite encontrar en que punto (address, dirección de memoria en castellano) se encuentra este valor en el programa/juego.
      Dada la address (a partir de ahora diré address, no dirección) podemos leer el valor actual o bien cambiarlo para nuestra conveniencia (nuestro real objetivo).

      Todo sea dicho, hay ciertas limitaciones, pues "no todas las cosas son hackeables". Para que se entienda, tu puedes hackear/cambiar todo aquello que se encuentra en tu ordenador. Si por ejemplo en el juego que quieres hackear la vida la gestiona el servidor, y no se encuentra en tu juego (cliente), eso no podremos modificarlo. De hacerlo, lo único que cambiariamos sería lo que nosotros vemos, pero en ningún caso el valor real, puesto que no está en tu PC (piensa que es como si tu PC fuera solo una pantalla que muestra valores). En tal caso, hablaremos de "variables" serversided (es decir, en el lado del servidor).
      Veremos más adelante que estrategias podemos tomar para solucionar esto (solucionar no implica "poderlo hackear", pues, de ninguna forma podremos).


    • https://www.youtube.com/watch?v=VJx7MzlTr28&index=1&list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0



  • 2. Punteros en CE | Hacking de juegos


    • En el capítulo anterior trabajamos con variables que, aunque cerremos el juego, al abrirlo de nuevo seguirán en el mismo sitio (address). En este vídeo veremos que no siempre es así, y que hay veces (prácticamente siempre en juegos reales) en que tendremos que trabajar con los llamados "punteros".
      Que es un puntero? Si bien decimos que una variable es algo que contiene un valor (por ejemplo, la "vida" es una variable, de 0 a 100), un puntero será un tipo específico de variable cuyo valor nos lleve a la address de otra variable. Por ejemplo, nos podemos encontrar con que "vida" es dinámica (cada vez cambia de sitio). Deberemos encontrar una variable estática (verde, no cambia, de las del primer vídeo) cuyo valor nos lleve a esta variable "vida". Es decir, en realidad lo que hacemos es encontrar un puntero a vida:
      [ESTÁTICO]: Vida (estático) -> 100
      [DINÁMICO]: Puntero (estático) a vida -> Vida (dinámico) -> 100

      Si os parece muy difícil, mirad el vídeo y seguro que lo entendéis. Sino, postead!


    • https://www.youtube.com/watch?v=nDPxJlOZ-Bc&index=1&list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0



  • 3. Estructuras en CE | Hacking de juegos


    • Veremos en este vídeo que son las estructuras y como identificarlas. Es importante que para entender este vídeo hayamos comprendido a la perfección el anterior capítulo, puesto que las estructuras no son más que un caso particular de los punteros!

      Lo que distingue a las estructuras es que con un solo puntero tenemos acceso a más de una variable, mediante la modificación del offset. Este vídeo es muy fácil si se entiende bien el anterior, de no ser así, preguntad tanto como queráis, puesto que es obligatorio comprender este tutorial si queréis aplicarlo a juegos reales. La mayoría de programadores utilizan estructuras para organizar las variables en el código, así que con esto podremos identificarlas.


    • http://youtu.be/XbZRHbd0qEo&index=1&list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0




  • 4. Creando un Hack DLL en C++ | Hacking de juegos


    • Después de aprender a utilizar el Cheat Engine para encontrar las direcciones cuyos valores queremos modificar, en este vídeo aprenderemos a crear una DLL donde poner los hacks.
      Programaremos en C++ y aunque está hecho y pensado para gente que nunca ha programado, yo recomiendo tener unas nociones mínimas de C/C++, ya que ayudaran a entender y agilizar mucho más el progreso.

      Usaremos el Visual Studio para programar la DLL, pero se puede hacer con cualquier compilador.

      Se trata de un vídeo largo (aprox. 40 mínutos), pero esto es debido al enorme grado de explicación y detalle con que se hace. El objetivo que se persigue es aprender a hacer hacks "universales", para cualquier juego, y no a copiar el código como robots sin saber lo que realmente se hace.


    • https://www.youtube.com/watch?v=Kjw7lHLF8t8&index=1&list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0




  • 5. Desactivar AntiHack y OllyDbg | Hacking de juegos


    • Ya con la DLL creada y unos conocimientos afianzados de CE, y buena parte de la teoría (addresses y punteros) aprendida, vamos a lanzarnos al mundo de la depuración, de mano de una de los mejores y más útiles programas, OllyDbg 1.10.
      De nuevo se trata de un tutorial orientado a gente que no sepa nada de OllyDbg, pero aún así, si se tienen conocimientos de depuración y/o assembler, harán que el vídeo sea mucho más ameno y mucho más fácil.

      La depuración exige dedicación, tiempo y ganas de aprender y no rendirse, porque, realmente, es bastante más complicado de lo que parece. Haré algún tutorial más, adentrándonos más en este exigente mundo, junto con CE, para ver hasta donde se puede llegar.

    • https://www.youtube.com/watch?v=Ro7xhZb6K8I&index=1&list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0



  • 6. Mejorando el hack DLL | Hacking de juegos


    • Una vez ya sabemos hacer un bypass para el antihack mediante OllyDbg, el siguiente paso es distribuirlo junto a nuestros hacks.
      Para ello aprenderemos a programarlos en la DLL, veremos como se modifica el código en memoria, pues requiere un poco más de código que la modificación de simples variables/valores.
      Partiremos de la DLL que ya desarrollamos en anteriores vídeos, aunque los conceptos son perfectamente aplicables a cualquier código empezado de 0 o de otro proyecto vuestro propio.

    • https://www.youtube.com/watch?v=YmaPXY-gmOE&index=1&list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0



  • 7. Punto de entrada dinámico | Hacking de juegos


    • En anteriores vídeos se cometieron algunos errores, dado que durante la creación del programa "HackMe" olvidé cambiar una pequeña configuración.
      No supone un gran problema ni dificulta en grandes medidas el aprendizaje, e incluso en algunos casos es conveniente para aprender más aún.

      El problema está en que el llamado "Entry Point", o punto de entrada del programa, es decir la dirección donde empieza el código, es dinámica. ¿Que implica esto? Implica que cabe la posibilidad de que las direcciones cambien ligeramente cada vez que abras el programa de nuevo, y, sobretodo, si entre medio se cierra el pc.

      Veremos como identificar estos Random Entry Points y como solucionarlos fácilmente.

    • https://www.youtube.com/watch?v=AjEa9Jwd9zc&index=1&list=PL6RJR1V-uAbyRMzbOYFcTRTVZM4C1pOj0



Hacking de Juegos Online

Streamings - Hacking de Juegos Online

blipi

[Reservo este post para futuras dudas]
Crearé un Q&A (Preguntas y Respuestas) para que todos puedan verlo directamente, sin tener que buscar por posts.

blipi

Subiendo el siguiente capítulo. Aproximadamente 48 minutos hasta que termine.

He añadido una pequeña anotación en el capítulo 2, aclarando que, al ser variables dinámicas, cuando busquéis la address de la vida no os va a salir la misma que a mi. Es normal, lo importante es que al realizar la búsqueda del puntero, este sí sea igual.

Lo añadiré luego al Q&A para futuras referencias.

RayHack

Buenas señor Blipi, primero que todo quiero darle las gracias por estos tutoriales que son muy pero muy buenos y me ha aclarado muchas cosas.

Tengo una pequeña duda, en caso de que el valor a asignar en la memoria sea tipo flotante, ¿Como asignaria el dato tipo flotante?.

Hago la pregunta ya que he creado un pequeño hack para un juego y al asignar la vida me la pone literalmente a 0 ya que el HUD de la vida se vacea pero el jugador sigue vivo y el error esta en que la vida es tipo flotante no decimal entonces no se como hacer este paso y ya he probado varios metodos.

PD: Solucionado, pero estaria bueno que explicaras esa parte de los tipos flotante y byte.

Un saludo.

.:UND3R:.

Cita de: RayHack en 12 Enero 2014, 15:52 PM
Buenas señor Blipi, primero que todo quiero darle las gracias por estos tutoriales que son muy pero muy buenos y me ha aclarado muchas cosas.

Tengo una pequeña duda, en caso de que el valor a asignar en la memoria sea tipo flotante, ¿Como asignaria el dato tipo flotante?.

Hago la pregunta ya que he creado un pequeño hack para un juego y al asignar la vida me la pone literalmente a 0 ya que el HUD de la vida se vacea pero el jugador sigue vivo y el error esta en que la vida es tipo flotante no decimal entonces no se como hacer este paso y ya he probado varios metodos.

PD: Solucionado, pero estaria bueno que explicaras esa parte de los tipos flotante y byte.

Un saludo.

También sería bueno que explicaras cómo lo haz solucionado, así todos aprendemos  :D

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

blipi

Cita de: RayHack en 12 Enero 2014, 15:52 PM
Buenas señor Blipi, primero que todo quiero darle las gracias por estos tutoriales que son muy pero muy buenos y me ha aclarado muchas cosas.

Tengo una pequeña duda, en caso de que el valor a asignar en la memoria sea tipo flotante, ¿Como asignaria el dato tipo flotante?.

Hago la pregunta ya que he creado un pequeño hack para un juego y al asignar la vida me la pone literalmente a 0 ya que el HUD de la vida se vacea pero el jugador sigue vivo y el error esta en que la vida es tipo flotante no decimal entonces no se como hacer este paso y ya he probado varios metodos.

PD: Solucionado, pero estaria bueno que explicaras esa parte de los tipos flotante y byte.

Un saludo.

Buenas, como bien dices de momento no he comentado el tema de los distintos data types, porque generalmente 4 bytes (el tamaño de una word típica) es lo usado.
De todas formas, procuraré hacer un capítulo extra para explicarlo ;)

La solución es tan sencilla como seleccionar "float" (o double) en el desplegable de "type".

Suerte!

blipi

Añadido nuevos capítulos!

Crearemos nuestro bypass del antihack en DLL.
Aprenderemos de los errores y modificaremos nuestra DLL para que funcione perfectamente siempre.

Comenzamos con los juegos ONLINE! WPE Pro, que es un paquete? Cliente y servidor?
Al final realizaremos un bot completo para un juego!

.:UND3R:.


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

noopynoob

excelente, una pregunta con estos tutoriales también se puede hackear un juego flash en linea? esto lo buscaba hace 2 años y no encontré nada, pero si había un trainer hecho  con cheat engine osea que se puede. al juego solo le podía meter speed hack pero no se podía con la salud o el dinero porque parece que tenia protección y los valores aunque los congelera seguían cambiando hasta que alguien que sabia lo que hacia publico uno que permitia cambiar eso y agrego un wall hack que es de atravesar las paredes.

MCKSys Argentina

Para hackear un jueguito flash, te lo bajas, lo decompilas y revisas el fuente a ver si tiene debilidades...

Tan sencillo como eso.  :P

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."