1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
DWORD FindUmaAddy (int PointerLevel, HANDLE hProcHandle, DWORD offsets[], DWORD BaseAdress){
DWORD pointer = BaseAdress;
DWORD pTemp;
DWORD PointerAdress;
for (int i = 0; i < PointerLevel; i++){
if (i == 0){
ReadProcessMemory(hProcHandle, (LPCVOID)pointer, &pTemp, sizeof(pTemp), NULL);
}
PointerAdress = pTemp + offsets[i];
ReadProcessMemory(hProcHandle, (LPCVOID)PointerAdress, &pTemp, sizeof(pTemp), NULL);
}
return PointerAdress;
}
void WriteToMemory(HANDLE hProcHandle){
if (lifeStatus){
DWORD AdressToWrite = FindUmaAddy(3, hProcHandle, LifeOffsets, LifeAdress);
WriteProcessMemory(hProcHandle, (BYTE)AdressToWrite, &LifeValue, sizeof(LifeValue), NULL);
}
}
|