tttt__tttt
驱动牛犊
驱动牛犊
  • 注册日期2006-03-17
  • 最后登录2007-02-26
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1979回复:5

如何搞定这个anti-softice

楼主#
更多 发布于:2007-02-19 02:25
  某个病毒利用了这种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
xikug
驱动小牛
驱动小牛
  • 注册日期2001-09-25
  • 最后登录2013-09-27
  • 粉丝1
  • 关注0
  • 积分1001分
  • 威望169点
  • 贡献值0点
  • 好评度168点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-02-19 20:25
仅此而已?是否还有seh等陷阱?drx是否会参与解码之类的运算?如果就这么简单的话试试直接patch
http://www.debugman.com
tttt__tttt
驱动牛犊
驱动牛犊
  • 注册日期2006-03-17
  • 最后登录2007-02-26
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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就死机。
xikug
驱动小牛
驱动小牛
  • 注册日期2001-09-25
  • 最后登录2013-09-27
  • 粉丝1
  • 关注0
  • 积分1001分
  • 威望169点
  • 贡献值0点
  • 好评度168点
  • 原创分1分
  • 专家分0分
地板#
发布于:2007-02-20 13:02
不是patch softice。。。
patch目标程序不行?

把handler记下来,手动解码。。。
http://www.debugman.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2007-02-20 20:13
参考我以前的绕过DR0保护直接通过物理地址访问内存的方法,来绕过DRX寄存器的保护,嘿嘿.....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
tttt__tttt
驱动牛犊
驱动牛犊
  • 注册日期2006-03-17
  • 最后登录2007-02-26
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
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呢?
游客

返回顶部