[TUTORIAL] vTable Hooking / VMT hooking

  • 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


274
Me Gusta
133
Temas

c0de

MOV EAX, EDX
Top Publicador Del Mes
Registrado
19 Abr 2020
Temas
133
Mensajes
256
Ubicación
Localhost
Mejores respuestas
0
En primer lugar, el método que le mostraré no es la única forma de enganchar vmt, hay algunas otras posibilidades para hacerlo (cambiar el puntero de vtable, etc.) pero ese no es el alcance de este documento en este momento.

Antes de continuar, asegúrese de tener una comprensión exacta de lo que significa un método virtual y una tabla de métodos virtuales.

Porfavor, Acceder o Registrarse para ver el contenido de las URL!

Porfavor, Acceder o Registrarse para ver el contenido de las URL!


También debes saber que todo esto solo se puede usar cuando tu objetivo es en realidad una función virtual de una clase, de lo contrario ganó No esté en una tabla de método virtual (puede que no haya ninguna tabla), solo estará en el .text como todas las demás funciones.

Estoy usando Battlefield 3 como ejemplo para este tutorial. Y conectaré una de las funciones de actualización de physicsmanager de los juegos llamadas una vez por cuadro para poder llamar a rayquery desde el hilo de los juegos.

Así es como se ve la clase physicsmanager cuando no he hecho ningún cambio.

1589344197909.png

Tenga en cuenta que el puntero de la tabla de método virtual probablemente siempre estará al comienzo de la clase, que apuntará a la tabla de método virtual.
Ahora, esos métodos virtuales no son más o menos punteros a esas funciones: punteros de función.

Engancharé la quinta función a 0x10 en la tabla de métodos virtuales. Si eres un niño :) genial, ya habrías adivinado que solo sobrescribiremos ese puntero para señalar nuestra función, lo cual es correcto, así que sobrescribiré ese 0x5AD160 para señalar mi gancho.

1589344235658.png

Ahora, cuando se llama a esa función a través de esa clase, llamará a mi función en su lugar, a partir de ahí podemos llamar a la función original, por supuesto.

Así es como podría verse su gancho, obviamente no necesariamente tiene que tenerlo como una función desnuda, si sabe cómo enganchar esta llamada (ps fastcall)

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

Ahora hay clases / funciones que le brindan un enlace de método virtual fácil, pero me gusta hacer el enlace vmt manualmente-

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

Creditos
c5
 
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