斗地主 V3.0 Build 215 注册码破解(VB6-Pcode 形式) (4千字)
斗地主 V3.0 Build 215 注册码破解(VB6-Pcode 形式)软件:斗地主 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
_________________________________________________________________________________________________
呵……好久没写破文了,主要是因为本人水平太鸟,看雪论坛可谓高手云集,自己实在不好意思写。今天闲来无事,把网友求破的斗地主 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
