首页
论坛
课程
招聘
[原创]ring0 head inline hook lib
2010-8-31 12:48 5783

[原创]ring0 head inline hook lib

2010-8-31 12:48
5783
没啥子技术含量,参考了海风月影的ring3inline hook lib库,主要是简化你的编程工作量,有了此库,你不需要使用一大堆的内联汇编来写那个裸函数,也不需要为了堆栈破坏问题而蓝屏,目前只支持32系统……
来看看到底挂钩一个函数有多简单!你可以专注的编写过滤逻辑而完全不需要理会挂钩过程
typedef NTSTATUS  ( __stdcall *DZwCreateFile)(
	PHANDLE  FileHandle,
	ACCESS_MASK  DesiredAccess,
	POBJECT_ATTRIBUTES  ObjectAttributes,
	PIO_STATUS_BLOCK  IoStatusBlock,
	PLARGE_INTEGER  AllocationSize,
	ULONG  FileAttributes,
	ULONG  ShareAccess,
	ULONG  CreateDisposition,
	ULONG  CreateOptions,
	PVOID  EaBuffer,
	ULONG  EaLength
	);

NTSTATUS Detour_NtCreateFile(DZwCreateFile Fun, 
			     PHANDLE  FileHandle,
     ACCESS_MASK  DesiredAccess,
    POBJECT_ATTRIBUTES  ObjectAttributes,
     PIO_STATUS_BLOCK  IoStatusBlock,
    PLARGE_INTEGER  AllocationSize,
     ULONG  FileAttributes,
    __in ULONG  ShareAccess,
    __in ULONG  CreateDisposition,
    __in ULONG  CreateOptions,
    __in_opt PVOID  EaBuffer,
    __in ULONG  EaLength
    )
{
	KdPrint(("NtCreateFileRoutine Called! ProcessId:%d FilePath:%ws\n",PsGetCurrentProcessId(),ObjectAttributes->ObjectName->Buffer));
	return Fun(FileHandle,DesiredAccess,ObjectAttributes,IoStatusBlock,AllocationSize,FileAttributes,ShareAccess,CreateDisposition,CreateOptions,
		EaBuffer,EaLength);
}
安装钩子只要一个函数就可完全搞定
BOOLEAN __stdcall InstallHook(PVOID FuncAddr,PVOID NewAddr,BOOLEAN IsStubPaged,HOOK_INFO* Info);


第五届安全开发者峰会(SDC 2021)10月23日上海召开!限时2.5折门票(含自助午餐1份)

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 209
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ezhimeng 活跃值 2010-8-31 15:53
2
0
学习~~~~~~~~
谢谢楼主~~~~~~~~
雪    币: 317
活跃值: 活跃值 (12)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
comealong 活跃值 2010-8-31 17:07
3
0
多处理器的情况处理了么?
雪    币: 8
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wybymz 活跃值 2010-8-31 17:31
4
0
已经用Dpc方法来处理多处理器平台了,其实InterlockedXX就满足条件了,只是改写5字节而已
雪    币: 478
活跃值: 活跃值 (640)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 活跃值 25 2010-8-31 19:19
5
0
lib体积真大. Hook方式就一种Header Jmp怎么会这么大呀.

某某用的Hook引擎支持多种模式,也才30kb左右.
你的dasm引擎很大吧...
雪    币: 317
活跃值: 活跃值 (12)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
comealong 活跃值 2010-8-31 21:47
6
0
线程被中断在被hook的函数的前5个字节的情况处理过没? 如果这也处理过, 那就太强大了, 用定了.
对了, 最好把源代码共享了吧! 既然共享了
雪    币: 209
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ezhimeng 活跃值 2010-9-3 14:33
7
0
支持所有M$的系统吗?比如Win7?
能Hook所有函数?
雪    币: 209
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
magicknife 活跃值 2010-9-6 11:40
8
0
如果能hook全部函数那绝对是鬼扯,没有任何一个hook lib 可以全部函数的,某些是不能hook的,否则会蓝屏
游客
登录 | 注册 方可回帖
返回