36 lines
700 B
C++
36 lines
700 B
C++
#pragma once
|
|
#include "Base.h"
|
|
|
|
#define HOOK_MAX_COUNT 0x100
|
|
|
|
typedef struct _HOOK_INFO
|
|
{
|
|
void* origon_func;
|
|
|
|
unsigned char* destroy_code[14];
|
|
|
|
unsigned char* m_trampo_line;
|
|
|
|
}HOOK_INFO, * PHOOK_INFO;
|
|
|
|
|
|
class inline_hooks_manager
|
|
{
|
|
public:
|
|
static inline_hooks_manager* fn_get_instance();
|
|
|
|
auto inline_install_hook(void* target_func,void* my_function, void** origon_func) -> BOOL;
|
|
|
|
auto inline_remov_hook(void** origon_func)->BOOL;
|
|
|
|
auto inline_remov_all_hook()->BOOL;
|
|
|
|
auto bulid_trampo_line(void* target_func, UINT64 break_byte_count) -> void*;
|
|
|
|
private:
|
|
static inline_hooks_manager* instance;
|
|
unsigned char* m_trampo_line;
|
|
|
|
UINT64 m_cur_hook_count;
|
|
_HOOK_INFO m_Info[HOOK_MAX_COUNT];
|
|
}; |