阅读:1979回复:5
如何搞定这个anti-softice
某个病毒利用了这种anti-softice技术:
1.hook idt1_handler,即在idt1_handler里面加入jmp hook_handler的指令 2.把idt1_handler的地址放在dr0里,并置dr7相应的位 3.访问idt1_handler,产生对idt1自身的中断 这里我不太明白:如果没有加载softice这里可以正常执行,说明windows自己的handler里没有对中断产生地址再一次访问的指令,相反softice hook的handler却有这样的指令因此引起中断嵌套引起BS。 大虾帮忙看看,有什么好方法bypass这个anti,让softice可以调试这个东西自己的handler |
|
沙发#
发布于:2007-02-19 20:25
仅此而已?是否还有seh等陷阱?drx是否会参与解码之类的运算?如果就这么简单的话试试直接patch
|
|
|
板凳#
发布于:2007-02-20 11:06
这里我不太明白:如果没有加载softice这里可以正常执行,说明windows自己的handler里没有对中断产生地址再一次访问的指令,相反softice hook的handler却有这样的指令因此引起中断嵌套引起BS
<- 这点呢,这里我不太明白 直接patch不行,因为它自己hook的handler会参与驱动别的地方解码,所以我想调试它的handler,现在的想法是hook softice的int1 handler,根据eip来改dr0,bypass这个嵌套。但是我hook之后,在softice一F8就死机。 |
|
地板#
发布于:2007-02-20 13:02
不是patch softice。。。
patch目标程序不行? 把handler记下来,手动解码。。。 |
|
|
地下室#
发布于:2007-02-20 20:13
参考我以前的绕过DR0保护直接通过物理地址访问内存的方法,来绕过DRX寄存器的保护,嘿嘿.....
|
|
|
5楼#
发布于:2007-02-22 23:02
@xikug,静态分析肯定可以,但是我还想patch softice,不明白为什么只有顶层的softice handler不能被hook,所有下层被hook的handler能继续被hook,难道是softice的bug?
@wowocock,你说的是bypass EPA的方法么?http://www.nsfocus.net/index.php?act=magazine&do=view&mid=2152 我这个东东不能完全扔掉DRX。另外就这个通过物理内存改IDT的方法,方法的确很巧妙,但当初看的时候就有个问题:直接改DRx不让它指向idt,然后改idt,再把DRx还原就行了,为什么要多做那么多直接改idt呢? |
|