首页
社区
课程
招聘
[原创]SSDT hook & inline hook
发表于: 2011-1-16 19:04 10554

[原创]SSDT hook & inline hook

2011-1-16 19:04
10554

又见hook

想法是创建一个通用的hook框架,包括object hook, inline hook, idt hook, SSDT hook, IAT hook , EAT hook, IRP hook

做成统一的接口应该不可能,毕竟针对每个函数可能需在处理不同的情况

很久没有碰过驱动了,今天刚实现了ssdt , inline hook 放上源码,没有什么新意, 算是抛砖引玉吧。

后面会陆续放出其它hook

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 173
活跃值: (132)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
就不怕硬编码不兼容嘛?
        g_OpenProcessAddr = *((ULONG*)((ULONG)KeServiceDescriptorTable->ServiceTableBase + 0x7A * 4));
2011-1-16 19:23
0
雪    币: 163
活跃值: (75)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
呵呵 ,只是对ZwOpenProcess,如果是其它的改ID就行了,只是初期,后边会改掉的
谢谢建议
2011-1-16 19:45
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个不好说啊,虽然处理情况是不一样,但是你要是把不一样的自己实现了,那留给人家的就是一样的,那接口就统一啦。
比如inline HOOK和SSDT hook,实现原理不一样,但是最后的结果是我用你的HOOK框架的话就要提供一个函数,用来做回调,这是一样的地方,把不一样的封装了,把一样的做成接口。你要是能做到:用户只提供个回调的函数、要HOOK的函数名(或地址)、HOOk方式,你就可以HOOK对应的地址,至于内部的实现,都封装了,这就是统一的接口了。
2011-1-17 12:53
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习更加方便了,谢谢分享
2011-1-17 14:33
0
游客
登录 | 注册 方可回帖
返回
//