diff options
author | Filip Gawin <filip.gawin@zoho.com> | 2020-03-27 21:20:28 +0100 |
---|---|---|
committer | Filip Gawin <filip.gawin@zoho.com> | 2020-03-27 21:25:39 +0100 |
commit | 184a80cc3b7ecd054f09ec5519fded5fb4efa162 (patch) | |
tree | a2bff32a40052ee9740c82f88e403f003c3d03ad /src | |
parent | removed windows.h for most .cpps (diff) | |
download | re3-184a80cc3b7ecd054f09ec5519fded5fb4efa162.tar re3-184a80cc3b7ecd054f09ec5519fded5fb4efa162.tar.gz re3-184a80cc3b7ecd054f09ec5519fded5fb4efa162.tar.bz2 re3-184a80cc3b7ecd054f09ec5519fded5fb4efa162.tar.lz re3-184a80cc3b7ecd054f09ec5519fded5fb4efa162.tar.xz re3-184a80cc3b7ecd054f09ec5519fded5fb4efa162.tar.zst re3-184a80cc3b7ecd054f09ec5519fded5fb4efa162.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/patcher.h | 12 | ||||
-rw-r--r-- | src/core/re3.cpp | 2 |
2 files changed, 4 insertions, 10 deletions
diff --git a/src/core/patcher.h b/src/core/patcher.h index 3dfbb05c..2722b6fd 100644 --- a/src/core/patcher.h +++ b/src/core/patcher.h @@ -117,16 +117,10 @@ Nop(AT address, unsigned int nCount) Unprotect_internal(); } -template<typename AT, typename HT> inline void -InjectHook(AT address, HT hook, unsigned int nType=PATCH_NOTHING) +template <typename T> inline void +InjectHook(uintptr_t address, T hook, unsigned int nType = PATCH_NOTHING) { - uint32 uiHook; - _asm - { - mov eax, hook - mov uiHook, eax - } - InjectHook_internal((uint32)address, uiHook, nType); + InjectHook_internal(address, reinterpret_cast<uintptr_t>((void *&)hook), nType); } inline void ExtractCall(void *dst, uint32_t a) diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 137a890c..ffb2a7a2 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -71,7 +71,7 @@ InjectHook_internal(uint32 address, uint32 hook, int type) break; } - *(ptrdiff_t*)(address + 1) = hook - address - 5; + *(ptrdiff_t*)(address + 1) = (uintptr_t)hook - (uintptr_t)address - 5; if(type == PATCH_NOTHING) VirtualProtect((void*)(address + 1), 4, protect[0], &protect[1]); else |