5 #ifndef _HOOK_STRUCTURE_H_ 6 #define _HOOK_STRUCTURE_H_ 98 _In_ void *HookObject,
117 #endif // _HOOK_STRUCTURE_H_ LIST_HEAD RemovedRegions
All the removed regions are inserted here. The regions must be committed in the exact same order they...
INTSTATUS IntHookObjectDestroy(HOOK_OBJECT_DESCRIPTOR **Object, DWORD Flags)
Destroy an entire hook object. All regions belonging to this object will be removed.
void ** Hooks
Array of hooks. They will usually be HOOK_GVA objects.
struct _HOOK_OBJECTS_STATE * PHOOK_OBJECT_STATE
PHOOK_OBJECT_DESCRIPTOR Object
Parent object. Optional, but it is strongly recommended to link a region to an object.
DWORD ObjectType
One of the INTRO_OBJECT_TYPE values.
int INTSTATUS
The status data type.
BOOLEAN ObjectsRemoved
True whenever an object has been removed.
QWORD HookStart
Guest virtual address of the hooked region.
void * IntHookObjectFindRegion(QWORD Gva, void *HookObject, BYTE HookType)
Searches for a region of hooked memory inside the provided hook object.
struct _HOOK_REGION_DESCRIPTOR HOOK_REGION_DESCRIPTOR
QWORD HookLength
Length of the hooked region. May span multiple pages.
BOOLEAN RegionsRemoved
True if regions have been removed from this object (used by the commit function). ...
INTSTATUS IntHookObjectInit(void)
Initialize the hook object system.
LIST_ENTRY Link
The list entry element.
HOOK_HEADER Header
The hook header.
INTSTATUS IntHookObjectUninit(void)
Uninit the hook object system.
struct _HOOK_OBJECT_DESCRIPTOR HOOK_OBJECT_DESCRIPTOR
INTSTATUS IntHookObjectRemoveRegion(HOOK_REGION_DESCRIPTOR **Region, DWORD Flags)
Remove a hooked region of memory.
struct _HOOK_OBJECTS_STATE HOOK_OBJECT_STATE
INTSTATUS IntHookObjectCommit(void)
Commit removed hook objects and regions.
struct _HOOK_REGION_DESCRIPTOR * PHOOK_REGION_DESCRIPTOR
LIST_HEAD Objects
List of objects.
INTSTATUS IntHookObjectHookRegion(void *Object, QWORD Cr3, QWORD Gla, SIZE_T Length, BYTE Type, void *Callback, void *Context, DWORD Flags, HOOK_REGION_DESCRIPTOR **Region)
Hook a contiguous region of virtual memory inside the provided virtual address space.
QWORD Cr3
The CR3 of the object. If this is a kernel object, Cr3 must be 0.
LIST_ENTRY Link
The list entry element.
struct _HOOK_OBJECT_DESCRIPTOR * PHOOK_OBJECT_DESCRIPTOR
INTSTATUS IntHookObjectCreate(DWORD ObjectType, QWORD Cr3, void **Object)
Create a new hook object.
DWORD HooksCount
Number of hooks set for this region of memory.