此篇介绍重点:EasyHook主要导出函数
EasyHook主要导出函数:
//插入钩子
DRIVER_SHARED_API(NTSTATUS, LhInstallHook(
void* InEntryPoint,
void* InHookProc,
void* InCallback,
TRACED_HOOK_HANDLE OutHandle));
//使用钩子生效
EASYHOOK_NT_EXPORT LhSetExclusiveACL(
ULONG* InThreadIdList,
ULONG InThreadCount,
TRACED_HOOK_HANDLE InHandle);
函数的原型在,EasyHook中均可看到,“EasyHook2.5\Public\easyhook.h"
参数说明:
DRIVER_SHARED_API(NTSTATUS, LhInstallHook(
void* InEntryPoint,
//真实API,如CreateFile
void* InHookProc,
//钩子函数,如MyCreateFile
void* InCallback,
//回调函数,一般设置为NULL
TRACED_HOOK_HANDLE OutHandle));
//返回句柄,该句柄以链表方式记录钩子信息,内部结构内容非常多。
EASYHOOK_NT_EXPORT LhSetExclusiveACL(
ULONG* InThreadIdList,
//定义为一个数组如ULONG HookCreateFileW_ACLEntries[1] = {0};
ULONG InThreadCount,
//一般设置为1
TRACED_HOOK_HANDLE InHandle);
//由LhInstallHook的第4个参数返回
此两个函数必须成对调用。类似于,先处理钩子,再使用钩子生效,后面将会提给出反汇编的验证代码。