diff --git a/hook.hpp b/hook.hpp index 5ae1404..9119ab8 100644 --- a/hook.hpp +++ b/hook.hpp @@ -36,12 +36,24 @@ namespace hook { - static void write_to_readonly(void* addr, void* data, int size) + inline void write_to_readonly(void* addr, void* data, int size) { DWORD old_flags; - VirtualProtect((LPVOID)addr, size, PAGE_EXECUTE_READWRITE, &old_flags); - memcpy((void*)addr, data, size); - VirtualProtect((LPVOID)addr, size, old_flags, &old_flags); + if(!VirtualProtect( + addr, + size, + PAGE_EXECUTE_READWRITE, + &old_flags + )) return; + + memcpy(addr, data, size); + + VirtualProtect( + addr, + size, + old_flags, + &old_flags + ); } class detour @@ -119,15 +131,9 @@ namespace hook std::uint8_t org_bytes[sizeof(jmp_code)]; }; - static std::map> hooks{}; + inline std::map> hooks{}; - /* - Author: xerox - Date: 12/19/2019 - - Create Hook without needing to deal with objects - */ - static void make_hook(void* addr_to_hook, void* jmp_to_addr, bool enable = true) + inline void make_hook(void* addr_to_hook, void* jmp_to_addr, bool enable = true) { if (!addr_to_hook) return; @@ -141,40 +147,21 @@ namespace hook ); } - /* - Author: xerox - Date: 12/19/2019 - - Enable hook given the address to hook - */ - static void enable(void* addr) + inline void enable(void* addr) { if (!addr) return; hooks.at(addr)->install(); } - /* - Author: xerox - Date: 12/19/2019 - - Disable hook givent the address of the hook - */ - static void disable(void* addr) + inline void disable(void* addr) { if (!addr) return; hooks.at(addr)->uninstall(); } - - /* - Author: xerox - Date: 12/19/2019 - - Remove hook completely from vector - */ - static void remove(void* addr) + inline void remove(void* addr) { if (!addr) return;