Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. #include "../thirdparty/minhook/minhook.h"
  2. #include "minhook.hpp"
  3.  
  4. wrappers::minhook::Status translate_minhook_status(const MH_STATUS status)
  5. {
  6. switch (status)
  7. {
  8. case MH_OK: return wrappers::minhook::Status::OK;
  9. case MH_ERROR_ALREADY_INITIALIZED: return wrappers::minhook::Status::ALREADY_INITIALIZED;
  10. case MH_ERROR_NOT_INITIALIZED: return wrappers::minhook::Status::NOT_INITIALIZED;
  11. case MH_ERROR_ALREADY_CREATED: return wrappers::minhook::Status::ALREADY_CREATED;
  12. case MH_ERROR_NOT_CREATED: return wrappers::minhook::Status::NOT_CREATED;
  13. case MH_ERROR_ENABLED: return wrappers::minhook::Status::ENABLED;
  14. case MH_ERROR_DISABLED: return wrappers::minhook::Status::DISABLED;
  15. case MH_ERROR_NOT_EXECUTABLE: return wrappers::minhook::Status::NOT_EXECUTABLE;
  16. case MH_ERROR_UNSUPPORTED_FUNCTION: return wrappers::minhook::Status::UNSUPPORTED_FUNCTION;
  17. case MH_ERROR_MEMORY_ALLOC: return wrappers::minhook::Status::MEMORY_ALLOC;
  18. case MH_ERROR_MEMORY_PROTECT: return wrappers::minhook::Status::MEMORY_PROTECT;
  19. case MH_ERROR_MODULE_NOT_FOUND: return wrappers::minhook::Status::MODULE_NOT_FOUND;
  20. case MH_ERROR_FUNCTION_NOT_FOUND: return wrappers::minhook::Status::FUNCTION_NOT_FOUND;
  21.  
  22. default: return wrappers::minhook::Status::UNKNOWN;
  23. }
  24. }
  25.  
  26. wrappers::minhook::Status wrappers::minhook::initialize()
  27. {
  28. return translate_minhook_status(MH_Initialize());
  29. }
  30.  
  31. wrappers::minhook::Status wrappers::minhook::shutdown()
  32. {
  33. return translate_minhook_status(MH_Uninitialize());
  34. }
  35.  
  36. wrappers::minhook::Status wrappers::minhook::create_hook(const uintptr_t target_function, const uintptr_t replacement_function, uintptr_t* original_function)
  37. {
  38. return translate_minhook_status(MH_CreateHook(reinterpret_cast<LPVOID>(target_function), reinterpret_cast<LPVOID>(replacement_function), reinterpret_cast<LPVOID*>(original_function)));
  39. }
  40.  
  41. wrappers::minhook::Status wrappers::minhook::remove_hook(const uintptr_t target_function)
  42. {
  43. return translate_minhook_status(MH_RemoveHook(reinterpret_cast<LPVOID>(target_function)));
  44. }
  45.  
  46. wrappers::minhook::Status wrappers::minhook::enable_hook(const uintptr_t target_function)
  47. {
  48. return translate_minhook_status(MH_EnableHook(reinterpret_cast<LPVOID>(target_function)));
  49. }
  50.  
  51. wrappers::minhook::Status wrappers::minhook::disable_hook(const uintptr_t target_function)
  52. {
  53. return translate_minhook_status(MH_DisableHook(reinterpret_cast<LPVOID>(target_function)));
  54. }
  55.  
  56. wrappers::minhook::Status wrappers::minhook::queue_enable_hook(const uintptr_t target_function)
  57. {
  58. return translate_minhook_status(MH_QueueEnableHook(reinterpret_cast<LPVOID>(target_function)));
  59. }
  60.  
  61. wrappers::minhook::Status wrappers::minhook::queue_disable_hook(const uintptr_t target_function)
  62. {
  63. return translate_minhook_status(MH_QueueDisableHook(reinterpret_cast<LPVOID>(target_function)));
  64. }
  65.  
  66. wrappers::minhook::Status wrappers::minhook::apply_queued()
  67. {
  68. return translate_minhook_status(MH_ApplyQueued());
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement