首页
论坛
课程
招聘
[原创]Hide idt Hook By DrxHOOK
2011-12-11 03:55 8059

[原创]Hide idt Hook By DrxHOOK

2011-12-11 03:55
8059
前段时间看了zhouws的hide idt hook src,突然以前自己也瞎搞了一个隐藏IDT HOOK的玩意,差不多快烂了,于是整理一下也发布出来.

原理:与zhouws不同, 这个主要Pass检测, DrX Hook + 代码流离

lkd> u KiTrap01
nt!KiTrap01:
8054311c 6a00            push    0
8054311e 66c74424020000  mov     word ptr [esp+2],0
80543125 55              push    ebp
80543126 53              push    ebx
80543127 56              push    esi
80543128 57              push    edi
80543129 0fa0            push    fs
8054312b bb30000000      mov     ebx,30h

A为8054311e, B为80543125

首先在B处设Inline Hook,这里我使用int 0C7做代理跳转到NewDBEntryAB, 然后在A下读写硬件断点,注意读写跟执行硬件断点是分离

当A处被读取的时候,NewDBEntryAB会捉捕到,然后清除断点,还原INLINE HOOK,接着在A处设INLINE HOOK,在B处设读断点

同理,B处被读取的时候,A处Inline HOOK, B处读断点,这样循环执行,总的来说就是跟检测代码躲猫猫.

效果如下:


不过WINDBG u KiTrap01貌似没被PASS,代码正常运行,弄了好久都搞不明白,求指教


附上代码,环境VS2008,WinDDK 7600.16385.1
系统XP SP2

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

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (10)
雪    币: 153
活跃值: 活跃值 (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stoy 活跃值 2011-12-11 04:11
2
0
这个真难排版,忘了说了,由于没有处理多核CPU,测试环境要单核CPU上,多核CPU可以在msconfig设置成单CPU.
雪    币: 308
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
网监张局 活跃值 1 2011-12-11 04:42
3
0
你的思路非常不错

Test()成功的原因在于,你使用的是 memcpy , 触发了 访问断点

不过访问内存的方法非常多种,他们可能不会触发 int 1 的断点,这就是失败的原因
雪    币: 153
活跃值: 活跃值 (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stoy 活跃值 2011-12-11 05:02
4
0
一般检测也是一段内存一段内存Copy的, 而在我的了解之中,一个指令最多Copy 4个字节,那怕是 rep movs dword ptr es:[edi], dword ptr [esi]在读取断点后也会马上触int1

WinDBG u指令已经触发了int1,有打印信息出来,我把第一次触发就直接UnHook,U指令没检测到int 0C7,这让我百思不得其解
雪    币: 284
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jerrynpc 活跃值 2011-12-11 11:24
5
0
顶礼膜拜九九大神
雪    币: 388
活跃值: 活跃值 (387)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wowocock 活跃值 1 2011-12-11 13:11
6
0
老掉牙的东西,记住DRX只能保护线性地址,不能保护物理地址。通过另外的线性地址,映射到同样的物理地址,就可无视你的 DRX,随意读写你保护的地址。
雪    币: 584
活跃值: 活跃值 (815)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
wuaiwu 活跃值 3 2011-12-11 16:51
7
0
指手画脚的来了。。就你厉害。。
雪    币: 80
活跃值: 活跃值 (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
iforgiven 活跃值 2011-12-11 17:51
8
0
wowocock老牛被喷了。
雪    币: 308
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
网监张局 活跃值 1 2011-12-11 17:56
9
0
wowocock确实是厉害的,说到的是实质问题
雪    币: 2136
活跃值: 活跃值 (402)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
zhouws 活跃值 2 2011-12-11 18:23
10
0
人家放码就不错。

楼主也说了是以前的。

现在很多写代码安全更多是逻辑上的层次判断过滤了
雪    币: 303
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
痞子辉 活跃值 1 2011-12-12 10:32
11
0
呵呵,支持下,放码的别的不说,精神可嘉。。。
游客
登录 | 注册 方可回帖
返回