
08.08.2024, 17:19
|
|
Участник форума
Регистрация: 23.10.2020
Сообщений: 135
С нами:
2925217
Репутация:
83
|
|
void* SetCallHook(uintptr_t HookAddress, void* DetourFunction) {
uintptr_t OriginalFunction = *reinterpret_cast(HookAddress + 1) + HookAddress + 5;
DWORD oldProt;
VirtualProtect(reinterpret_cast(HookAddress + 1), sizeof(uintptr_t), PAGE_READWRITE, &oldProt);
*reinterpret_cast(HookAddress + 1) = reinterpret_cast(DetourFunction) - HookAddress - 5;
VirtualProtect(reinterpret_cast(HookAddress + 1), sizeof(uintptr_t), oldProt, &oldProt);
return reinterpret_cast(OriginalFunction);
}
а причем тут хук адрес + 1 Откуда взялась единица? объясните пожалуйста
|
|
|