免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 2476|回复: 1
收起左侧

[资料] 开心斗地主1.6标准版 注册码破解 (4千字)

[复制链接]

7656

主题

1180

铜板

2299

好友

技术员

为地信喝彩!

积分
106237
QQ
发表于 2010-5-28 11:06 | 显示全部楼层 |阅读模式
开心斗地主1.6标准版,的确不错,挺好完的。它的保护方法也挺
乐的。刚安装上它的时候,你有30次使用次数,就为了保护这个次数
开心斗地主也完了不少花招,注册表里记录的是没用的,它在系统system
目录下生成两个文件Olive.DLL和Coierd.CPL,其中以Coierd.CPL为主。
实际上Coierd.CPL是Olive.DLL的内容以ASC码值存储。一但发现这些信息
不符,立即提示说非法注册,好阴险哦。

    当然我们不会局限于这种修改,现在我们就开始用工具来获取真正的注册码。
先用fileinfo来检查一下开心斗地主是否加壳,哈哈,UPX V1.06几个大字显示眼前,
OK,UPX的-d选项来脱壳,好了,现在用W32Dasm来反汇编,看有没有什么收获,
嗯,这个字符串“UFO8769967”有点可疑,进入引用之处看看,啊哟,太多了,
引用它的地方太多了,算了,还是用TRW2000来对付它吧。

    OK,先把MSVBVM50.dll,拷贝到TRW200的DLL目录下面,因为待会我们要用
rtcMsgBox来作断点。运行TRW2000,提示已经Load MSVBVM50.dll,现在读入
开心斗地主,到注册窗口,输入注册名,注册码,随便了。我输入Leafred及56376058,
按Ctrl+N到TRW2000,打入bpx rtcMsgBox,F5回到程序,按确定,被TRW2000中断,
按F2,在按F10来到调用处,发现在XXXX:004C16D5,好,现在再来到W32Dasm,从
XXXX:004C16D5,向上读,发现按钮处理入口在XXXX:004C0100,好,现在重新以
bpm 004C0100 X,作断点,重新注册,现在进入了TRW2000,好,追踪吧。

    拿好纸和笔,以下要耐心,并不时D EAX、D EDX等等,检查什么时候,读取字符,什么时候
进行比较。我在下面列出部分:

用户名是否为空判断===》:
017F:004C07C6  PUSH    EAX          ======== 》》  EAX 是我们输入的用户名。
017F:004C07C7  PUSH    DWORD 00440408 ====》》 为空
017F:004C07CC  CALL    `MSVBVM50!__vbaStrCmp`  =====》》这里判断输入用户名是否为空。
017F:004C07D2  NEG      EAX              ====》》 你可以试试,把返回值改掉,会弹出提示请输入用户名。
017F:004C07D4  SBB      EAX,EAX
017F:004C07D6  INC      EAX
017F:004C07D7  NEG      EAX
017F:004C07D9  MOV      [EBP+FFFFFEAC],AX
017F:004C07E0  LEA      ECX,[EBP-60]
017F:004C07E3  CALL    `MSVBVM50!__vbaFreeStr`
017F:004C07E9  LEA      ECX,[EBP-80]
017F:004C07EC  CALL    `MSVBVM50!__vbaFreeObj`
017F:004C07F2  MOVSX    ECX,WORD [EBP+FFFFFEAC]

判断注册码是否为空===》:
017F:004C0A12  MOV      EDX,[EBP-60]
017F:004C0A15  PUSH    EDX            ======》》EDX 输入的注册码。
017F:004C0A16  PUSH    DWORD 00440408
017F:004C0A1B  CALL    `MSVBVM50!__vbaStrCmp`
017F:004C0A21  NEG      EAX
017F:004C0A23  SBB      EAX,EAX
017F:004C0A25  INC      EAX
017F:004C0A26  NEG      EAX
017F:004C0A28  MOV      [EBP+FFFFFEAC],AX

其中某一判断===》》:
017F:004C0F5D  MOV      EDX,[EBP-60]
017F:004C0F60  PUSH    EDX =======》》输入的用户名
017F:004C0F61  PUSH    DWORD 004433C0 =======》》比较杂乱五章的字符,其实很有用。
017F:004C0F66  CALL    `MSVBVM50!__vbaStrCmp`
017F:004C0F6C  NEG      EAX
017F:004C0F6E  SBB      EAX,EAX
017F:004C0F70  INC      EAX
017F:004C0F71  NEG      EAX
017F:004C0F73  AND      BX,AX
017F:004C0F76  MOV      EAX,[EBP-64]
017F:004C0F79  PUSH    EAX  =============》》 输入的注册码。
017F:004C0F7A  PUSH    DWORD 004433D0 =======》》“http://ufocn.coc.cc
017F:004C0F7F  CALL    `MSVBVM50!__vbaStrCmp`
017F:004C0F85  NEG      EAX
017F:004C0F87  SBB      EAX,EAX
017F:004C0F89  INC      EAX
017F:004C0F8A  NEG      EAX
017F:004C0F8C  AND      BX,AX
017F:004C0F8F  MOV      [EBP+FFFFFEA4],BX

此处对于破解非常重要====》:
017F:004C1373  MOV      ECX,[EBP-6C]
017F:004C1376  PUSH    ECX =======》输入的用户名
017F:004C1377  MOV      EDX,[EBP-68]
017F:004C137A  PUSH    EDX  ========》》一些字符。
017F:004C137B  CALL    `MSVBVM50!__vbaStrCmp`
017F:004C1381  NEG      EAX
017F:004C1383  SBB      EAX,EAX
017F:004C1385  INC      EAX
017F:004C1386  NEG      EAX
017F:004C1388  MOV      [EBP+FFFFFEA0],AX

十日注册码之处====》:
017F:004C15CE  MOV      EDX,[EBP-70]
017F:004C15D1  PUSH    EDX  =======》 输入的注册码
017F:004C15D2  PUSH    DWORD 00442B78 ===》“UFO8769967”
017F:004C15D7  CALL    `MSVBVM50!__vbaStrCmp`
这里如果我们让他相等,则提示十日注册成功。

由此可以看出我们在W32Dasm中看到的“UFO8769967”是十日注册码。

现在我们已经有了十日注册码,可以用一阵子了。

下面再来找标准注册码,
我们已经看到
017F:004C1373  MOV      ECX,[EBP-6C]
017F:004C1376  PUSH    ECX =======》输入的用户名
017F:004C1377  MOV      EDX,[EBP-68]
017F:004C137A  PUSH    EDX  ========》》一些字符。
017F:004C137B  CALL    `MSVBVM50!__vbaStrCmp`
017F:004C1381  NEG      EAX

现在肯定是不相等的,如果我们把这里改为相等,会怎么样呢,哈哈,注册成功。
但再运行时,有不行了。看来它每次重新比较。不过我们已经知道这里时比较关键了,
我们再试试改注册名和注册码,发现EDX里的值只随注册码而变化,这样我们就可以
随便输入注册码,然后获取注册用户,当然可以根据算法来根据注册名反算出注册码,
但我不想再去研究算法了。OK,现在,以bpm 4c1373 X,为断点,随便输入注册码,
输入:547865,中断后,运行到017F:004C137B,D EDX 发现了什么Txe,现在重新运行
程序,输入注册名Txe,注册码547865,哈哈,发现什么,恭喜、恭喜,注册成功!!
地质啷http://weibo.com/943569550

105

主题

4万

铜板

897

好友

地信名人堂

Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19

积分
20547

爱心勋章宣传勋章灌水勋章贡献勋章

发表于 2012-12-16 21:51 | 显示全部楼层
开心斗地主!

评分

参与人数 1铜板 +1 收起 理由
admin + 1 亲,你好快哦~~~

查看全部评分

该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表