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
  • 2995

SOFTICE安装及使用

SOFTICE的安装  1、SOFTICE目前最新版本是4.01,运行setup.exe开始安装,出现的第一对话框是“欢迎”并说明NuMega公司的版权。点下步出现输入姓名、公司、序列号对话框,此时按...
  • iiprogram
  • iiprogram
  • 2005年09月20日 14:46
  • 3155

skype检测softice的解决办法

看一个高人写的解决skype检测softice的解决办法:用十六位编辑器Skype搜索特征信息,我们不妨取长一点,搜索“84 c0 74 1a 6a 00 68”,结果令人满意,该串在全局是唯一的,把...
  • meson
  • meson
  • 2007年04月28日 19:50
  • 707

SOFTICE 初使用

由于某些原因,需要用到SoftICE调试工具,期间经历了不少痛苦的历程.打算写出来,也算做个记录吧.我下载的Driver Studio 3.2.如果蓝屏或者你的鼠标会动不了,键盘卡住不动,请下载补丁....
  • zhangmiaoping23
  • zhangmiaoping23
  • 2009年04月04日 03:04
  • 2395

VMWare虚拟机安装,SoftIce在虚拟机中的安装

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE ...
  • vagrxie
  • vagrxie
  • 2009年01月05日 21:32
  • 3524

使用SoftICE调试程序入门

SoftICE是Numega公司出品的强大的程序调试工具,它可以运行dos,win3.1,win9x,winme,winnt,win2k等多种操作系统,是跟踪调试程序的有力的工具。这篇文章是我在自己使...
  • iiprogram
  • iiprogram
  • 2006年03月20日 17:40
  • 4366

P2P之UDP穿透NAT的原理与实现 & Skype(已整理过)

P2P 之UDP穿透NAT的原理与实现(附源代码) 原创:shootingstars 参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-...
  • scut1135
  • scut1135
  • 2012年11月26日 20:37
  • 3003

也来玩转Skype ——基于Skype4Java API编写Skype外壳程序入门介绍

     Skype4Java API开发包官方下载地址:        https://developer.skype.com/wiki/Java_API     在这篇文章中使用到了其中一个例子以...
  • lin_bei
  • lin_bei
  • 2007年08月28日 16:18
  • 10316

Skype for Business+企业通讯录+Outlook 三位一体是一种什么样的体验?

以前只知道Skype for Business 是微软的一款强大企业即时通讯软件,那最新火爆的Club Skype for Business 又是什么产品呢?本文就来对这款产品做一个初步用户体验。...
  • Microsoft_ClubSkype
  • Microsoft_ClubSkype
  • 2017年08月17日 10:27
  • 525

Skype加密技术过硬 德国警方都无法破译

11月24日消息,据国外媒体报道,德国警方近日表示,他们无法破译Skype网络电话的加密技术。 ...
  • lgyhack
  • lgyhack
  • 2007年11月25日 11:59
  • 1290
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Skype 与 SoftIce
举报原因:
原因补充:

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