服务器 频道

完美破解手记:宽带FTP服务器V1.0

  【IT168 服务器学院】要破解宽带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,就会完成注册。
  
  好了,到这里就完啦!!
0
相关文章