Я пытаюсь сделать хаки для офлайн-игры под названием «TCG Card Shop Simulator», и столкнулся с несколькими проблемами, связанными с ASLR (рандомизацией макета адресного пространства), и мне интересно, почему мой код больше не работает. >
Я беру базовый адрес моей программы и добавляю первое значение, определяющее, как она называется, затем складываю все векторы с помощью готовой функции, она не печатает правильное значение и каким-то образом читает «0» байтов
Я пытаюсь сделать хаки для офлайн-игры под названием «TCG Card Shop Simulator», и столкнулся с несколькими проблемами, связанными с ASLR (рандомизацией макета адресного пространства), и мне интересно, почему мой код больше не работает. > Я беру базовый адрес моей программы и добавляю первое значение, определяющее, как она называется, затем складываю все векторы с помощью готовой функции, она не печатает правильное значение и каким-то образом читает «0» байтов [code]#include #include #include #include #include
DWORD GetModuleBaseAddress(TCHAR* lpszModuleName, DWORD pID) { DWORD dwModuleBaseAddress = 0; HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID); // make snapshot of all modules within process MODULEENTRY32 ModuleEntry32 = { 0 }; ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
if (Module32First(hSnapshot, &ModuleEntry32)) //store first Module in ModuleEntry32 { do { if (_tcscmp(ModuleEntry32.szModule, lpszModuleName) == 0) // if Found Module matches Module we look for -> done! { dwModuleBaseAddress = (DWORD)ModuleEntry32.modBaseAddr; break; } } while (Module32Next(hSnapshot, &ModuleEntry32)); // go through Module entries in Snapshot and store in ModuleEntry32