[CODIGO FUENTE] FindDMAAddy - Función de Puntero Multinivel en C ++

  • Hola Invitado, ¿Quieres ganar dinero con GamerzHacking?, estamos necesitando creadores de contenido en game hacking o pirateria de juegos ingresa al siguiente enlance para mayor informacion AQUI
  • Hola Invitado, ¿Creas contenido sobre game hacking en tu blog o sitio web?, ¿Te gustaria formar una alianza para asi poder generar mas trafico en tu sitio y seguir creciendo como comunidad? INGRESA AQUI


268
Me Gusta
128
Temas

c0de

MOV EAX, EDX
Registrado
19 Abr 2020
Temas
128
Mensajes
245
Ubicación
Localhost
Mejores respuestas
0
Un puntero en sí mismo apunta a una sola dirección. Pero cuando tiene una lista de offsets, puede recorrer esa cadena de punteros para encontrar la dirección final.

Cuando encuentre un puntero en Cheat Engine, lo que encontrará es una ruta de una dirección a otra utilizando punteros y offsets relativos. Así es como las computadoras ubican y actúan sobre los datos almacenados en la memoria. ¡No es mágico! La lógica detrás de esto se basa en 2 características importantes de la programación moderna orientada a objetos:
  • Las aplicaciones hacen que la memoria sea eficiente al asignar dinámicamente objetos de memoria solo cuando sea necesario y al asignar punteros para apuntarlos solo cuando sea necesario.
  • Las clases pueden contener variables miembro que son punteros, específicamente punteros a otros objetos en la memoria.
La baseAddress o primer puntero en la cadena de punteros es generalmente una que existe en la memoria estática, lo que significa que siempre se encuentra en la misma dirección o se puede acceder usando un desplazamiento relativo de la dirección base de un módulo.

Imagina este código:

C++:
Porfavor, Acceder o Registrarse para ver el contenido de los códigos!

Class:
La salud está compensada 0x0, la armadura está compensada 0x4 y el nombre está compensado 0x8, porque int es una variable de 4 bytes en este ejemplo (32 bits x86)

Primera línea:
PlayerClass es el nombre de la clase, el "*" le dice al compilador que este es un puntero a un objeto de tipo PlayerClass y su identificador es "localPlayer". En este ejemplo no se inicializa. Es decir, no se le ha asignado memoria.

Segunda línea:
Cuando el jugador comienza un juego, al objeto localPlayer se le asigna un lugar en la memoria en el montón y al puntero se le asigna la dirección del objeto.

La dirección del objeto localPlayer no sería coherente y necesitaría encontrar un puntero al mismo. Si usó "Buscar lo que accede a esta dirección" de Cheat Engine o el escáner de puntero, encontrará un puntero con la BaseAddress del puntero localPlayer y el desplazamiento 0x8.

Simplemente usa la misma lógica que la computadora para encontrar la dirección de la variable. En el código fuente de esta aplicación, si quisiera obtener el valor de la variable de nombre, usaría "->" (el operador de desreferencia de estructura) como este: "localPlayer-> name".

Cuando el compilador compila este código en ensamblador, la lógica que sigue el código es la siguiente:
  1. Desreferenciar el puntero localPlayer para obtener la dirección dinámica del objeto
  2. Agregue offset 0x8 para llegar al puntero de nombre
  3. Desreferenciar el puntero de nombre para obtener la dirección dinámica del valor del nombre
Podemos hacerlo manualmente para cada puntero haciendo algo similar a:

C++:
Porfavor, Acceder o Registrarse para ver el contenido de los códigos!

Pero no desea perder el tiempo haciendo eso por cada puntero, en su lugar, crea una función que lo hace por usted: Queremos emular esa lógica exacta en nuestra función y hacer que pueda manejar la desreferenciación de múltiples offsets.

Aquí hay una función que hace eso para x86 y x64, es un híbrido de código de Fleep, Rake y IXSO

External:

C++:
Porfavor, Acceder o Registrarse para ver el contenido de los códigos!

Para obtener la dirección de munición de arma actual, debe hacerlo así:

C++:
Porfavor, Acceder o Registrarse para ver el contenido de los códigos!

Interno:

C++:
Porfavor, Acceder o Registrarse para ver el contenido de los códigos!

Creditos
Rake
 
AdBlock Detectado

Lo sentimos, los anuncios son molestos!

Claro, el software de bloqueo de anuncios hace un gran trabajo al bloquear anuncios, pero también bloquea funciones útiles de nuestro sitio web. Para obtener la mejor experiencia en el sitio, deshabilite su AdBlocker.

He desactivado AdBlock    No, gracias