飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 89099|回复: 72

[原创] 重启验证暴破之《中国跳棋大师Chinese Checkers Master 1.03》

[复制链接]
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-8-14 16:08:39 | 显示全部楼层 |阅读模式
    【破文标题】重启验证暴破之《中国跳棋大师Chinese Checkers Master 1.03》
    【破文作者】WildCatIII[D.4s][PYG]
    【龙族论坛】http://www.chinadforce.com
    【PYG论坛】https://www.chinapyg.com
    破解工具】PEiD,W32DASM,UC32,OD
    【破解平台】Windows 2K&XP
    【软件名称】中国跳棋大师Chinese Checkers Master 1.03

    【软件大小】3240K
    【原版下载】http://tz.newhua.com/soft/28032.htm
    【保护方式】注册码,时间限制
    【软件简介】这是一款跳棋的游戏,玩家可以有多种选择,可以一人与计算机对战,也可以多人一起玩乐。
                困难度也有多种选择,玩家可以选择自己喜欢的模式来进行游戏。
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    ------------------------------------------------------------------------
    一、程序查无壳,Microsoft Visual C++ 6.0编写。
    二、程序注册失败有提示,根据这个提示我们很快找到关键代码段。
    +++++++++++++++++++++++++++++++++++++++++++
    文本字符串参考位于 Chinese_:.text,项目 268
    地址=004229B8
    反汇编=push Chinese_.004971E4
    文本字符串=ASCII "The registration code you entered in incorrect.  Please try again."
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    00422890     83EC 08            sub esp,8
    00422893     53                 push ebx
    00422894     55                 push ebp
    00422895     8BE9               mov ebp,ecx
    00422897     56                 push esi
    00422898     57                 push edi
    00422899     8D4D 5C            lea ecx,dword ptr ss:[ebp+5C]
    0042289C     E8 C0EFFDFF        call Chinese_.00401861
    004228A1     68 39040000        push 439
    004228A6     8BCD               mov ecx,ebp
    004228A8     E8 6B230300        call Chinese_.00454C18
    004228AD     8D8D 98110000      lea ecx,dword ptr ss:[ebp+1198]     ; 试练码
    004228B3     6A 0E              push 0E
    004228B5     51                 push ecx
    004228B6     8BC8               mov ecx,eax
    004228B8     E8 19260300        call Chinese_.00454ED6
    004228BD     C605 38605300 01   mov byte ptr ds:[536038],1          ; 取位数,[536038]预设值为1,放标志位用。
    004228C4     BB DF900F00        mov ebx,0F90DF                      ; ebx预设值为0x0f90df
    004228C9     BF 20734900        mov edi,Chinese_.00497320           ; ASCII "0000000"
    004228CE     83C9 FF            or ecx,FFFFFFFF
    004228D1     33C0               xor eax,eax                         ; eax清零
    004228D3     8D5424 10          lea edx,dword ptr ss:[esp+10]
    004228D7     F2:AE              repne scas byte ptr es:[edi]
    004228D9     F7D1               not ecx
    004228DB     2BF9               sub edi,ecx
    004228DD     8BC1               mov eax,ecx
    004228DF     8BF7               mov esi,edi
    004228E1     8BFA               mov edi,edx
    004228E3     8A95 9C110000      mov dl,byte ptr ss:[ebp+119C]       ; ASCII“543210”
    004228E9     C1E9 02            shr ecx,2
    004228EC     F3:A5              rep movs dword ptr es:[edi],dword p>
    004228EE     8BC8               mov ecx,eax
    004228F0     8A85 A0110000      mov al,byte ptr ss:[ebp+11A0]
    004228F6     83E1 03            and ecx,3
    004228F9     F3:A4              rep movs byte ptr es:[edi],byte ptr>
    004228FB     8A8D 9B110000      mov cl,byte ptr ss:[ebp+119B]
    00422901     884424 12          mov byte ptr ss:[esp+12],al
    00422905     8A85 A3110000      mov al,byte ptr ss:[ebp+11A3]
    0042290B     80E9 14            sub cl,14
    0042290E     884C24 10          mov byte ptr ss:[esp+10],cl
    00422912     8A8D A1110000      mov cl,byte ptr ss:[ebp+11A1]
    00422918     885424 11          mov byte ptr ss:[esp+11],dl
    0042291C     8A95 A2110000      mov dl,byte ptr ss:[ebp+11A2]
    00422922     2C 15              sub al,15
    00422924     80E9 18            sub cl,18
    00422927     884424 15          mov byte ptr ss:[esp+15],al
    0042292B     884C24 13          mov byte ptr ss:[esp+13],cl
    0042292F     8A8D A4110000      mov cl,byte ptr ss:[ebp+11A4]
    00422935     885424 14          mov byte ptr ss:[esp+14],dl
    00422939     8A95 A5110000      mov dl,byte ptr ss:[ebp+11A5]
    0042293F     8D4424 10          lea eax,dword ptr ss:[esp+10]
    00422943     50                 push eax
    00422944     884C24 1A          mov byte ptr ss:[esp+1A],cl
    00422948     885424 1B          mov byte ptr ss:[esp+1B],dl
    0042294C     E8 4A0F0100        call Chinese_.0043389B
    00422951     83C4 04            add esp,4
    00422954     3BC3               cmp eax,ebx
    00422956     75 07              jnz short Chinese_.0042295F         ; 这里很关键。。。
    00422958     C605 38605300 00   mov byte ptr ds:[536038],0          ; 标志位,注册成功,[536038]就等于0
    0042295F     83C3 11            add ebx,11

    00422962     81FB FF439100      cmp ebx,9143FF
    00422968   ^ 0F8C 5BFFFFFF      jl Chinese_.004228C9
    0042296E     8D75 5C            lea esi,dword ptr ss:[ebp+5C]
    00422971     8BCE               mov ecx,esi
    00422973     E8 EFEDFDFF        call Chinese_.00401767
    00422978     8BCE               mov ecx,esi
    0042297A     E8 E2EEFDFF        call Chinese_.00401861
    0042297F     A0 38605300        mov al,byte ptr ds:[536038]         ; 标志位送al
    00422984     6A 00              push 0
    00422986     84C0               test al,al                          ; 对其进行检测。。。
    00422988     75 29              jnz short Chinese_.004229B3         ; 关键跳转~~~al为0则注册成功。
    0042298A     68 00734900        push Chinese_.00497300              
    ; ASCII "Registration Confirmation"
    0042298F     68 50724900        push Chinese_.00497250              
    ; ASCII "You have successfully registered Chinese Checkers Master, thank you!  Chinese Checkers Master will now close to complete the registration process."
    00422994     8BCD               mov ecx,ebp
    00422996     E8 0D570300        call Chinese_.004580A8
    0042299B     6A 00              push 0
    0042299D     8BCD               mov ecx,ebp
    0042299F     C685 AC110000 01   mov byte ptr ss:[ebp+11AC],1
    004229A6     E8 03770300        call Chinese_.0045A0AE
    004229AB     5F                 pop edi
    004229AC     5E                 pop esi
    004229AD     5D                 pop ebp
    004229AE     5B                 pop ebx
    004229AF     83C4 08            add esp,8
    004229B2     C3                 retn
    004229B3     68 34724900        push Chinese_.00497234              ; ASCII "Registration Failure"
    004229B8     68 E4714900        push Chinese_.004971E4            
    ; ASCII "The registration code you entered in incorrect.  Please try again."
    004229BD     8BCD               mov ecx,ebp
    004229BF     E8 E4560300        call Chinese_.004580A8              ; 否则注册失败!
    004229C4     6A 00              push 0
    004229C6     8BCD               mov ecx,ebp
    004229C8     E8 E1760300        call Chinese_.0045A0AE
    004229CD     5F                 pop edi
    004229CE     5E                 pop esi
    004229CF     5D                 pop ebp
    004229D0     5B                 pop ebx
    004229D1     83C4 08            add esp,8
    004229D4     C3                 retn
    ++++++++++++++++++++++++++++++++++++
    现在我们来个小结,程序注册都是通过对内存地址[536038]的标志位检测而写,成功为0,失败为1。
    鉴于此,我们有三处可行性的标志位更改方法。请看:

    第一种,在程序初始对内存地址[536038]赋值为1的时候,我们把它改成赋值为0,结果以下:
    004228BD     C605 38605300 00   mov byte ptr ds:[536038],0


    第二种,在程序对注册码检测的过程中,根据它的跳转而给内存进行赋值的过程中进行更改,如:
    00422956  /75 07            jnz short Chinese_.0042295F
    ; 大家请看,程序在注册码检测的过程中就进行判断,如果不成功就跳,所以下面的标志位内存赋值为0就失败。
      我们的方法就是把这个跳转Nop或者改成jz就可以了。。。
    00422958  |C605 38605300 00 mov byte ptr ds:[536038],0  ; 标志位,注册成功,[536038]就等于0
    0042295F  \83C3 11          add ebx,11


    第三种,根据程序最后的标志传送指令,浑水摸鱼,像第一种方法一样给它赋值,注册肯定会通过的啦。
    0042297F     A0 38605300        mov al,byte ptr ds:[536038]

    改成-------------------------------
    0042297F     B0 00              mov al,0      ; 给它赋值为0,之前的检测代码好像都没作用的啦。。。
    00422981     90                 nop
    00422982     90                 nop
    00422983     90                 nop

    ++++++++++++++++以上的三种方法一般在一般的标志位暴破中也常用到。
    咱们把这个程序随便用一种方法改了,保存,注册是成功,高兴呀~~

    但可是太早了!这个程序有重启验证~我晕~拍马屁拍到马脚上了。。。


    看我的~OD中下断 d 536038 ,重新运行程序,程序中断在此~

    004296B3     C605 38605300 01   mov byte ptr ds:[536038],1
    004296BA     BB DF900F00        mov ebx,0F90DF

    兄弟们,是不是很熟悉呀~

    004296B3     C605 38605300 01   mov byte ptr ds:[536038],1         ; mov byte ptr ds:[536038],0
    004296BA     BB DF900F00        mov ebx,0F90DF                        ; mov ebx,0
    004296BF     BF 20734900        mov edi,Chinese_.00497320                        ; ASCII "0000000"
    004296C4     83C9 FF            or ecx,FFFFFFFF
    004296C7     33C0               xor eax,eax
    004296C9     8D5424 14          lea edx,dword ptr ss:[esp+14]
    004296CD     F2:AE              repne scas byte ptr es:[edi]
    004296CF     F7D1               not ecx
    004296D1     2BF9               sub edi,ecx
    004296D3     8BC1               mov eax,ecx
    004296D5     8BF7               mov esi,edi
    004296D7     8BFA               mov edi,edx
    004296D9     8A95 14150000      mov dl,byte ptr ss:[ebp+1514]
    004296DF     C1E9 02            shr ecx,2
    004296E2     F3:A5              rep movs dword ptr es:[edi],dword ptr ds:[esi]
    004296E4     8BC8               mov ecx,eax
    004296E6     8A85 18150000      mov al,byte ptr ss:[ebp+1518]
    004296EC     83E1 03            and ecx,3
    004296EF     F3:A4              rep movs byte ptr es:[edi],byte ptr ds:[esi]
    004296F1     8A8D 13150000      mov cl,byte ptr ss:[ebp+1513]
    004296F7     884424 16          mov byte ptr ss:[esp+16],al
    004296FB     8A85 1B150000      mov al,byte ptr ss:[ebp+151B]
    00429701     80E9 14            sub cl,14
    00429704     884C24 14          mov byte ptr ss:[esp+14],cl
    00429708     8A8D 19150000      mov cl,byte ptr ss:[ebp+1519]
    0042970E     885424 15          mov byte ptr ss:[esp+15],dl
    00429712     8A95 1A150000      mov dl,byte ptr ss:[ebp+151A]
    00429718     2C 15              sub al,15
    0042971A     80E9 18            sub cl,18
    0042971D     884424 19          mov byte ptr ss:[esp+19],al
    00429721     884C24 17          mov byte ptr ss:[esp+17],cl
    00429725     8A8D 1C150000      mov cl,byte ptr ss:[ebp+151C]
    0042972B     885424 18          mov byte ptr ss:[esp+18],dl
    0042972F     8A95 1D150000      mov dl,byte ptr ss:[ebp+151D]
    00429735     8D4424 14          lea eax,dword ptr ss:[esp+14]
    00429739     50                 push eax
    0042973A     884C24 1E          mov byte ptr ss:[esp+1E],cl
    0042973E     885424 1F          mov byte ptr ss:[esp+1F],dl
    00429742     E8 54A10000        call Chinese_.0043389B
    00429747     83C4 04            add esp,4
    0042974A     3BC3               cmp eax,ebx                                     ; cmp eax,0
    0042974C     75 07              jnz short Chinese_.00429755                      ; NOP
    0042974E     C605 38605300 00   mov byte ptr ds:[536038],0
    00429755     83C3 11            add ebx,11
    00429758     81FB FF439100      cmp ebx,9143FF
    0042975E   ^ 0F8C 5BFFFFFF      jl Chinese_.004296BF
    00429764     803D 38605300 01   cmp byte ptr ds:[536038],1
    0042976B     0F85 72050000      jnz Chinese_.00429CE3

    看到了没有?有共有四种更改的方法,都是考虑到到标志位的~一次暴个够~
    ------暴破经验------------------------------------------------------------------
    重启验证暴破,感觉就是爽~菜鸟不会分析它的算法的时候建议使用。
    当然咯~咱期待兄弟们的这个程序的算法分析。
    ------------------------------------------------------------------------

    【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!


    SpxImage.gif

    Chinese Checkers Master.Udd.rar

    1.17 KB, 下载次数: 26059, 下载积分: 飘云币 -2 枚

    评分

    参与人数 1威望 +8 飘云币 +8 收起 理由
    绝恋风尘 + 8 + 8

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-8-14 16:27:51 | 显示全部楼层
    强,我等菜鸟学习了.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-8-14 17:23:38 | 显示全部楼层
    我也来学习一下!:victory:
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-8-14 20:55:36 | 显示全部楼层
    最好是暴重起验证这,这样程序一运行就是注册版了./:D
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-8-14 22:02:42 | 显示全部楼层
    帖子保存 明天到家了学习一下~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 1484 天

    [LV.10]以坛为家III

    发表于 2006-8-15 20:56:51 | 显示全部楼层
    又是猫的杰作呀
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-8-15 21:55:25 | 显示全部楼层
    标志位暴破的经典总结
    只用耐心看后才回有此感悟
    我喜欢第一种
    向兄弟多多学习
    帖子精华~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-8-17 06:12:49 | 显示全部楼层
    经典标志位暴破,学习!!!!!!!!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-2-23 16:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2006-8-17 16:11:30 | 显示全部楼层
    学习,老大技术。。。。。。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2017-6-16 20:25
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2006-8-26 19:53:21 | 显示全部楼层
    猫作。。。一定要认真看看了。。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表