Hola a todos, bueno tengo una duda con uno de los valores de esta API:
0044A62A . 68 50CA4500 PUSH 45CA50 ->lpflOldProtect
0044A62F . 6A 40 PUSH 40->flNewProtect
0044A631 . 68 00100000 PUSH 1000->dwSize
0044A636 . 68 00004000 PUSH UnPackMe.00400000->lpAddress
0044A63B . FFD0 CALL VirtualProtect
BOOL VirtualProtect(
LPVOID lpAddress, // address of region of committed pages
DWORD dwSize, // size of the region
DWORD flNewProtect, // desired access protection
PDWORD lpflOldProtect // address of variable to get old protection
);
Esto no se que es,ni como obtenerlo, si alguien me pudiera explicar
Muchas gracias
es un puntero donde guardan la anterior protección que tenía xD.
MSDN :).
Nox
y como obtengo ese puntero?
Saludos
Tienes que declarar una simple variable numérica, DWORD, donde le tienes que pasar la dirección de memoria al cuarto parámetro.
y en palabras más olly? :-X
Es una variable "vacia" tipo DWORD donde la API va a guardar el flag que indica el tipo de proteccion que tenia la pagina antes de que la cambiaras (si la API funciona).
Es util para poder restaurar la proteccion de la pagina de memoria despues de cambiarla (especialmente cuando se hacen CRC's de memoria).
En un script, simplemente declara una variable y ahi se guardara el valor.
Ose simplemente puede ser cualquier address??, obviamente que esté en el executable file y no en tiempo de ejecución
Saludos
Cita de: .:UND3R:. en 7 Septiembre 2011, 20:04 PM
Ose simplemente puede ser cualquier address??, obviamente que esté en el executable file y no en tiempo de ejecución
Saludos
Más bien cualquier dirección en tiempo de ejecución, que tenga permisos de escritura.
Saludos
Memoria virtual creada en tiempo de ejecución
Aclarado,muchas gracias