#pragma once namespace MinHook_Hooks { uint64_t hookSmall(void); uint64_t hookBranch(uint64_t); uint64_t hookRip_relative(void); void hookAVX(float num, void* res); uint32_t hookRDRAND(void); uint32_t hookLoop(uint32_t x); uint32_t hookTail_recursion(uint32_t x); }; class MinHook : public AbstractHookEngine { private: public: bool hook_all(); bool unhook_all(); MinHook() : AbstractHookEngine("MinHook") { } friend uint64_t MinHook_Hooks::hookSmall(void); friend uint64_t MinHook_Hooks::hookBranch(uint64_t); friend uint64_t MinHook_Hooks::hookRip_relative(void); friend void MinHook_Hooks::hookAVX(float num, void* res); friend uint32_t MinHook_Hooks::hookRDRAND(void); friend uint32_t MinHook_Hooks::hookLoop(uint32_t x); friend uint32_t MinHook_Hooks::hookTail_recursion(uint32_t x); };