Возник вопрос о работе на 64 бит приложениях
В 32бит приложении вызов хукнулся и все окей, а в 64бит приложении все через попу..
Как видно на скрине в коде появляется несуществующий адрес, который не относится к моей dll
Есть у кого мысли по этому поводу?
Свернуть ↑
void CPatchEngine::WriteCall(BYTE *pAddress, DWORD *pNewFunc)
{
BYTE pCall = 0xE8;
DWORD pNewFuncAddr = (DWORD)pNewFunc - (DWORD)(pAddress + 5);
WriteMemory(pAddress, &pCall, sizeof(pCall));
WriteMemory(pAddress + 1, &pNewFuncAddr, sizeof(pNewFuncAddr));
}Code: C++
void CPatchEngine::WriteMemory(BYTE *pAddress, LPCVOID pData, SIZE_T nSize)
{
VirtualProtectEx(hL2Server, (LPVOID)(pAddress), nSize, PAGE_EXECUTE_READWRITE, &dwOldProtect)
WriteProcessMemory(hL2Server, (LPVOID)(pAddress), pData, nSize, NULL)
}
Code: C++
Свернуть ↑Развернуть ↓