鬥地主 V3.0 Build 215 註冊碼破解(VB6-Pcode 形式) (4千字)

看雪資料發表於2001-10-20

鬥地主 V3.0 Build 215 註冊碼破解(VB6-Pcode 形式)


作者:PaulYoung[CCG](屬於中國破解組織 China Cracking Group)
軟體:鬥地主 V3.0 Build 215(一個比較有名的撲克遊戲)
下載:http://61.128.193.30:8080/cgi-bin/dl.pl?url=ftp://61.128.193.30/soft/soft_games/ddz1.zip (1451 KB)
工具:Language 2000 v4.5.1.144,SoftICE v4.05
日期:2001-10-20

_________________________________________________________________________________________________

  呵……好久沒寫破文了,主要是因為本人水平太鳥,看雪論壇可謂高手雲集,自己實在不好意思寫。今天閒來無事,把網友求破的鬥地主 V3.0 Build 215 的註冊碼給破了,隨便寫篇破文,不足之處,望各位高手莫要見笑。嘻…… *^_^*
  這個鬥地主是一機一碼形式,機器碼是怎麼生成的,留給高手們研究吧,哈……
  首先,用 Language 2000 偵測,可以知道這個軟體是用VB6編寫的,用 WKTVBDebugger 試試,居然還是討厭的 P-code ,VB已經是非常討厭了,居然還是 VB6-Pcode ,:~(
    把你的 SoftICE 目錄下的 WINICE.DAT 的 EXP=c:\windows\system\msvbvm60.dll 這行前面的" ; "去掉,不然就除錯不了VB6了。(“這個還用你教!” 誰罵我!>:( )
  現在當然是執行鬥地主了,選註冊,填寫使用者名稱、註冊碼(一定要10位,否則“確定”鍵不啟用)。
  Ctrl+D 啟用SoftICE,下 bpx msvbvm60!Rtcmsgbox ,F5退出,按“確定”,中斷了,F10 單步跟蹤(因為按一次F12已經出錯了)……
  各位看官,請看……


015F:660EAB74  PUSH      EBP   //你停在這裡,下面一大段,大概是驗證註冊碼是否為10位等……諸如此類的,不要管它。
015F:660EAB75  MOV      EBP,ESP
015F:660EAB77  SUB      ESP,4C
015F:660EAB7A  MOV      ECX,[EBP+14]
015F:660EAB7D  PUSH      EBX
015F:660EAB7E  PUSH      ESI
015F:660EAB7F  PUSH      EDI
015F:660EAB80  CMP      WORD PTR [ECX],0A
015F:660EAB84  MOV      EAX,80020004
015F:660EAB89  JNZ      660EAC8B
015F:660EAB8F  CMP      [ECX+08],EAX
015F:660EAB92  JNZ      660EAC8B
015F:660EAB98  OR        DWORD PTR [EBP-04],-01
015F:660EAB9C  XOR      ESI,ESI
015F:660EAB9E  MOV      ECX,[EBP+18]
015F:660EABA1  CMP      WORD PTR [ECX],0A
015F:660EABA5  JNZ      660EAC95
015F:660EABAB  CMP      [ECX+08],EAX
015F:660EABAE  JNZ      660EAC95
015F:660EABB4  OR        DWORD PTR [EBP-08],-01
015F:660EABB8  MOV      EDI,[EBP+10]
015F:660EABBB  CMP      WORD PTR [EDI],0A
015F:660EABBF  JNZ      660EAC9D
015F:660EABC5  CMP      [EDI+08],EAX
015F:660EABC8  JNZ      660EAC9D
015F:660EABCE  OR        DWORD PTR [EBP-0C],-01
015F:660EABD2  PUSH      DWORD PTR [EBP+08]
015F:660EABD5  LEA      EAX,[EBP-2C]
015F:660EABD8  MOV      [EBP-10],ESI
015F:660EABDB  PUSH      EAX
015F:660EABDC  CALL      660EB086
015F:660EABE1  MOV      EBX,EAX
015F:660EABE3  MOV      EAX,[EBP-24]
015F:660EABE6  MOV      [EBP-18],EAX
015F:660EABE9  MOV      EAX,[EBP+0C]
015F:660EABEC  AND      EAX,0F
015F:660EABEF  MOV      [EBP-1C],EBX
015F:660EABF2  CMP      AL,05
015F:660EABF4  JG        660EAC12
015F:660EABF6  MOV      EAX,[EBP+0C]
015F:660EABF9  AND      EAX,000000F0
015F:660EABFE  CMP      EAX,40
015F:660EAC01  JG        660EAC12
015F:660EAC03  MOV      EAX,[EBP+0C]
015F:660EAC06  AND      EAX,00000F00
015F:660EAC0B  CMP      EAX,00000300
015F:660EAC10  JLE      660EAC15
015F:660EAC12  MOV      [EBP+0C],ESI
015F:660EAC15  CMP      [EBP-0C],SI
015F:660EAC19  MOV      ESI,[660019CC]
015F:660EAC1F  JZ        660EACA5
015F:660EAC25  AND      DWORD PTR [EBP+10],00
015F:660EAC29  AND      DWORD PTR [EBP+08],00
015F:660EAC2D  XOR      EAX,EAX
015F:660EAC2F  CMP      [EBP-04],AX
015F:660EAC33  JZ        660EACE0
015F:660EAC39  CMP      [EBP-08],AX
015F:660EAC3D  JZ        660EACDA
015F:660EAC43  MOV      [EBP-14],EAX
015F:660EAC46  XOR      EDI,EDI
015F:660EAC48  MOV      EDX,[EBP-18]
015F:660EAC4B  TEST      EDX,EDX
015F:660EAC4D  JNZ      660EAC52
015F:660EAC4F  LEA      EDX,[EBP-10]
015F:660EAC52  MOV      ECX,[EBP+08]
015F:660EAC55  TEST      ECX,ECX
015F:660EAC57  JNZ      660EAC62
015F:660EAC59  CMP      [EBP-0C],CX
015F:660EAC5D  JNZ      660EAC62
015F:660EAC5F  LEA      ECX,[EBP-10]
015F:660EAC62  PUSH      01        //下 d ecx+8 (下面幾個 PUSH 同樣可以,隨便你),ALT + ↑ 或 ALT + ↓ ,找找看……找不到??耐心點!!!呵……找到了吧,看看是不是看到你的機器碼、使用者名稱、假註冊碼(當然,是WIDE格式的)!因為註冊碼是10位的,你留意一下,有一個10位的阿拉伯數字,不要懷疑,它就是你要的註冊碼。如我的為 " 6.8.3.6.7.6.0.0.1.4 "

015F:660EAC64  PUSH      EAX
015F:660EAC65  PUSH      EDI
015F:660EAC66  PUSH      DWORD PTR [EBP+0C]
015F:660EAC69  PUSH      ECX
015F:660EAC6A  PUSH      EDX
015F:660EAC6B  CALL      660B33D6          //出錯的 CALL...
015F:660EAC70  PUSH      DWORD PTR [EBP-1C]
015F:660EAC73  MOV      EDI,EAX


  註冊成功資訊放在登錄檔的 [HKEY_LOCAL_MACHINE\Software\DDZ\Infomation] 處。

  真感動,大家居然把我這篇“破”破文看到這裡,呵……很菜很菜……浪費了大家不少時間。(有人要扁我,我要溜了!886……)


歡迎光臨我的破解小站:Cracker 初體驗
http://paulyoung2001.yeah.net
My QQ : 65827779 (不是破解愛好者不要 Q 我哦!)


作者:crackhl
軟體:鬥地主                (小草軟體工作室      作者:祝向權)
工具:fi,Trw2000
____________________________________________________________________________________________
    首先,用fi偵測,這個軟體沒有加殼。執行鬥地主,點選註冊
    註冊姓名:玩家              (必須填中文)
    郵箱地址:crackhl@21cn.com
    註冊碼:7878-7878-7878-7878
    按下Ctrl+N呼叫出trw,下斷點:bpx hmemcpy,按F5回到介面,按下馬上註冊,立即被trw攔截,清除斷點:bc *,跳到程式:pmodule,按F12,58次(因為按59此就失敗)
:00457698 A148A94500              mov eax, dword ptr [0045A948]
:0045769D E86A97FFFF              call 00450E0C                      〈------下d eax,看到假的註冊碼
:004576A2 A14CA94500              mov eax, dword ptr [0045A94C]
:004576A7 50                      push eax                            〈------下d eax,看到郵箱地址
:004576A8 8D45FC                  lea eax, dword ptr [ebp-04]
:004576AB 50                      push eax
:004576AC 8B0D44A94500            mov ecx, dword ptr [0045A944]
:004576B2 8B55F8                  mov edx, dword ptr [ebp-08]
:004576B5 A19CB94500              mov eax, dword ptr [0045B99C]
:004576BA E8CD8FFFFF              call 0045068C
:004576BF 8D4DF4                  lea ecx, dword ptr [ebp-0C]
:004576C2 8B55F8                  mov edx, dword ptr [ebp-08]
:004576C5 8B45FC                  mov eax, dword ptr [ebp-04]
:004576C8 E84B98FFFF              call 00450F18
:004576CD 8B55F4                  mov edx, dword ptr [ebp-0C]
:004576D0 8D45FC                  lea eax, dword ptr [ebp-04]        〈------下d eax,看到真的註冊碼
:004576D3 E874C2FAFF              call 0040394C

註冊器:
用Keymake
中斷地址:4576D0
中斷次數:1
第一位元組:8D
指令長度:3
記憶體方式:EDX

註冊姓名:玩家
郵箱地址:crackhl@21cn.com
註冊碼:72T2-PYI8-98TQ-7MKT
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
E-mail:crackhl@21cn.com
QQ:86005867

相關文章