elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / Ingeniería Inversa / Re: [Videotutoriales] Hacking de juegos (Online/Local, Cheat Engine, OllyDbg...) en: 26 Enero 2014, 19:45 pm
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!
12  Programación / Ingeniería Inversa / Re: [Videotutoriales] Hacking de juegos (Online/Local, Cheat Engine, OllyDbg...) en: 14 Enero 2014, 23:39 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!
13  Programación / Ingeniería Inversa / Re: [Videotutoriales] Hacking de juegos (Online/Local, Cheat Engine, OllyDbg...) en: 8 Enero 2014, 18:21 pm
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.
14  Programación / Scripting / Re: [BASH] Ayuda urgente con codigo en: 8 Enero 2014, 17:11 pm
Ese if no es correcto en Bash. Si quieres comparar números una forma de hacerlo es:
Código
  1. if [ "$size" -le "$2" ]

-le significa "less equal", es decir, menor igual. Otros son, lt (less than <), gt (greater than >), ge (greater equal >=)

Suerte!

PD: Veig que també ets català ;)
15  Programación / Programación C/C++ / Re: Pasar de cadena(char) a entero(int) sin sobrepasar el máximo permitido. en: 7 Enero 2014, 03:49 am
Si te quieres complicar aun menos, y suponiendo que no te importe usar C++, std::stoi es tu solución:

http://www.cplusplus.com/reference/string/stoi/

Con eso y un simple bloque try/catch, lo tienes solucionado.

Código
  1. try
  2. {
  3. std::string str(numero);
  4. std::string::size_type sz;
  5. int bytes = std::stoi(str, &sz);
  6. std::cout << "Bytes: " << bytes << std::endl;
  7. }
  8. catch(std::out_of_range&)
  9. {
  10. std::cout << "Fuera de limites!" << std::endl;
  11. }
  12. catch(std::invalid_argument&)
  13. {
  14. std::cout << "No es un numero!" << std::endl;
  15. }
  16.  

Solo te faltaría convertir a binario (por bytes, entendemos que es el numero tal cual)
16  Programación / Ingeniería Inversa / Re: investigacion en: 7 Enero 2014, 03:17 am
Estoy bastante de acuerdo con engelx. Lanzarse de cabeza a por Assembler tiene una curva de aprendizaje mucho mayor que pasando antes por un lenguaje de programación.

Aprende un lenguaje compilado (C o C++ por ejemplo) y cuando ya sepas, intenta ver com Olly mismo que hace tu programa a nivel de Asm.

Aunque, idealmente, yo lo que haría sería empezar a trabajar con un assembler más antiguo, por ejemplo podrías trabajar en 8086 (hay varios programas interesantes, te buscaré el que usaba yo en la uni, que no estoy en casa ahora) para aprender. O incluso algún assembler más antiguo y básico.
Mañana te miro a ver que tengo.

Suerte!
17  Programación / Scripting / Re: [Videotutoriales] Programando en Python en: 7 Enero 2014, 02:49 am
He cambiado un poco la estructura del post para que sea más fácil de leer y de encontrar los capítulos.

Además he subido el capítulo 1.5 (o como a mi me gusta, 1 1/2 (uno y medio)). Tenéis la descripción arriba!
18  Programación / Ingeniería Inversa / Re: [Videotutoriales] Hacking de juegos (Online/Local, Cheat Engine, OllyDbg...) en: 7 Enero 2014, 02:20 am
[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.
19  Programación / Ingeniería Inversa / [Videotutoriales] Hacking de juegos (Online/Local, Cheat Engine, OllyDbg...) en: 7 Enero 2014, 02:15 am
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
20  Programación / Ingeniería Inversa / Re: Videotutoriales de hacking de juegos en: 5 Enero 2014, 14:32 pm
Subiendo nuevo capítulo!

Aprenderemos a identificar y trabajar con los punteros, o variables dinámicas, aquellas que cuando "cerramos" el juego o programa cambia.
Veremos que la solución pasa por encontrar un puntero, es decir, una variable no dinámica (estática) cuyo valor se corresponda al de la que realmente buscamos.

Espero que os guste!
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines