首页
社区
课程
招聘
[讨论]关于如何反 int 2d 反调试
发表于: 2009-8-18 16:49 10130

[讨论]关于如何反 int 2d 反调试

2009-8-18 16:49
10130
加密与解密 第三版 Page 434

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
int 2d 本来是被内核 ntroskrnl.exe 运行DebugServices 用的,但是也可以在RING 3模式下使用它.如果在一个正常的程序中使用 int 2d ,将会发生异常,然而如果知道了这个程序被附加了调试器,就不会产生异常.
push   offset _seh
push   fs:[0]            ;设置SEH
mov    fs:[0], esp
int      2dh               ;如果有调试器,正常运行;否则,会触发异常
nop
pop     fs:[0]
add     esp, 4
检测到调试器
_seh:
      未检测到调试器

int 2d 不仅能够用来检测RING 3下的调试器,同时也能检测 DbgMsg 驱动,这意味着,它可以用来检测RING 0 下的SoftICE.

除此之外, int 2d 还有个妙用,因为附加调试器的程序在运行完 int 2d 后,会跳过此指令之后的一个字节.

int      2dh               
nop              ; 会被跳过

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

读完这段内容后,我调试了一个采用 INT 2D来反调试的程序-----ShellWolf 编写的 AntiDebug Tester . 这个程序就采用了上面的"利用INT 2d(结合 SEH)反调试"的方法.

OD 载入程序,在代码段内搜索二进制 CD 2D(INT 2d的机器码),在 INT 2d 的前面一条指令上 F2下 INT 3  断点. F9 运行程序.只把 FD_INT_2d 钩选上,然后点击 DETECT . OD 就把程序断下来了.

为了使程序按正常流程运行,我们必须进入SEH Handler .

这里我就有个疑问了:

普通的异常, OD 里面有设置可以将其忽略,然后程序会进入 SEH Handler . 但是这个 INT 2d 好像不能这样做.那么直接把 SEH Handler 设置为新的 EIP ,可以吗?

想了想,是不行的.因为异常处理函数是有参数的,而我们没有将参数压栈,就直接进入了异常处理函数,肯定是有问题的.

那怎么才能顺利进入SEH Handler 呢?

目前,我想到的处理方式是:把INT 2d 这条指令改成 INT 3 或者其他能够产生异常的指令.

我想知道的是:有没有其他的方法?书上怎么没有讲如何反INT 2d 呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Maybe patch the IDT ,give user no access to the int 2d,thus Block this kind of DebugService call from user mode
,if no other user mode code invoke int 2d ,this can be done.
Otherwise patch DebugService routine ,filter the caller  by return address.
2009-8-18 17:51
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
3
IDT 不知道是什么东东
2009-8-18 22:08
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
我要idt详细资料
2009-9-16 20:35
0
游客
登录 | 注册 方可回帖
返回
//