Test Foro de elhacker.net SMF 2.1

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 7 Septiembre 2011, 06:10 AM

Título: Duda con VirtualProtect
Publicado por: .:UND3R:. en 7 Septiembre 2011, 06:10 AM
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

Título: Re: Duda con VirtualProtect
Publicado por: Иōҳ en 7 Septiembre 2011, 06:13 AM
es un puntero donde guardan la anterior protección que tenía xD.

MSDN :).

Nox
Título: Re: Duda con VirtualProtect
Publicado por: .:UND3R:. en 7 Septiembre 2011, 16:32 PM
y como obtengo ese puntero?

Saludos
Título: Re: Duda con VirtualProtect
Publicado por: Queta en 7 Septiembre 2011, 17:11 PM
Tienes que declarar una simple variable numérica, DWORD, donde le tienes que pasar la dirección de memoria al cuarto parámetro.
Título: Re: Duda con VirtualProtect
Publicado por: .:UND3R:. en 7 Septiembre 2011, 17:56 PM
y en palabras más olly?  :-X
Título: Re: Duda con VirtualProtect
Publicado por: MCKSys Argentina en 7 Septiembre 2011, 18:48 PM
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.
Título: Re: Duda con VirtualProtect
Publicado por: .: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
Título: Re: Duda con VirtualProtect
Publicado por: [Zero] en 7 Septiembre 2011, 20:13 PM
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
Título: Re: Duda con VirtualProtect
Publicado por: .:UND3R:. en 7 Septiembre 2011, 20:43 PM
Memoria virtual creada en tiempo de ejecución

Aclarado,muchas gracias