首页
社区
课程
招聘
[原创]无痕HOOK 检测及对抗
发表于: 2025-8-6 16:46 16095

[原创]无痕HOOK 检测及对抗

2025-8-6 16:46
16095

无痕HOOK的检测,没看到有人写,那我就抛砖引玉,写几个思路


大家也知道,攻防这个东西就是打个信息差,这些东西一旦被发出来..也就没啥用了,就让我来当这个恶人吧,哈哈哈

下面我将详解若干检测,并附上对抗思路


无痕hook:

基于硬件虚拟化VT-x或者AMD-v的扩展页表(EPT或NPT)功能使读写和执行访问分离进行inline hook操作,表现为执行指令与读取指令不一致


(应用层驱动层hook并无区别,以下的思路不做此区分,代码在最后)




首先了解几个概念:


单步分支单步, 硬断页面重映射接管IDT接管CR3指令截断执行预测异常处理LBR



· 单步:             利用flags寄存器TF标志位实现单步执行,设置后每执行一条指令会陷入向量号为1的中断,即DB中断

· 分支单步       设置MSR_DEBUGCTRL的BTF位及flags寄存器TF标志位即可在执行到跳转指令时才会陷入DB中断(JCC指令判定失败不会触发)

· 硬断:             设置DR寄存器为目标地址以达到访问或者执行会触发DB中断的效果

· 页面重映射:   通过将目标页面重新映射到其他位置以达到规避GVA的判断,或者映射到应用层以利用应用层VEH接管无法回滚的异常

· 接管IDT:        构造一份IDT替换IDTR.base以达到接管无法回滚的异常,防止蓝屏,或检查触发了哪些异常

· 接管CR3:       构造一份仅映射ntos模块以及自身模块还有目标页的页表,用以获取hook handler的地址

· 执行预测;       利用符号执行或者模拟执行对目标指令进行执行预测,中断后对比寄存器或者栈内是否有不应该有的数据

· 指令截断:       即执行时从指令中间开始执行,对比预测执行结果与实际执行结果,以达到探测执行分离的效果

· 异常处理:       r0只有SEH,如果存在hook,单步时RIP就会出现偏差,异常回滚会失败导致蓝屏,R3有SEH和VEH,VEH接管全局异常.

· LBR:               即"最后分支记录"可以搭配硬断完成hook handler address的探测


实际上的概念细节实现比较复杂,建议直接看代码,我不再赘述

以上关键词可以自由搭配组合,下面我介绍几种使用方法:


    

效果:



虽然不会导致蓝屏,但是执行环境毕竟和驱动层有区别,且用且珍惜


利用ZwMapViewOfSection函数将目标地址映射到应用层:


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 2025-8-6 18:30 被aljt_糖刀编辑 ,原因: 提示
收藏
免费 583
支持
分享
最新回复 (454)
雪    币: 174
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
看看!!!!!!!!
2025-8-6 20:04
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
优秀
2025-8-6 20:25
0
雪    币: 293
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
66666666
2025-8-6 20:35
0
雪    币: 16
活跃值: (2095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习一下
2025-8-6 20:45
0
雪    币: 425
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
666
2025-8-6 22:05
0
雪    币: 310
活跃值: (215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习学习
2025-8-6 22:07
0
雪    币: 477
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
这个讨论对我很有帮助,谢谢!
2025-8-6 22:34
0
雪    币: 2429
活跃值: (4683)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
666
2025-8-6 22:57
0
雪    币: 4567
活跃值: (4941)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
回复来看看,先谢过楼主!
2025-8-6 23:29
0
雪    币: 1350
活跃值: (2767)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
666
2025-8-6 23:55
0
雪    币: 978
活跃值: (3060)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
666
2025-8-6 23:57
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666.
2025-8-7 02:08
0
雪    币: 572
活跃值: (1375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这些都需要密罐么?总不可能每个函数都加上检测吧
2025-8-7 02:49
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
2025-8-7 05:17
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
6啊大佬
2025-8-7 06:04
0
雪    币: 13
活跃值: (399)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
2025-8-7 06:47
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
????
2025-8-7 07:13
0
雪    币: 219
活跃值: (698)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
看不懂也强制看看
2025-8-7 07:37
0
雪    币: 7
活跃值: (360)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
感谢分享
2025-8-7 08:07
0
雪    币: 648
活跃值: (2139)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
看不懂也强制看看
2025-8-7 08:13
0
雪    币: 0
活跃值: (240)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
22分钟前
2025-8-7 08:29
0
雪    币: 8558
活跃值: (5766)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
感谢
2025-8-7 08:38
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
感谢大佬分享
2025-8-7 08:47
0
雪    币: 5181
活跃值: (3874)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
谢谢分享!学习一下!
2025-8-7 08:48
2
游客
登录 | 注册 方可回帖
返回