Пример изображения NULL-адрес или динамический адрес из указателя
Затем я выполняю поиск по статье, как предотвратить сбой, если память не читается. или Адрес null
Пример NULL или нечитаемый адрес:
Код: Выделить всё
????????Код: Выделить всё
uintptr_t FindDMAAddy(uintptr_t ptr, std::vector offsets)
{
try {
uintptr_t addr = ptr;
for (unsigned int i = 0; i < offsets.size(); ++i)
{
if (IsBadReadPtr((uintptr_t*)addr, sizeof(uintptr_t)))
{
return NULL; // Invalid address
}
addr = *(uintptr_t*)addr;
addr += offsets[i];
}
return addr;
}
catch (...) { return NULL; }
}
Код: Выделить всё
DWORD gameModule = (DWORD)GetModuleHandle("GAME.exe");
uintptr_t checkAddress = FindDMAAddy(gameModule + 0x7EC208, { 0xD4C });
int value = *(int*)checkAddress;
Почему и как это исправить, если я хочу получить значение без сбоев?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ll-address
Мобильная версия