飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3726|回复: 2

[原创] 卡特会员卡管理1.1 解码分析(附注册机代码)

[复制链接]
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2007-9-14 07:40:50 | 显示全部楼层 |阅读模式
    【破文标题】卡特会员卡管理1.1 解码分析
    【破文作者】lzq1973[PYG][CZG][OCN][DFCG]
    【作者邮箱】lzq9888@126.com
    【作者主页】http://my.winzheng.com/?455397
    破解工具】OD、PEiD、C32Asm
    【破解平台】WinXP
    【软件名称】卡特会员卡管理 1.1
    【软件大小】672K
    【原版下载】http://www.card95.com/download.asp?n=卡特会员卡管理(单机IC明华版).rar
    【保护方式】SN
    【软件简介】本系统为绿色软件,解压即可使用。该操作简单,功能强大,包括基本会员资料,商品管理。可以设置积分卡,记次卡,储值卡,折扣卡。有会员生日提醒功能。
    【破解声明】俺是只小小鸟,纯为学习,愿与大家分享!
    ------------------------------------------------------------------------
    【破解过程】运行之,假注册,有提示,记住备用。
    老规矩,PEID查壳,无,暗喜;OD载入,查相关字符串,找到相关提示,乐。在这里下断

    004DF4DC  .  55            push    ebp
    004DF4DD  .  8BEC          mov    ebp, esp
    004DF4DF  .  B9 06000000  mov    ecx, 6
    004DF4E4  >  6A 00        push    0
    004DF4E6  .  6A 00        push    0
    004DF4E8  .  49            dec    ecx
    004DF4E9  .^ 75 F9        jnz    short 004DF4E4
    004DF4EB  .  51            push    ecx
    004DF4EC  .  8945 FC      mov    [ebp-4], eax
    004DF4EF  .  33C0          xor    eax, eax
    004DF4F1  .  55            push    ebp
    004DF4F2  .  68 0BF74D00  push    004DF70B
    004DF4F7  .  64:FF30      push    dword ptr fs:[eax]
    004DF4FA  .  64:8920      mov    fs:[eax], esp
    004DF4FD  .  8D55 EC      lea    edx, [ebp-14]
    004DF500  .  8B45 FC      mov    eax, [ebp-4]
    004DF503  .  8B80 04030000 mov    eax, [eax+304]
    004DF509  .  E8 BEB1F7FF  call    0045A6CC
    004DF50E  .  8B45 EC      mov    eax, [ebp-14]                    ;  (ASCII "lzq1973")
    004DF511  .  8D55 F0      lea    edx, [ebp-10]
    004DF514  .  E8 1F96F2FF  call    00408B38
    004DF519  .  837D F0 00    cmp    dword ptr [ebp-10], 0
    004DF51D  .  75 1D        jnz    short 004DF53C
    004DF51F  .  6A 40        push    40
    004DF521  .  B9 18F74D00  mov    ecx, 004DF718                    ;  提示
    004DF526  .  BA 20F74D00  mov    edx, 004DF720                    ;  请输入用户名
    004DF52B  .  A1 D8F64E00  mov    eax, [4EF6D8]
    004DF530  .  8B00          mov    eax, [eax]
    004DF532  .  E8 81B3F9FF  call    0047A8B8
    004DF537  .  E9 77010000  jmp    004DF6B3
    004DF53C  >  8D55 E4      lea    edx, [ebp-1C]
    004DF53F  .  8B45 FC      mov    eax, [ebp-4]
    004DF542  .  8B80 0C030000 mov    eax, [eax+30C]
    004DF548  .  E8 7FB1F7FF  call    0045A6CC
    004DF54D  .  8B45 E4      mov    eax, [ebp-1C]
    004DF550  .  8D55 E8      lea    edx, [ebp-18]
    004DF553  .  E8 E095F2FF  call    00408B38
    004DF558  .  837D E8 00    cmp    dword ptr [ebp-18], 0
    004DF55C  .  75 1D        jnz    short 004DF57B
    004DF55E  .  6A 40        push    40
    004DF560  .  B9 18F74D00  mov    ecx, 004DF718                    ;  提示
    004DF565  .  BA 30F74D00  mov    edx, 004DF730                    ;  请输入注册码
    004DF56A  .  A1 D8F64E00  mov    eax, [4EF6D8]
    004DF56F  .  8B00          mov    eax, [eax]
    004DF571  .  E8 42B3F9FF  call    0047A8B8
    004DF576  .  E9 38010000  jmp    004DF6B3
    004DF57B  >  8D55 DC      lea    edx, [ebp-24]
    004DF57E  .  8B45 FC      mov    eax, [ebp-4]
    004DF581  .  8B80 0C030000 mov    eax, [eax+30C]
    004DF587  .  E8 40B1F7FF  call    0045A6CC
    004DF58C  .  8B45 DC      mov    eax, [ebp-24]
    004DF58F  .  8D55 E0      lea    edx, [ebp-20]
    004DF592  .  E8 A195F2FF  call    00408B38
    004DF597  .  8B45 E0      mov    eax, [ebp-20]
    004DF59A  .  50            push    eax
    004DF59B  .  8D55 D4      lea    edx, [ebp-2C]
    004DF59E  .  8B45 FC      mov    eax, [ebp-4]
    004DF5A1  .  8B80 04030000 mov    eax, [eax+304]
    004DF5A7  .  E8 20B1F7FF  call    0045A6CC
    004DF5AC  .  8B45 D4      mov    eax, [ebp-2C]
    004DF5AF  .  8D55 D8      lea    edx, [ebp-28]
    004DF5B2  .  E8 514AFFFF  call    004D4008                        ;  算法关键处
    004DF5B7  .  8B55 D8      mov    edx, [ebp-28]                    ;  注册码(ASCII "591148")
    004DF5BA  .  58            pop    eax
    004DF5BB  .  E8 5451F2FF  call    00404714
    004DF5C0  .  74 1D        je      short 004DF5DF
    004DF5C2  .  6A 40        push    40
    004DF5C4  .  B9 18F74D00  mov    ecx, 004DF718                    ;  提示
    004DF5C9  .  BA 40F74D00  mov    edx, 004DF740                    ;  注册码不对,注册未成功
    004DF5CE  .  A1 D8F64E00  mov    eax, [4EF6D8]
    004DF5D3  .  8B00          mov    eax, [eax]
    004DF5D5  .  E8 DEB2F9FF  call    0047A8B8
    004DF5DA  .  E9 D4000000  jmp    004DF6B3
    004DF5DF  >  33C0          xor    eax, eax
    004DF5E1  .  55            push    ebp
    004DF5E2  .  68 87F64D00  push    004DF687
    004DF5E7  .  64:FF30      push    dword ptr fs:[eax]
    004DF5EA  .  64:8920      mov    fs:[eax], esp
    004DF5ED  .  B2 01        mov    dl, 1
    004DF5EF  .  A1 64E04300  mov    eax, [43E064]
    004DF5F4  .  E8 6BEBF5FF  call    0043E164
    004DF5F9  .  8945 F8      mov    [ebp-8], eax
    004DF5FC  .  BA 02000080  mov    edx, 80000002
    004DF601  .  8B45 F8      mov    eax, [ebp-8]
    004DF604  .  E8 FBEBF5FF  call    0043E204
    004DF609  .  8D45 F4      lea    eax, [ebp-C]
    004DF60C  .  BA 60F74D00  mov    edx, 004DF760                    ;  software\czkgl\mrmf
    004DF611  .  E8 8A4DF2FF  call    004043A0
    004DF616  .  B1 01        mov    cl, 1
    004DF618  .  8B55 F4      mov    edx, [ebp-C]
    004DF61B  .  8B45 F8      mov    eax, [ebp-8]
    004DF61E  .  E8 45ECF5FF  call    0043E268
    004DF623  .  84C0          test    al, al
    004DF625  .  74 42        je      short 004DF669
    004DF627  .  8D55 D0      lea    edx, [ebp-30]
    004DF62A  .  8B45 FC      mov    eax, [ebp-4]
    004DF62D  .  8B80 0C030000 mov    eax, [eax+30C]
    004DF633  .  E8 94B0F7FF  call    0045A6CC
    004DF638  .  8B4D D0      mov    ecx, [ebp-30]
    004DF63B  .  BA 7CF74D00  mov    edx, 004DF77C                    ;  passwd
    004DF640  .  8B45 F8      mov    eax, [ebp-8]
    004DF643  .  E8 BCEDF5FF  call    0043E404
    004DF648  .  8D55 CC      lea    edx, [ebp-34]
    004DF64B  .  8B45 FC      mov    eax, [ebp-4]
    004DF64E  .  8B80 04030000 mov    eax, [eax+304]
    004DF654  .  E8 73B0F7FF  call    0045A6CC
    004DF659  .  8B4D CC      mov    ecx, [ebp-34]
    004DF65C  .  BA 8CF74D00  mov    edx, 004DF78C                    ;  username
    004DF661  .  8B45 F8      mov    eax, [ebp-8]
    004DF664  .  E8 9BEDF5FF  call    0043E404
    004DF669  >  8B45 F8      mov    eax, [ebp-8]
    004DF66C  .  E8 63EBF5FF  call    0043E1D4
    004DF671  .  33C0          xor    eax, eax
    004DF673  .  5A            pop    edx
    004DF674  .  59            pop    ecx
    004DF675  .  59            pop    ecx
    004DF676  .  64:8910      mov    fs:[eax], edx
    004DF679  .  68 8EF64D00  push    004DF68E
    004DF67E  >  8B45 F8      mov    eax, [ebp-8]
    004DF681  .  E8 123EF2FF  call    00403498
    004DF686  .  C3            retn
    004DF687  .^ E9 A045F2FF  jmp    00403C2C
    004DF68C  .^ EB F0        jmp    short 004DF67E
    004DF68E  .  6A 30        push    30
    004DF690  .  B9 18F74D00  mov    ecx, 004DF718                    ;  提示
    004DF695  .  BA 98F74D00  mov    edx, 004DF798                    ;  注册成功
    004DF69A  .  A1 D8F64E00  mov    eax, [4EF6D8]
    004DF69F  .  8B00          mov    eax, [eax]
    004DF6A1  .  E8 12B2F9FF  call    0047A8B8
    004DF6A6  .  8B45 FC      mov    eax, [ebp-4]
    004DF6A9  .  C780 4C020000>mov    dword ptr [eax+24C], 1
    004DF6B3  >  33C0          xor    eax, eax
    004DF6B5  .  5A            pop    edx
    004DF6B6  .  59            pop    ecx
    004DF6B7  .  59            pop    ecx
    004DF6B8  .  64:8910      mov    fs:[eax], edx
    004DF6BB  .  68 12F74D00  push    004DF712
    004DF6C0  >  8D45 CC      lea    eax, [ebp-34]
    004DF6C3  .  BA 03000000  mov    edx, 3
    004DF6C8  .  E8 5F4CF2FF  call    0040432C
    004DF6CD  .  8D45 D8      lea    eax, [ebp-28]
    004DF6D0  .  E8 334CF2FF  call    00404308
    004DF6D5  .  8D45 DC      lea    eax, [ebp-24]
    004DF6D8  .  E8 2B4CF2FF  call    00404308
    004DF6DD  .  8D45 E0      lea    eax, [ebp-20]
    004DF6E0  .  E8 234CF2FF  call    00404308
    004DF6E5  .  8D45 E4      lea    eax, [ebp-1C]
    004DF6E8  .  E8 1B4CF2FF  call    00404308
    004DF6ED  >  8D45 E8      lea    eax, [ebp-18]
    004DF6F0  .  E8 134CF2FF  call    00404308
    004DF6F5  .  8D45 EC      lea    eax, [ebp-14]
    004DF6F8  .  E8 0B4CF2FF  call    00404308
    004DF6FD  >  8D45 F0      lea    eax, [ebp-10]
    004DF700  .  BA 02000000  mov    edx, 2
    004DF705  .  E8 224CF2FF  call    0040432C
    004DF70A  .  C3            retn
    004DF70B  .^ E9 1C45F2FF  jmp    00403C2C
    004DF710  .^ EB AE        jmp    short 004DF6C0
    004DF712  .  8BE5          mov    esp, ebp
    004DF714  .  5D            pop    ebp
    004DF715  .  C3            retn

    =====004DF5B2  .  E8 514AFFFF  call    004D4008=========

    004D4008  /$  55            push    ebp                              ;  来到这里
    004D4009  |.  8BEC          mov    ebp, esp
    004D400B  |.  83C4 F0      add    esp, -10
    004D400E  |.  53            push    ebx
    004D400F  |.  56            push    esi
    004D4010  |.  57            push    edi
    004D4011  |.  33C9          xor    ecx, ecx
    004D4013  |.  894D F4      mov    [ebp-C], ecx
    004D4016  |.  8955 F8      mov    [ebp-8], edx
    004D4019  |.  8945 FC      mov    [ebp-4], eax                    ;  (ASCII "lzq1973")
    004D401C  |.  8B45 FC      mov    eax, [ebp-4]
    004D401F  |.  E8 9407F3FF  call    004047B8
    004D4024  |.  33C0          xor    eax, eax
    004D4026  |.  55            push    ebp
    004D4027  |.  68 AF404D00  push    004D40AF
    004D402C  |.  64:FF30      push    dword ptr fs:[eax]
    004D402F  |.  64:8920      mov    fs:[eax], esp
    004D4032  |.  8D45 F4      lea    eax, [ebp-C]
    004D4035  |.  BA C8404D00  mov    edx, 004D40C8                    ;  字符串常量(ASCII "qwertyuiopasdfghjklzxcvbnm")
    004D403A  |.  E8 6103F3FF  call    004043A0
    004D403F  |.  BE F57E0800  mov    esi, 87EF5                      ;  常数(87EF5)赋给ESI
    004D4044  |.  8B45 FC      mov    eax, [ebp-4]
    004D4047  |.  E8 7C05F3FF  call    004045C8
    004D404C  |.  85C0          test    eax, eax                        ;  取用户名长度
    004D404E  |.  7E 37        jle    short 004D4087
    004D4050  |.  8945 F0      mov    [ebp-10], eax
    004D4053  |.  BB 01000000  mov    ebx, 1
    004D4058  |>  8B45 F4      /mov    eax, [ebp-C]                    ;  常量赋给EAX
    004D405B  |.  E8 6805F3FF  |call    004045C8
    004D4060  |.  85C0          |test    eax, eax                        ;  取字符串常量长度
    004D4062  |.  7E 1D        |jle    short 004D4081
    004D4064  |.  BA 01000000  |mov    edx, 1
    004D4069  |>  8B4D FC      |/mov    ecx, [ebp-4]                  ;  用户名赋给ECX
    004D406C  |.  0FB64C19 FF  ||movzx  ecx, byte ptr [ecx+ebx-1]      ;  取当前字符
    004D4071  |.  8B7D F4      ||mov    edi, [ebp-C]
    004D4074  |.  0FB67C17 FF  ||movzx  edi, byte ptr [edi+edx-1]
    004D4079  |.  03CF          ||add    ecx, edi                      ;  用户名首字符16进制+当前常量的16进制(从左至右逐位取)
    004D407B  |.  03F1          ||add    esi, ecx                      ;  ESI=ESI+ECX
    004D407D  |.  42            ||inc    edx                            ;  递增
    004D407E  |.  48            ||dec    eax                            ;  递减
    004D407F  |.^ 75 E8        |\jnz    short 004D4069
    004D4081  |>  43            |inc    ebx                            ;  逐位取用户名
    004D4082  |.  FF4D F0      |dec    dword ptr [ebp-10]              ;  还剩几位
    004D4085  |.^ 75 D1        \jnz    short 004D4058
    004D4087  |>  8B55 F8      mov    edx, [ebp-8]
    004D408A  |.  8BC6          mov    eax, esi
    004D408C  |.  E8 074DF3FF  call    00408D98
    004D4091  |.  33C0          xor    eax, eax
    004D4093  |.  5A            pop    edx
    004D4094  |.  59            pop    ecx
    004D4095  |.  59            pop    ecx
    004D4096  |.  64:8910      mov    fs:[eax], edx
    004D4099  |.  68 B6404D00  push    004D40B6
    004D409E  |>  8D45 F4      lea    eax, [ebp-C]
    004D40A1  |.  E8 6202F3FF  call    00404308
    004D40A6  |.  8D45 FC      lea    eax, [ebp-4]
    004D40A9  |.  E8 5A02F3FF  call    00404308
    004D40AE  \.  C3            retn
    004D40AF  .^ E9 78FBF2FF  jmp    00403C2C
    004D40B4  .^ EB E8        jmp    short 004D409E
    004D40B6  .  5F            pop    edi
    004D40B7  .  5E            pop    esi
    004D40B8  .  5B            pop    ebx
    004D40B9  .  8BE5          mov    esp, ebp
    004D40BB  .  5D            pop    ebp
    004D40BC  .  C3            retn


    ------------------------------------------------------------------------
    【破解总结】
        名码比较,算法也简单,如下:
        用户名各字符的16进制依次与字串(qwertyuiopasdfghjklzxcvbnm)的各字符16进制和累加后再加上常数(87EF5)后转为10进制就是注册码。

        根据飘云老大的注册机教程,试了试,代码如下:


    .如果 (编辑框1.内容 ≠ “”)
        用户名长度 = 取文本长度 (编辑框1.内容)
        字符串常量 = “qwertyuiopasdfghjklzxcvbnm”
        字符串常量长度 = 取文本长度 (字符串常量)
        .计次循环首 (用户名长度, i)
            c = 取代码 (编辑框1.内容, i)
            .计次循环首 (字符串常量长度, ii)
                cc = 取代码 (字符串常量, ii)
                Sn = Sn + c + cc
            .计次循环尾 ()
        .计次循环尾 ()
    .否则
        信息框 (“请输入用户名”, 0, )
    .如果结束
    编辑框2.内容 = 到文本 (Sn + 556789)


    .子程序 _按钮2_被单击

    信息框 (“制作:lzq1973[PYG][CZG][OCN][DFCG][D.4s]”, 0, “感谢飘云老大”)

    收工,首次作算法注册机,痛快~~
    ------------------------------------------------------------------------
    【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-6 12:11:11 | 显示全部楼层
    这里东西挺多,但估计能下的会员不是太多
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-17 17:32:32 | 显示全部楼层
    用户名长度 = 取文本长度 (编辑框1.内容)
        字符串常量 = “qwertyuiopasdfghjklzxcvbnm”
        字符串常量长度 = 取文本长度 (字符串常量)

    你用的是E语言啊 ,这语言感觉好学吗? 感觉很怪诶。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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