DWORD getPointer(HANDLE pHandle, DWORD pID, char name[], std::vector<DWORD> offsets) {
DWORD gameBase = GetModuleBaseAddress(pID, name);
DWORD address = gameBase;
if (offsets.empty()) {
return NULL;
}
address += offsets[0];
for (std::vector<DWORD>::iterator it = offsets.begin() + 1; it != offsets.end(); ++it) {
ReadProcessMemory(pHandle, (LPVOID)address, &address, 4, 0);
address = address + *it;
}
if (address <= gameBase) {
return NULL;
}
return address;
}
std::vector<DWORD> pointer = { 0x0163B0A4, 0x384, 0x590, 0x0, 0x260, 0x73c, 0x224 }
address = getPointer(pHandle, pID, gameFile, vectorOfOffsets);