要破解宽带FTP服务器V1.0这个软件,OK,开始行动:
软件名称:宽带FTP服务器V1.0
破解工具:FileInfo,W32Dasm,UltraEdit
级别:Easy
首先运行一下软件,点击"登记注册",随便填几个数字,提示"软件注册号错误"。唔~这个软件是自动获取机器信息生成序列号的,即使获得注册码也只能在本机使用,所以决定暴破。
用FileInfo 查看,这个软件是用Delphi写的,用W32Dasm可以轻松搞定。运行W32Dasm,打开“宽带FTP服务器”软件,在“参考”,“串式参考”找到“软件注册号错误”字符串,代码如下:
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004BDAD1(C), :004BDAD6(C)
|
:004BDB31 6A00
push 00000000
:004BDB33 668B0DD0DB4B00
mov cx, word ptr [004BDBD0]
:004BDB3A B201
mov dl, 01
* Possible StringData Ref from Code Obj -"软件注册号错误"
|
:004BDB3C B8F8DB4B00
mov eax, 004BDBF8
:004BDB41 E84E96F7FF
call 00437194
直接跳到004BDAD1,发现代码如下:
:004BDACE 3B55FC
cmp edx, dword ptr [ebp-04]
:004BDAD1 755E
jne 004BDB31
//注册码不符就跳到004BDB31
:004BDAD3 3B45F8
cmp eax, dword ptr [ebp-08]
:004BDAD6 7559
jne 004BDB31
:004BDAD8 33D2
xor edx, edx
:004BDADA 8B8398030000
mov eax, dword ptr [ebx+00000398]
:004BDAE0 8B08
mov ecx, dword ptr [eax]
:004BDAE2 FF5164
call [ecx+64]
:004BDAE5 B201
mov dl, 01
:004BDAE7 8B8330030000
mov eax, dword ptr [ebx+00000330]
:004BDAED 8B08
mov ecx, dword ptr [eax]
:004BDAEF FF5164
call [ecx+64]
* Possible StringData Ref from Code Obj -"已注册登记版本"
//到这里就成为注册版了
|
:004BDAF2 BAC0DB4B00
mov edx, 004BDBC0
:004BDAF7 8B8394030000
mov eax, dword ptr [ebx+00000394]
:004BDAFD E8BA08F8FF
call 0043E3BC
:004BDB02 33D2
xor edx, edx
:004BDB04 8B83A0030000
mov eax, dword ptr [ebx+000003A0]
:004BDB0A E8AD08F8FF
call 0043E3BC
:004BDB0F 8B83A4030000
mov eax, dword ptr [ebx+000003A4]
:004BDB15 E87ED1FFFF
call 004BAC98
:004BDB1A 6A00
push 00000000
:004BDB1C 668B0DD0DB4B00
mov cx, word ptr [004BDBD0]
:004BDB23 B202
mov dl, 02
* Possible StringData Ref from Code Obj -"软件登记注册成功"
//这里弹出注册成功的窗口
|
:004BDB25 B8DCDB4B00
mov eax, 004BDBDC
:004BDB2A E86596F7FF
call 00437194
:004BDB2F EB15
jmp 004BDB46
到这里,该明白怎么做了吧,要它在注册码错误处不跳就行了,干脆把两个跳转都nop掉,即用UltraEdit把偏移为0x00BCED1和0x00BCED6 改为9090就行了。
程序分析:
据分析,这个程序未注册版只能用18次,到第15次和第5次时均有提示剩余次数,在注册表中可以找到记录次数的键值(不同的机器可能会不同):
HKEY_CLASSES_ROOT\CLSID\{1AE69D60-73D0-11D4-BD52-38A480C50000}
412112012
15
//这是剩余次数,可以改。
613738517
18
//这是总次数,但不要指望这里可以改成无限次,因为它不在用这个计算的。
当注册成功时,412112012这个键的键值就会变成412112012,也就是和键的名称一样,也就是算,在注册表中把412112012这个键的键值改成412112012,就会完成注册。
好了,到这里就完啦!!