Zion
S. Moderador
- Registrado
- 9 Abr 2023
- Mensajes
- 10
Asegúrese de comprender los tipos de valor o lea esto primero: [TUTORIAL] - Tipo de Valores en Cheat Engine
Los punteros son números enteros cuyo tamaño es el tamaño de la palabra base del proceso y almacenan una dirección en ese proceso. Es decir, en un proceso de 16 bits, un puntero es una WORD (16 bits), en un proceso de 32 bits, un puntero es una DWORD (32 bits) y en un proceso de 64 bits, un puntero es una QWORD (64 bits).
16 bits
32 bits
64 bits
En los programas y la programación, simplemente usar solo números enteros y valores de punto flotante realmente no es factible con objetos complejos. Entonces, el concepto de un objeto en la memoria se vio como una necesidad. Aquí es donde entran los punteros. Simplemente apuntan a un objeto en la memoria, de ahí el nombre. Incluso las cadenas se implementan con punteros a la serie de caracteres en la memoria, aunque la mayoría de los lenguajes de alto nivel no lo advierten.
Objetos en la Memoria
Ahora digamos que tenemos un código que declara un objeto jugador y su configuración es así:
Los punteros son números enteros cuyo tamaño es el tamaño de la palabra base del proceso y almacenan una dirección en ese proceso. Es decir, en un proceso de 16 bits, un puntero es una WORD (16 bits), en un proceso de 32 bits, un puntero es una DWORD (32 bits) y en un proceso de 64 bits, un puntero es una QWORD (64 bits).
16 bits
WORD: int16/short
32 bits
DWORD: int32/int
64 bits
QWORD: int64/long
En los programas y la programación, simplemente usar solo números enteros y valores de punto flotante realmente no es factible con objetos complejos. Entonces, el concepto de un objeto en la memoria se vio como una necesidad. Aquí es donde entran los punteros. Simplemente apuntan a un objeto en la memoria, de ahí el nombre. Incluso las cadenas se implementan con punteros a la serie de caracteres en la memoria, aunque la mayoría de los lenguajes de alto nivel no lo advierten.
Objetos en la Memoria
Ahora digamos que tenemos un código que declara un objeto jugador y su configuración es así:
- jugador : objeto
- Nombre : cadena
- Salud : entero
- Monedas : entero
- Coordenadas : objeto
- X : float o decimal
- Z : float o decimal
- Y : float o decimal
- Inventario : matriz o array : matriz de objetos de artículos, que tiene el artículo y el recuento de artículos.
- Process.exe+123ABC : puntero : DWORD - Base de jugadores.
- [Process.exe+123ABC]+10 : puntero : DWORD: puntero a donde se almacena la cadena de nombre en la memoria.
- [[Process.exe+123ABC]+10]+4 : cadena : 256 bytes: el valor del nombre, como una cadena terminada en nulo (0x0).
- [Process.exe+123ABC]+14 : entero : DWORD - Valor de salud.
- [Process.exe+123ABC]+18 : entero : DWORD - Valor de monedas.
- [Process.exe+123ABC]+1C : puntero : DWORD - Puntero a donde se almacena el objeto Coordenadas en la memoria.
- [[Process.exe+123ABC]+1C]+10 : float : DWORD - Coordenada X.
- [[Process.exe+123ABC]+1C]+14 : float : DWORD - Coordenada Z.
- [[Process.exe+123ABC]+1C]+18 : float : DWORD - Coordenada Y.
- [Process.exe+123ABC]+20 : puntero : DWORD - Puntero a donde comienza la matriz de inventario en la memoria.
- [[Process.exe+123ABC]+20]+XX*4 : puntero : DWORD - Puntero al lugar donde se almacena en la memoria el elemento número XX de la matriz de inventario.
- [[[Process.exe+123ABC]+20]+XX*4]+4 : integer : DWORD - El valor de conteo del artículo de inventario.
- [[[Process.exe+123ABC]+20]+XX*4]+8 : puntero : DWORD - Puntero a donde se almacena el objeto del elemento en la memoria.
- [[Process.exe+123ABC]+20]+XX*4 : puntero : DWORD - Puntero al lugar donde se almacena en la memoria el elemento número XX de la matriz de inventario.
- [Process.exe+123ABC]+10 : puntero : DWORD: puntero a donde se almacena la cadena de nombre en la memoria.
- Process.exe+123ABC : puntero : QWORD - Base de jugadores.
- [Process.exe+123ABC]+10 : puntero : QWORD - Puntero a donde se almacena la cadena Nombre en la memoria.
- [[Process.exe+123ABC]+10]+8 : cadena : 256 bytes: el valor del nombre, como una cadena terminada en nulo (0x0).
- [Process.exe+123ABC]+18 : entero : DWORD - Valor de salud.
- [Process.exe+123ABC]+1C : entero : DWORD: valor de las monedas.
- [Process.exe+123ABC]+20 : puntero : QWORD - Puntero a donde se almacena el objeto Coordenadas en la memoria.
- [[Process.exe+123ABC]+20]+10 : float : DWORD - Coordenada X.
- [[Process.exe+123ABC]+20]+14 : float : DWORD - Coordenada Z.
- [[Process.exe+123ABC]+20]+18 : flotante : DWORD - Coordenada Y.
- [Process.exe+123ABC]+28 : puntero : QWORD - Puntero a donde comienza la matriz de inventario en la memoria.
- [[Process.exe+123ABC]+28]+XX*8 : puntero : QWORD - Puntero al lugar en el que se almacena en la memoria el elemento número XX de la matriz de inventario.
- [[[Process.exe+123ABC]+28]+XX*8]+4 : integer : DWORD - El valor de conteo del artículo de inventario.
- [[[Process.exe+123ABC]+28]+XX*8]+8 : puntero : DWORD - Puntero a donde se almacena el objeto del elemento en la memoria.
- [[Process.exe+123ABC]+28]+XX*8 : puntero : QWORD - Puntero al lugar en el que se almacena en la memoria el elemento número XX de la matriz de inventario.
- [Process.exe+123ABC]+10 : puntero : QWORD - Puntero a donde se almacena la cadena Nombre en la memoria.
- Process.exe+123ABC : puntero : DWORD - Base de jugadores.
- [Process.exe+123ABC]+4 : puntero : DWORD - Base de actores.
- [[Process.exe+123ABC]+4]+10 : puntero : DWORD - Puntero a donde se almacena la cadena Nombre en la memoria.
- [[[Process.exe+123ABC]+4]+10]+4 : string : 256 bytes - El valor del nombre, como una cadena terminada en nulo (0x0).
- [[Process.exe+123ABC]+4]+14 : entero : DWORD - Valor de salud.
- [[Process.exe+123ABC]+4]+18 : entero : DWORD - Valor de monedas.
- ...
- [[Process.exe+123ABC]+4]+10 : puntero : DWORD - Puntero a donde se almacena la cadena Nombre en la memoria.
- [Process.exe+123ABC]+4 : puntero : DWORD - Base de actores.