He intentado hacer un pequeño programa en C++ que he probado de multiples maneras poder acceder a este valor de la dirección de memoria pero no he podido. Sera que alguien puede hecharme una mano?
Seria algo asi? : ReadProcessMemory(hproc, (LPCVOID)((((((ClientDLL + 0x007C3D1C) + 0x10) + 0x2c) + 0x3e0) + 0x17c)), &buff, 1, NULL);
Quiero obtener la dirección a la que apuntan (y obviamente su valor).
A nivel de sintaxis, que debo hacer?
PD: Se que debo obtener el handler del modulo client.dll y de alli partir (base address creo que se llama) pero he intentado de todo y nada
alguna idea?.
Saludos.
No entiendo la imagen con lo de varios de niveles de apuntamiento pero supongo que te referis a punteros que apuntan a otros y así sucesivamente,
Si es así, se debe llamar multiples veces a ReadProcessMemory:
ReadProcessmMemory(h,DLLBase+Off,&Ptr1,sizeof(Ptr1),&read)
ReadProcessmMemory(h,Ptr1,&Ptr2,sizeof(Ptr2),&read)
ReadProcessmMemory(h,Ptr2,&Ptr3,sizeof(Ptr3),&read)
ReadProcessmMemory(h,ptr3,&Value,sizeof(Value),&read)
En el programa del proceso remoto ese puntero deberia estar declarado como: Type*** Ptr