funchook

Types

FuncHook = ptr funchook_t
FUNCHOOK_ERROR = enum
  INTERNAL_ERROR = -1, SUCCESS = 0, OUT_OF_MEMORY, ALREADY_INSTALLED, DISASSEMBLY,
  IP_RELATIVE_OFFSET, CANNOT_FIX_IP_RELATIVE, FOUND_BACK_JUMP,
  TOO_SHORT_INSTRUCTIONS, MEMORY_ALLOCATION, MEMORY_FUNCTION, NOT_INSTALLED

Procs

proc funchook_create(): FuncHook {...}{.discardable, cdecl, importc.}
Create a funchook handle, return nil when out-of-memory.
proc funchook_prepare(hook: FuncHook; src: ptr pointer; dst: pointer): FUNCHOOK_ERROR {...}{.
    discardable, cdecl, importc.}
Prepare hooking
proc funchook_install(hook: FuncHook; flags: int): FUNCHOOK_ERROR {...}{.discardable, cdecl,
    importc.}
Install hooks prepared by funchook_prepare().
proc funchook_uninstall(hook: FuncHook; flags: int): FUNCHOOK_ERROR {...}{.discardable,
    cdecl, importc.}
Uninstall hooks installed by funchook_install().
proc funchook_destroy(hook: FuncHook): FUNCHOOK_ERROR {...}{.discardable, cdecl, importc.}
Destroy a funchook handle
proc funchook_error_message(hook: FuncHook): cstring {...}{.discardable, cdecl, importc.}
Get error message
proc funchook_set_debug_file(name: cstring): FUNCHOOK_ERROR {...}{.discardable, cdecl,
    importc.}
Set log file name to debug funchook itself.

Converters

converter toPointer(x: int): pointer {...}{.raises: [], tags: [].}

Templates

template initHook(): FuncHook
template prepare(fh: FuncHook; src: ptr any; dst: pointer): FUNCHOOK_ERROR
template install(fh: FuncHook; flags = 0): FUNCHOOK_ERROR
template uninstall(fh: FuncHook; flags = 0): FUNCHOOK_ERROR
template destroy(fh: FuncHook): FUNCHOOK_ERROR
template errorMessage(fh: FuncHook): string
template setDebugFile(filename: string): FUNCHOOK_ERROR