Сбой внутренней памяти чтения C++ для NULL-адресаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Сбой внутренней памяти чтения C++ для NULL-адреса

Сообщение Anonymous »

Моя проблема вылетает при попытке чтения динамической памяти, как на этом рисунке
Пример изображения NULL-адрес или динамический адрес из указателя
Затем я выполняю поиск по статье, как предотвратить сбой, если память не читается. или Адрес null
Пример NULL или нечитаемый адрес:

Код: Выделить всё

????????
для предотвращения сбоев My Coding:

Код: Выделить всё

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; }
}
затем я выполняю функцию FindDMAAddy для чтения значения:

Код: Выделить всё

DWORD gameModule = (DWORD)GetModuleHandle("GAME.exe");
uintptr_t checkAddress = FindDMAAddy(gameModule + 0x7EC208, { 0xD4C });
int value = *(int*)checkAddress;
И падение значения чтения. но если я удалю int value = *(int*)checkAddress; . или просто чтение результата адреса нормально, без сбоев.
Почему и как это исправить, если я хочу получить значение без сбоев?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ll-address
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»