Bueno es que tengo un pequeño problema ala hora que escribo dentro de un proceso el cual modifico..
Lo que hago es algo asi:
delphi
VirtualProtectEx(GetCurrentProcess,ptr(Adress),SIZE,PAGE_EXECUTE_READWRITE,nil); //Escribo en memoria
Pero ocurre que no deseo escribir solo en una direccion si no en X direcciones dentro de la memoria de distintas logintudes o tamaño...
Lo que se me viene a la mente es:
delphi
VirtualProtectEx(GetCurrentProcess,ptr(Adress1),SIZE1,PAGE_EXECUTE_READWRITE,nil); VirtualProtectEx(GetCurrentProcess,ptr(Adress2),SIZE2,PAGE_EXECUTE_READWRITE,nil); VirtualProtectEx(GetCurrentProcess,ptr(Adress3),SIZE3,PAGE_EXECUTE_READWRITE,nil); VirtualProtectEx(GetCurrentProcess,ptr(Adress4),SIZE4,PAGE_EXECUTE_READWRITE,nil); //Escribo en memoria Para Address1 //Escribo en memoria Para Address2 //Escribo en memoria Para Address3 //Escribo en memoria Para Address4
Pero luego el programa se me corrompe, Porque? e obviado algo o hecho algo que no debo... Como seria la forma correcta de modificar la memoria...
Es decir, entiendo que para escribir dentro de la memoria, primero tengo que cambiar la proteccion en el espacio a trabajar, luego escribo y al final restaura la proteccion en el lugar trabajado, imagino que no entiendo como restaurar la memoria en el lugar que trabaje luego de haber usado VirtualProtectEx.
Si alguien me puede explicar o ayudar. Gracias