You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
451B

  1. #pragma once
  2. class AbstractHookEngine {
  3. private:
  4. const char* name_;
  5. public:
  6. /* boolean for each hook test case, which are set by the hooks */
  7. struct {
  8. bool small_;
  9. bool branch;
  10. bool rip_relative;
  11. };
  12. public:
  13. AbstractHookEngine(const char* name) : name_(name) {
  14. }
  15. virtual bool hook_all() = 0;
  16. virtual bool unhook_all() = 0;
  17. bool all_hooked() {
  18. return small_ && branch && rip_relative;
  19. }
  20. const char* name() {
  21. return name_;
  22. }
  23. };