切换到宽版
  • 1590阅读
  • 3回复

实例破解某FTP服务器 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 0 发表于: 2012-05-24
 软件名称:宽带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,就会完成注册。
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线missyoull

只看该作者 1 发表于: 2012-05-24
厉害

只看该作者 2 发表于: 2012-05-24
对楼主的工作,偶们还是很支持滴!!~

只看该作者 3 发表于: 2012-05-24
对不起 我是灌水——版主别生气灌水而已何必那么认真呢??