[TUTORIAL] ¿Como funcionan los pointers?

  • Hola Invitado ¿Quieres conversar con todos los usuarios de GamerzHacking?, No esperes mas y entra al canal de Discord dando clic AQUI
  • Hola Invitado, hemos decidido no subir mas videos de Game Hacking a la mierda de YouTube, mas informacion AQUI. Nuestro nuevo canal de videos ahora es COCOSCOPE.
  • Hola Invitado ¿Quieres formar parte del Staff de GamerzHacking?, No esperes mas y entra al siguiente enlace AQUI
  • Hola Invitado ¿Eres programador y quieres pertenercer GamerzHacking?, No esperes mas y entra a postular aqui AQUI

Snake

Desarrollador
Miembro del equipo
26 Nov 2017
28
19
3
20
A simple vista sabemos que un pointer es una direccion de memoria con ofsets el cual siempre apuntara a un mismo valor, es decir que no cambiará, pero te has preguntado ¿como funcionan estos? Seguro habras visto un bloque de codigo que lee los pointers por ti, pero no hay mejor satisfacción que comprender como funcionan las cosas.

Primero que todo un pointer se constituye por:

  • Una address base (Esta es estatica, por lo general de color verde)
  • Uno o mas offsets
Básicamente para calcular esto se hace de la siguiente manera:

El valor al que esta apuntando el address base + el ultimo offset (en caso de haber mas de uno) ya que hay que tener en cuenta que los offsets se leen desde el ultimo hasta el primero.


Bueno ya tenemos un offset leido ¿y ahora? se hace el mismo procedimiento pero ahora con el offset 2, es decir el valor al que esta apuntando de (el valor al que esta apuntando el address base + el ultimo offset) + el penultimo offset, es un poco confuso lo se, así que pongamos un ejemplo.


Tenemos un pointer con tres offsets el cual se constituye de la siguiente forma:

  • Address Base: 0xF45123
  • Offset 1: 0x14
  • Offset 2: 0x36
  • offset 3: 0xC
Ahora vamos a calcular jeje (Por cierto esto "->" significa el valor al que esta apuntando dicha address):

0xF45123 -> 0x451354 (Este valor cheat engine se los mostrar en decimal, asi que tienen que convertirlo a hexadecimal)
0x451354 + 0xC = 0x451360

0x451360 -> 0x124578 (Recuerda... este es el valor al que esta apuntando)
0x124578 + 0x36 = 0x1245AE

0x1245AE -> 0x789A12
0x789A12 + 0x14 = 0x789A26

Hemos terminado por lo tanto nuestra address original seria esta 0x789A26 y es la que cambia cuando el programa o en su defecto el juego es reiniciado.

Eso seria todo cracks.

See you
 

TzvictorHD

Moderador
Miembro del equipo
20 Ago 2018
19
12
3
20
Gracias por la información y el tutorial corto y muy bien explicado. Sigue así =D