昨天爲了試驗破解軟件,裝了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
不同版本,地址可能會有不同。
本人破解緊緊爲了救急,請不要效仿,謝謝。