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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / [Videotutoriales] Creación de servidores MMORPG en: 17 Abril 2016, 16:21 pm
Videotutoriales, Creación de servidores MMORPG

Buenas a todos y ante todo gracias por pasar por este post. Destacar que en estos vídeos se ve el proceso de creación de un servidor MMORPG, lo que incluye:

  • Conexión con BDs MongoDB
  • Multithreading - Async processing
  • Socket selector
  • C+11
  • CMake
  • Reverse Engineering

El último punto, Reverse Engineering, se incluye porque el servidor se hace para un juego ya existente, NosTale. Si bien en esta serie de vídeos no se hace hincapié en este aspecto, será inevitable en algún momento u otro tener que realizar alguna inspección del juego. Dicho esto, si os interesa el tema o queréis saber más del hacking de NosTale, os animo a pasaros por mi otro post de ingeniería inversa: http://foro.elhacker.net/ingenieria_inversa/videotutoriales_hacking_de_juegos_onlinelocal_cheat_engine_ollydbg-t406249.0.html

Bien, al lío, os dejo los enlaces y, más abajo, la descripción de cada capítulo:

Lista de reproducción: https://www.youtube.com/playlist?list=PL6RJR1V-uAbz21DoGax4BTRcs_0OZ4kRt

Y mi canal, donde también veréis las novedades:
Canal: https://youtube.es/c/Blipi

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.

Destacar que realmente estos vídeos son directos donde interacciono con el público, si los queréis ver son cada:
  • Lunes: 23.55pm a 02.00am
  • Martes: 23.55pm a 02.00am

Capítulos:

Y eso es todo por ahora! Iré añadiendo vídeos conforme vaya haciendo los directos!
2  Programación / Ingeniería Inversa / [Librería C++] Detours, Codecaves, Return Adress Spoofing y mucho más en: 5 Febrero 2014, 03:04 am
xHacking

Buenas a todos!

Hoy os traigo mi nueva creación, llamada xHacking. Se trata de una librería programada en C++11 especialmente diseñada para la ingeniería reversa.

Incluye todo tipo de funciones, entre las que destacan la creación de Detours, Codecaves, memory breakpoints (con PAGE_GUARD a modo de codecave) y llamadas a APIs con spoofing de la dirección de retorno.

Os dejo el link a github:
https://github.com/blipi/xHacking

Atención: Requiere compatibilidad con C++11. Funciona con Visual Studio 2013, y *quizás* con 2012. Inferior seguro que no. Aún no he podido dar soporte a otros compiladores, pero está en la lista.

Cualquier error por favor usad el sistema de issues de allí mismo. Y si queréis nuevas funcionalidades u os animáis a programar, os invito a usar los push requests o postearlo aquí mismo!

Os pongo algunos ejemplos de como se usaría la librería:

API:
Vamos a spoofer el "GetAsyncKeyState". Suponemos que estamos ya en el módulo principal.
Encontrará automáticamente un punto en el código (un RET) en el que modificar el punto de retorno de nuestro call.
Código
  1. API<SHORT, int>* api = new API<SHORT, int>();
  2. api->AutoLoad("user32.dll", "GetAsyncKeyState")->AutoFakeWithinModule(GetModuleHandle(NULL));
  3.  
  4. // Llamada
  5. (*api)(VK_DOWN);
  6.  


DETOURS:
De momento no desensambla el código de destino, por lo que debemos asegurarnos antes de que tenemos los 5/6 bytes disponibles y que no son JMP/CALL/etc. No es el caso con recv.
Código
  1. // Declaramos
  2. Detour<int, int, char*, int, int>* recvDetour = NULL;
  3.  
  4. // Funcion
  5. int WINAPI d_recv(SOCKET s, char *buf, int len, int flags)
  6. {
  7. return (*recvDetour)(s, buf, len, flags);
  8. }
  9.  
  10. // Creacion
  11. recvDetour = new Detour<int, int, char*, int, int>();
  12. recvDetour->Load("WSOCK32.dll", "recv", (BYTE*)d_recv);
  13.  

Y aún hay más funciones que os dejo experimentar a vosotros mismos!
3  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
4  Programación / Scripting / [Videotutoriales] Programando en Python en: 4 Enero 2014, 01:42 am
Videotutoriales de Python

Hola a todos!

He decidido empezar una serie de vídeos dedicados a aprender a programar en Python. Pasaros por mi canal de youtube para verlos todos!
Os dejo la lista de reproducción:
https://www.youtube.com/playlist?list=PL6RJR1V-uAbzZ_dY7IWHR4fkMnW3iKbYG

Y mi canal de Youtube:
https://youtube.es/user/bl1pi

Cada pocos días subo uno de nuevo, os dejo los links aquí mismo para que los podáis ver:

  • 1. Programando en Python - Variables y sintaxis
    • En este videotutorial veremos los aspectos más básicos de Python.
      ¿Que es una variable? ¿Para que sirve? ¿Como se declara e inicializa? ¿Cómo puedo mostrar? ¿Que operaciones existen entre ellas?
      Veremos todo esto y más!

    • http://youtu.be/g06QsbYcKMk

  • 1.5. Programando en Python - Variables [Extra]
    • En este repasaremos todos los conceptos del anterior y veremos algunos detalles más de las variables que quedaron en el aire. Es recomendable verlo aunque no obligatorio.

      Es un paso medio entre el siguiente vídeo y el anterior.
      Se plantea un reto para principiantes, A ver si alguien lo resuelve!

    • https://www.youtube.com/watch?v=FQycICAKxmw

  • 2. Programando en Python - Funciones
    • Las funciones son un gran paso adelante en Python, puesto que nos permiten organizar, modularizar y agrupar código.
      Son un medio para evitar repetir inecesariamente el código.

      Es importante aprender bien que es una función, para qué se utilizan, como se utilizan, etc. Ya que será un recurso al que siempre acudiremos en futuros vídeos.
      También son muy importantes los conceptos de variable local y de parámetros o argumentos de una función, puesto que sin tener claras estas dos cosas no seremos capaces de entender completamente las funciones.
    • http://www.youtube.com/watch?v=M940eMvKSag

  • 3. Programando en Python - Bucles y Condiciones
    • Otra vez este es un capítulo crucial en la curva de aprendizaje de Python.
      Veremos los bucles, es decir, repeticiones de código según unas condiciones que nosotros mismo establecimos. En concreto veremos el `for` y el `while`, ambos para casos básicos y un poco más complicados.

      Además introduciremos los `if`, condiciones, que nos permitirán ejecutar código sí y solo sí una condición impuesta por nosotros mismo se cumpla.

      Para rematar el capítulo, veremos dos nuevas funciones, `input` y `raw_input`, que nos permiten "coger" texto del usuario, es decir, pedir algo y leerlo.
    • http://www.youtube.com/watch?v=Bs9esF0PJ2c


Espero que os guste! Preguntad lo que haga falta, tanto por Youtube como por aquí.

Like y suscribiros!
5  Programación / Ingeniería Inversa / Videotutoriales de hacking de juegos en: 3 Enero 2014, 13:07 pm
Buenas chicos!

Recientemente he decido retonar mi canal de youtube, donde inicialmente habia subido un video de como crear una DLL (para inyectar en un juego).

Ayer subi un video, parte de una serie, donde se explica el uso basico de cheat engine. Aprenderemos a usar cheat engine, ollydbg, wpe pro, crear dlls e incluso bots.

Tambien subire videos de programacion.

Os dejo el link y espero que os guste mucho!
http://youtube.com/watch?v=k4eZOGYCcQc

Y tambien os dejo el canal:
http://youtube.com/user/bl1pi

Gracias y ojalá os guste!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines