17#ifndef DTTR_ARRAY_COUNT
18#define DTTR_ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
102 const uint8_t *bytes,
231 const uint8_t *bytes,
DTTR_Result DTTR_Core_PatchGroupDestroy(DTTR_Core_PatchGroup *group)
DTTR_Core_Hook DTTR_Core_Patch
DTTR_Result DTTR_Core_HookFunction(const DTTR_Core_Context *ctx, uintptr_t address, int prologue_size, void *detour, void **out_original, DTTR_Core_Hook **out_hook)
DTTR_Result DTTR_Core_AOBFindInModule(HMODULE mod, const char *aob, uintptr_t *out_addr)
DTTR_Result DTTR_Core_SignatureFind(const DTTR_Core_Context *ctx, const char *sig, const char *mask, uintptr_t *out_addr)
DTTR_Result DTTR_Core_PatchRel32Jump(const DTTR_Core_Context *ctx, uintptr_t address, void *detour, DTTR_Core_Patch **out_patch)
DTTR_Result DTTR_Core_PatchGroupCreate(const DTTR_Core_Context *ctx, DTTR_Core_PatchGroup **out_group)
DTTR_Result DTTR_Core_PatchAOBRel32Jump(const DTTR_Core_Context *ctx, const char *aob, intptr_t offset, void *detour, DTTR_Core_Patch **out_patch)
DTTR_Result DTTR_Core_PatchGroupPatchRel32Jump(DTTR_Core_PatchGroup *group, uintptr_t address, void *detour, DTTR_Core_Patch **out_patch)
DTTR_Result DTTR_Core_PatchGroupHookPointer(DTTR_Core_PatchGroup *group, uintptr_t address, void *new_value, void **out_original, DTTR_Core_Hook **out_hook)
DTTR_Result DTTR_Core_PatchGroupRelease(DTTR_Core_PatchGroup **group)
DTTR_Result DTTR_Core_Unpatch(DTTR_Core_Patch *patch)
Detach a byte patch created by the SDK runtime.
DTTR_Result DTTR_Core_HookAOB(const DTTR_Core_Context *ctx, const char *aob, intptr_t offset, int prologue_size, void *detour, void **out_original, DTTR_Core_Hook **out_hook)
DTTR_Result DTTR_Core_PatchGroupUninstall(DTTR_Core_PatchGroup *group)
DTTR_Result DTTR_Core_AOBFind(const DTTR_Core_Context *ctx, const char *aob, uintptr_t *out_addr)
DTTR_Result DTTR_Core_PatchBytes(const DTTR_Core_Context *ctx, uintptr_t address, const uint8_t *bytes, size_t size, DTTR_Core_Patch **out_patch)
DTTR_Result DTTR_Core_HookPointer(const DTTR_Core_Context *ctx, uintptr_t address, void *new_value, void **out_original, DTTR_Core_Hook **out_hook)
DTTR_Result DTTR_Core_PatchGroupHookFunction(DTTR_Core_PatchGroup *group, uintptr_t address, int prologue_size, void *detour, void **out_original, DTTR_Core_Hook **out_hook)
@ DTTR_TARGET_ADDRESS_REL32_JMP
@ DTTR_TARGET_ADDRESS_HOOK
@ DTTR_TARGET_POINTER_HOOK
@ DTTR_TARGET_ADDRESS_PATCH
@ DTTR_TARGET_AOB_REL32_JMP
DTTR_Result DTTR_Core_Unhook(DTTR_Core_Hook *hook)
DTTR_Result DTTR_Core_PatchGroupInstallTargets(DTTR_Core_PatchGroup *group, const DTTR_Core_TargetSpec *targets, size_t target_count, DTTR_Core_TargetReport *out_report)
DTTR_Result DTTR_Core_PatchGroupPatchBytes(DTTR_Core_PatchGroup *group, uintptr_t address, const uint8_t *bytes, size_t size, DTTR_Core_Patch **out_patch)
struct DTTR_Core_PatchGroup DTTR_Core_PatchGroup
DTTR_Core_TargetKind kind
const uint8_t * patch_bytes