CMailServer V3.2 註冊碼演算法及CrackCode 2000 的序號產生器 (4千字)

看雪資料發表於2001-08-18

CMailServer V3.2 註冊碼演算法及CrackCode 2000 的序號產生器

作  者:PaulYoung
時  間:2001.08.18
軟體簡介:1、支援通用郵件客戶端軟體 Outlook Express、Foxmail 等收發郵件。2、支援 Web 頁面收發郵件。3、支援 Internet 收發郵件。4、支援使用者透過 Web 瀏覽器申請郵箱、修改郵箱密碼、修改使用者資訊等資料。5、支援管理員新建、刪除、禁用使用者郵箱和設定使用者郵箱大小。6、支援管理員同時向多個使用者傳送郵件。7、支援管理員生成 HTML 和 INI 格式的使用者郵箱資訊報表。8、支援作為 NT 服務執行。
軟體下載:http://microserver.top263.net/cmailserver/cmailserver32cr2.exe
破解工具:TRW 2000,CrackCode 2000
_________________________________________________________________________________________________

  首先感謝 TAE![CCG] 關於 CCproxy 4.11d 的破解方法給我的啟示,使我瞭解到“遙志軟體”系列軟體的註冊陷阱,下面,我說說另外一個“遙志軟體”:CMailServer V3.2 的註冊碼破解,因為與 CCProxy 同屬一系列,所以註冊碼演算法方面比較相似,TAE![CCG],借你的演算法來參考一下吧。哈……
  在註冊框處填寫任意序列號和註冊碼,執行 TRW ,下 bpx hmemcpy ,F5退出,點確定,中斷後下 bd *,再下 pmodule ,按1次F12(2次出錯),F10單步跟蹤……



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004176E5(C)
|
:0041774B 8B4C2418                mov ecx, dword ptr [esp+18]
:0041774F 8B542414                mov edx, dword ptr [esp+14]
:00417753 8D44242C                lea eax, dword ptr [esp+2C]
:00417757 50                      push eax
:00417758 51                      push ecx          //機器碼
:00417759 52                      push edx          //假註冊碼
:0041775A E831FBFFFF              call 00417290    //計算註冊碼,F8進入,F10單步跟蹤

.
.
.

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00417353(C)
|
:0041730E 8B442434                mov eax, dword ptr [esp+34]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041730C(U)
|
:00417312 0FBE0408                movsx eax, byte ptr [eax+ecx] //將microserver1的字元依次傳給eax
:00417316 0FBE140B                movsx edx, byte ptr [ebx+ecx] //將cmailserver3的字元依次傳給edx
:0041731A 03C2                    add eax, edx                  //eax+edx的和放到eax
:0041731C BD3E000000              mov ebp, 0000003E            //"3E"給ebp
:00417321 0FBE140F                movsx edx, byte ptr [edi+ecx] //將序列號的字元依次傳給edx
:00417325 03C2                    add eax, edx                  //相加給eax
:00417327 0FBE11                  movsx edx, byte ptr [ecx]    //將機器碼的字元依次傳給edx
:0041732A 03C2                    add eax, edx                  //再相加給eax
:0041732C 99                      cdq
:0041732D F7FD                    idiv ebp                  //最後的和除以ebp,也就是"3E"餘數給dl
:0041732F 83FA1A                  cmp edx, 0000001A          //大於"1A"嗎
:00417332 7D05                    jge 00417339              //大於就跳
:00417334 80C261                  add dl, 61                //小於就加上61
:00417337 EB0D                    jmp 00417346              //跳到00417346處

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00417332(C)
|
:00417339 83FA34                  cmp edx, 00000034          //大於"34"嗎
:0041733C 7D05                    jge 00417343                //大於就跳
:0041733E 80C227                  add dl, 27                  //小於就減去"27"
:00417341 EB03                    jmp 00417346

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041733C(C)
|
:00417343 80EA04                  sub dl, 04                //上面如果小於就到了這裡,減去"4"

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00417337(U), :00417341(U)
|
:00417346 8B442438                mov eax, dword ptr [esp+38]
:0041734A 88140E                  mov byte ptr [esi+ecx], dl    //儲存註冊碼
:0041734D 41                      inc ecx                      //指向下一個機器碼的字元
:0041734E 48                      dec eax                      //計數器
:0041734F 89442438                mov dword ptr [esp+38], eax
:00417353 75B9                    jne 0041730E                  //形成迴圈
:00417355 5F                      pop edi
:00417356 5E                      pop esi
:00417357 5D                      pop ebp
:00417358 5B                      pop ebx
:00417359 83C420                  add esp, 00000020
:0041735C C3                      ret


  一大串的演算法,令我等菜鳥頭痛,如何快速知道自己的註冊碼呢,我教你一個方法吧。在
:00417355 5F                      pop edi
處設斷,重新執行 CMailServer ,程式會被中斷,F10幾次後,會來到
:00402C95 E846B20200              call 0042DEE0  //下 d eax 可以直接看到註冊碼。

用 CrackCode 2000 寫個序號產生器吧:

[Options]
CommandLine=CMailServer.exe
Mode=0
First_Break_Address=402C95
First_Break_Address_Code=E8
First_Break_Address_Code_Lenth=2
Save_Code_Address=EAX

在程式一執行就會看到正確的註冊碼,序列號可以任意,也可以為空。你填入註冊碼時,會提示註冊失敗,不要怕,這是個陷阱,如果提示你成功你就完蛋了。重新執行吧,你會發現已經成為註冊使用者了。哈……
再次感謝 TAE![CCG] 師父!

THE END

相關文章