解决SoftIce和Skype的问题(albertyi原创)

时间:2021-06-25 08:11:26

昨天为了试验破解软件,装了SoftIce,结果今天早上想和我的亲亲贝贝用skype聊天的时候,发现出了问题,skype一启动就报错"Skype is not compatible with system debuggers like SoftICE",然后就退出,我这个急啊。。。。

决定用OllyDbg搞定这个skype,应为skype报错的时候是弹出messagebox,所以要再messagebox之类的函数处设置端点。

首先用OllyDbg载入skype,首先用Alt-E调出"Executable modules"窗口,选中user32,
Ctrl-N调出"Names in user32"窗口,分别选中MessageBoxA、MessageBoxExA、
MessageBoxExW并按F2设置断点。按F9运行,拦截住MessageBoxA。Alt-K查看调用栈
回溯,"Called from"栏显示Skype.00E78062,查看该地址附近代码:

00E7804B   . E8 181A74FF    CALL 复件_Sky.005B9A68
00E78050   . 84C0           TEST AL,AL
00E78052   . 74 1A          JE SHORT 复件_Sky.00E7806E
00E78054   . 6A 00          PUSH 0                                   ; /Style = MB_OK|MB_APPLMODAL
00E78056   . 68 1C8CE700    PUSH 复件_Sky.00E78C1C                     ; |Title = "Skype"
00E7805B   . 68 248CE700    PUSH 复件_Sky.00E78C24                     ; |Text = "Skype is not compatible with system debuggers like SoftICE."
00E78060   . 6A 00          PUSH 0                                   ; |hOwner = NULL
00E78062   . E8 7D0A59FF    CALL <JMP.&user32.MessageBoxA>           ; /MessageBoxA

怀疑只需修改那个je指令即可。在0x00E7E8D8处按F2设置断点,按Ctrl-F2重新加载
Skype.exe。刚设置的这个断点在Skype.exe中,不在动态链接库中,重新加载后断点
仍在。按F9运行,断点命中,此时AL为0x01,在OllyDbg中动态修改AL为0,按F9继续
运行,发现Skype已经启动起来了。

应为程序load到ollydbg中,是从0040c000开始,而静态的是从00000000开始
所以要算出偏移地址:用00E7E8DA- 00400c00 = A7DCDA
用ultraEdit打开skype文件,找到A7DCDA修改74 1A 为 EB 1A即可。

另外我的skype版本信息为

build time:6.07.2005 16:46:56

company name:Skype Technologies S.A.

version: 1.3

不同版本,地址可能会有不同。

本人破解紧紧为了救急,请不要效仿,谢谢。