手把手教你破速达5000PRO v2.33加密狗
菜东西,高手别笑~~~~~~~
工具:Ollydbg v1.1 汉化版
分析:
速达5000PRO没有试用,一打开就提示检测不到加密狗,直接退出。那我们可以从这个提示消息开始入手。
开始:
用Ollydbg打开SD5000Server.exe。下MessageBoxA断点(输入BP MessageBoxA命令并回车)。运行
没多久程序就被拦了下来。
77E4D8DE > 8BFF mov edi, edi //就停在这里
77E4D8E0 55 push ebp
77E4D8E1 8BEC mov ebp, esp
77E4D8E3 833D 1821E777 0>cmp dword ptr ds:[77E72118], 0
77E4D8EA 74 24 je short 77E4D910 ; user32.77E4D910
Alt+K查看调用堆栈:
调用堆栈 ,项目 0
地址=0012F90C
堆栈=0042D076
函数例程=<jmp.&USER32.MessageBoxA>
调用来自=SD5000Se.0042D071 //就看这里啊!
框架=0012F978
双击跟入:
0042D06B |. E8 C8B80200 call 00458938 ; <jmp.&vcl60.@Controls@TWinControl@GetHandle$qqrv>
0042D070 |. 50 push eax ; |hOwner
0042D071 |. E8 FAC50200 call 00459670 ; \MessageBoxA //停在这
0042D076 |. FF4D CC dec [local.13]
然后往上查第一个“>”:
0042CFD2 |> \6A 00 push 0 //找到这里
0042CFD4 |. 66:C745 C0 20>mov word ptr ss:[ebp-40], 20
0042CFDA |. 8D45 E4 lea eax, [local.7]
0042CFDD |. E8 664EFDFF call 00401E48 ; SD5000Se.00401E48
留意左边有一条红线连着她的另一半,我们找上去把他们拆开:-):
0042CED2 |> \E8 0152FDFF call 004020D8 ; SD5000Se.004020D8
0042CED7 |. 84C0 test al, al
0042CED9 0F84 F3000000 je 0042CFD2 ; SD5000Se.0042CFD2 //找到了这里
0042CEDF |. 8B0D 58184700 mov ecx, dword ptr ds:[471858]
好,我们按空格键把他改成自己;-)(NOP)因为我们什么都不做嘛。
je 0042CFD2
改(记得使用“NOP填充”)
NOP
运行后会退出,不怕,我们重新运行。
Ctrl+P打开补丁,选中后按空格键把刚才的修改应用上,然后运行。
至此,速达加密狗已经破解。服务器可以正常运行。