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