Skype 与 SoftIce

原创 2006年05月20日 19:55:00

很久不见的朋友发来一条短信,给了我一个Skype的号码,叫我网上见。赶紧下载、安装、运行,迎接我是一个冷冰冰的对话框:“Skype is not compatible with system debuggers like SoftICE.”,既然不想让SoftIce下课,自然就要向Skype开刀了。

杀鸡焉用牛刀?先用Ollydbg试试,如果不行再请SoftIce出马,更何况在应用级调试中Ollydbg有更良好的操作特性。

用Ollydbg调入Skype的执行文件,先偷个懒,不去找MessageBox函数的调用点,直接寻找“Skype is not compatible with system debuggers like SoftICE”。运气不错,在“所有的参考文本字符串”中找到了该字符串,然后双击它,直接跳到了00B7CB62,往下一看正是我们要找的MessageBox!是不是很爽,像精确制导炸弹一样?代码如下:

===================================================================================
00B7CB4D    .  E8 F6FB89FF   call <jmp.&ole32.OleInitialize>
00B7CB52    .  E8 1193A6FF   call Skype.005E5E68
00B7CB57       84C0          test al,al
00B7CB59    .  74 1A         je short Skype.00B7CB75
00B7CB5B    .  6A 00         push 0                                                           ; /Style = MB_OK|MB_APPLMODAL
00B7CB5D    .  68 3CDDB700   push Skype.00B7DD3C                    ; |Title = "Skype"
00B7CB62    .  68 44DDB700    push Skype.00B7DD44                    ; |Text = "Skype is not compatible with system debuggers like SoftICE."
00B7CB67    .  6A 00         push 0                                 ; |hOwner = NULL
00B7CB69    .  E8 C2BF88FF   call <jmp.&user32.MessageBoxA>         ; /MessageBoxA
===================================================================================

注意到在00B7CB59处有一个条件转移语句,如果寄存器al等于0则跳过MessagBox,赶紧在此处放置一个断点,按F9执行程序,马上在00B7CB59停了下来,我们可以看到al不等于0,CPU的Z标志位为0,je不执行跳转。要想je跳转很简单,只要在标志位Z的数值0上双击一下,Z就等于1了,可以清楚的看到je发生跳转的红色箭头了,继续往下执行,呵呵~~Skype开始执行了,只是闪了一下主窗口就因为异常而中止执行了,看来跳过了对SoftIce的检测。下面就对Skype动手术,看看能否成功。

要想跳过MessageBox可以将je语句改成jmp或者让al=0,我不喜欢硬生生的jmp,还是随着程序的脉络斯文一点,的所以我选择了后者,将“test al,al”改成“xor al,al”即可,也就是将“84c0”改成“32c0”。用十六位编辑器Skype搜索特征信息,我们不妨取长一点,搜索“84 c0 74 1a 6a 00 68”,结果令人满意,该串在全局是唯一的,把“84”改成“32”然后存盘运行,Bingo!搞定!

看来对SoftIce的判断确实是由Skype.005E5E68完成的,我们不妨进去看看,到底它是怎么检测的?重新的设置断点,进入该子程序,大步的执行就是了,反正我只是看看而已。一些熟悉的字符串闪过屏幕“//./SiwvidSTART”、“//./NTICE”、“//./Siwvid”、“//./SICE”,看来是通过SoftIce的一系列服务来判断是否安装了SoftIce。

 (注:拿来做试验Skype是2.0版的,包括原版和Tom版)

 

相关文章推荐

SOFTICE之后继有人——Syser

双机内核调试总是有一些局限性,首先呢,速度不是那么的快,再者在虚拟机里面像需要DX支持的大型网络游戏一般式运行不起来的,而且Windbg运行起来总是那么古板。这些问题也就形成了单机内核调试器的存在空间...
  • Augusdi
  • Augusdi
  • 2011年09月20日 10:39
  • 2882

检测SoftIce的几种方法(英文)

12.15.1 Problem SoftICE is a ring0 debugger that cannot be detected using standard debugger detec...

vmware + softICE调试驱动文件

http://blog.csdn.net/wqvbjhc/article/details/5112134这里介绍了如何用VS2008+DDKWizard搭建驱动开发环境。另外还要修改个批处理文件,我的...

SoftICE使用(2)-网络远程调试zz xfocus

2 将VMware与SoftICE基于网络的远程调试功能相结合 Q: 在VMware上安装SoftICE,总是无法正确配置显卡驱动,选择    Universal Video Driver...

VMware 安装 SOFTICE 问题

原因一:softice在Windows XP系统上安装有点问题,安装后net start ntice后,弹出错误:发生系统错误 31.连到系统上的设备没有发挥作用。修改boot.ini文件:[boot...

Using SoftICE.pdf

  • 2007年11月07日 13:06
  • 2MB
  • 下载

check_SoftIce

  • 2009年04月04日 21:10
  • 72KB
  • 下载

新会议工具Skype Meetings,专为小型企业定制

据外媒报道,微软日前发布了新的音视频会议工具Skype Meetings,它本质上是Skype for Business的精简版,专门为小型企业服务。 面向企业Skype for Business可...

SOFTICE教程,使用命令大全

  • 2008年11月02日 11:29
  • 2.5MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Skype 与 SoftIce
举报原因:
原因补充:

(最多只允许输入30个字)