Как использовать HMODULE в качестве значения DWORD / Hex? (C ++)

У меня есть значение HMODULE, равное: 00007FF695820000, и мне нужно, чтобы оно было
0x7FF695820000, но поскольку значение является правильным шестнадцатеричным значением, преобразование его в шестнадцатеричное просто делает его еще большим шестнадцатеричным значением.

Кто-нибудь знает способ, которым я могу просто добавить 0x к началу или заставить мой ReadProcessMemory думать, что это шестнадцатеричное значение, а не десятичное значение.

Причина, по которой это переменная HMODULE, заключается в том, что я использую ее для получения базового адреса для Solitare.exe, но в настоящее время не могу прочитать адреса из него, потому что мой ReadProcessMemory сначала просто преобразовывает его в шестнадцатеричный код, поэтому считывает неправильный адрес.

0

Решение

Упомянутый адрес 00007FF695820000 является uint64_t целое число Чтобы вызвать функцию, вы должны заботиться о типе переменной, но не о ее визуальном представлении.

Вы можете прочитать память процесса следующим образом:

UINT_PTR addr = (UINT_PTR)GetModuleHandle("Solitare.exe");
ReadProcessMemory(hProc, (void*)addr, pBuffer, nSize, &BytesRead);

Использовать ReadProcessMemory ваш hProc ручка должна иметь PROCESS_VM_READ разрешение на доступ.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector