43 *(*DTTR_Core_HookPointerFn)(uintptr_t addr,
void *new_value,
void **out_original);
46 *(*DTTR_Core_PatchBytesFn)(uintptr_t addr,
const uint8_t *bytes,
size_t size);
68#define DTTR_DECLARE_STORAGE(type, name) extern type name;
69#define DTTR_DEFINE_STORAGE(type, name) type name;
71#define DTTR_DECLARE_HOOK_STORAGE(name) \
72 extern uintptr_t name##_site; \
73 extern DTTR_Core_Hook *name##_handle;
74#define DTTR_DEFINE_HOOK_STORAGE(name) \
75 uintptr_t name##_site; \
76 DTTR_Core_Hook *name##_handle;
78#define DTTR_STORAGE_SLOT(type, name) DTTR_DECLARE_STORAGE(type, name)
79#define DTTR_HOOK_STORAGE_SLOT(name) DTTR_DECLARE_HOOK_STORAGE(name)
113 const uint8_t *bytes,
void(* DTTR_Core_UnhookFn)(DTTR_Core_Hook *hook)
DTTR_Core_Hook *(* DTTR_Core_HookFunctionFn)(uintptr_t addr, int prologue_size, void *handler, void **out_original)
DTTR_Core_Hook * DTTR_Core_HookAttachPointer(uintptr_t addr, void *new_value, void **out_original)
DTTR_Core_Hook *(* DTTR_Core_PatchBytesFn)(uintptr_t addr, const uint8_t *bytes, size_t size)
bool DTTR_Core_HookIsActive(DTTR_Core_Hook *hook)
bool DTTR_Core_HookDetachOwnerChecked(void *owner)
DTTR_Core_Hook * DTTR_Core_HookAttachFunction(uintptr_t addr, int prologue_size, void *handler, void **out_original)
DTTR_Core_Hook * DTTR_Core_HookPatchBytes(uintptr_t addr, const uint8_t *bytes, size_t size)
uintptr_t(* DTTR_Core_SigscanFn)(HMODULE mod, const char *sig, const char *mask)
bool DTTR_Core_HookCleanupAllChecked()
void DTTR_Core_HookCleanupAll()
Detach all remaining hooks and free the sigscan cache.
uintptr_t DTTR_Core_HookCachedSigscan(HMODULE mod, const char *sig, const char *mask)
void DTTR_Core_HookDetach(DTTR_Core_Hook *hook)
uintptr_t DTTR_Core_HookSigscan(HMODULE mod, const char *sig, const char *mask)
bool(* DTTR_Core_UnhookCheckedFn)(DTTR_Core_Hook *hook)
DTTR_Core_Hook *(* DTTR_Core_HookPointerFn)(uintptr_t addr, void *new_value, void **out_original)
bool DTTR_Core_HookDetachChecked(DTTR_Core_Hook *hook)
void DTTR_Core_HookDetachOwner(void *owner)
void * DTTR_Core_HookSetOwner(void *owner)
bool(* DTTR_Core_HookIsActiveFn)(DTTR_Core_Hook *hook)
DTTR_Core_UnhookCheckedFn unhook_checked
DTTR_Core_HookFunctionFn hook_function
DTTR_Core_UnhookFn unhook
DTTR_Core_HookIsActiveFn hook_is_active
DTTR_Core_HookPointerFn hook_pointer
DTTR_Core_SigscanFn sigscan
DTTR_Core_PatchBytesFn patch_bytes
const DTTR_Core_API * api