lzq1973 发表于 2007-9-14 07:40:50

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

【破文标题】卡特会员卡管理1.1 解码分析
【破文作者】lzq1973
【作者邮箱】[email protected]
【作者主页】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 06000000mov    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    , eax
004DF4EF.33C0          xor    eax, eax
004DF4F1.55            push    ebp
004DF4F2.68 0BF74D00push    004DF70B
004DF4F7.64:FF30      push    dword ptr fs:
004DF4FA.64:8920      mov    fs:, esp
004DF4FD.8D55 EC      lea    edx,
004DF500.8B45 FC      mov    eax,
004DF503.8B80 04030000 mov    eax,
004DF509.E8 BEB1F7FFcall    0045A6CC
004DF50E.8B45 EC      mov    eax,                   ;(ASCII "lzq1973")
004DF511.8D55 F0      lea    edx,
004DF514.E8 1F96F2FFcall    00408B38
004DF519.837D F0 00    cmp    dword ptr , 0
004DF51D.75 1D      jnz    short 004DF53C
004DF51F.6A 40      push    40
004DF521.B9 18F74D00mov    ecx, 004DF718                  ;提示
004DF526.BA 20F74D00mov    edx, 004DF720                  ;请输入用户名
004DF52B.A1 D8F64E00mov    eax,
004DF530.8B00          mov    eax,
004DF532.E8 81B3F9FFcall    0047A8B8
004DF537.E9 77010000jmp    004DF6B3
004DF53C>8D55 E4      lea    edx,
004DF53F.8B45 FC      mov    eax,
004DF542.8B80 0C030000 mov    eax,
004DF548.E8 7FB1F7FFcall    0045A6CC
004DF54D.8B45 E4      mov    eax,
004DF550.8D55 E8      lea    edx,
004DF553.E8 E095F2FFcall    00408B38
004DF558.837D E8 00    cmp    dword ptr , 0
004DF55C.75 1D      jnz    short 004DF57B
004DF55E.6A 40      push    40
004DF560.B9 18F74D00mov    ecx, 004DF718                  ;提示
004DF565.BA 30F74D00mov    edx, 004DF730                  ;请输入注册码
004DF56A.A1 D8F64E00mov    eax,
004DF56F.8B00          mov    eax,
004DF571.E8 42B3F9FFcall    0047A8B8
004DF576.E9 38010000jmp    004DF6B3
004DF57B>8D55 DC      lea    edx,
004DF57E.8B45 FC      mov    eax,
004DF581.8B80 0C030000 mov    eax,
004DF587.E8 40B1F7FFcall    0045A6CC
004DF58C.8B45 DC      mov    eax,
004DF58F.8D55 E0      lea    edx,
004DF592.E8 A195F2FFcall    00408B38
004DF597.8B45 E0      mov    eax,
004DF59A.50            push    eax
004DF59B.8D55 D4      lea    edx,
004DF59E.8B45 FC      mov    eax,
004DF5A1.8B80 04030000 mov    eax,
004DF5A7.E8 20B1F7FFcall    0045A6CC
004DF5AC.8B45 D4      mov    eax,
004DF5AF.8D55 D8      lea    edx,
004DF5B2.E8 514AFFFFcall    004D4008                        ;算法关键处
004DF5B7.8B55 D8      mov    edx,                   ;注册码(ASCII "591148")
004DF5BA.58            pop    eax
004DF5BB.E8 5451F2FFcall    00404714
004DF5C0.74 1D      je      short 004DF5DF
004DF5C2.6A 40      push    40
004DF5C4.B9 18F74D00mov    ecx, 004DF718                  ;提示
004DF5C9.BA 40F74D00mov    edx, 004DF740                  ;注册码不对,注册未成功
004DF5CE.A1 D8F64E00mov    eax,
004DF5D3.8B00          mov    eax,
004DF5D5.E8 DEB2F9FFcall    0047A8B8
004DF5DA.E9 D4000000jmp    004DF6B3
004DF5DF>33C0          xor    eax, eax
004DF5E1.55            push    ebp
004DF5E2.68 87F64D00push    004DF687
004DF5E7.64:FF30      push    dword ptr fs:
004DF5EA.64:8920      mov    fs:, esp
004DF5ED.B2 01      mov    dl, 1
004DF5EF.A1 64E04300mov    eax,
004DF5F4.E8 6BEBF5FFcall    0043E164
004DF5F9.8945 F8      mov    , eax
004DF5FC.BA 02000080mov    edx, 80000002
004DF601.8B45 F8      mov    eax,
004DF604.E8 FBEBF5FFcall    0043E204
004DF609.8D45 F4      lea    eax,
004DF60C.BA 60F74D00mov    edx, 004DF760                  ;software\czkgl\mrmf
004DF611.E8 8A4DF2FFcall    004043A0
004DF616.B1 01      mov    cl, 1
004DF618.8B55 F4      mov    edx,
004DF61B.8B45 F8      mov    eax,
004DF61E.E8 45ECF5FFcall    0043E268
004DF623.84C0          test    al, al
004DF625.74 42      je      short 004DF669
004DF627.8D55 D0      lea    edx,
004DF62A.8B45 FC      mov    eax,
004DF62D.8B80 0C030000 mov    eax,
004DF633.E8 94B0F7FFcall    0045A6CC
004DF638.8B4D D0      mov    ecx,
004DF63B.BA 7CF74D00mov    edx, 004DF77C                  ;passwd
004DF640.8B45 F8      mov    eax,
004DF643.E8 BCEDF5FFcall    0043E404
004DF648.8D55 CC      lea    edx,
004DF64B.8B45 FC      mov    eax,
004DF64E.8B80 04030000 mov    eax,
004DF654.E8 73B0F7FFcall    0045A6CC
004DF659.8B4D CC      mov    ecx,
004DF65C.BA 8CF74D00mov    edx, 004DF78C                  ;username
004DF661.8B45 F8      mov    eax,
004DF664.E8 9BEDF5FFcall    0043E404
004DF669>8B45 F8      mov    eax,
004DF66C.E8 63EBF5FFcall    0043E1D4
004DF671.33C0          xor    eax, eax
004DF673.5A            pop    edx
004DF674.59            pop    ecx
004DF675.59            pop    ecx
004DF676.64:8910      mov    fs:, edx
004DF679.68 8EF64D00push    004DF68E
004DF67E>8B45 F8      mov    eax,
004DF681.E8 123EF2FFcall    00403498
004DF686.C3            retn
004DF687.^ E9 A045F2FFjmp    00403C2C
004DF68C.^ EB F0      jmp    short 004DF67E
004DF68E.6A 30      push    30
004DF690.B9 18F74D00mov    ecx, 004DF718                  ;提示
004DF695.BA 98F74D00mov    edx, 004DF798                  ;注册成功
004DF69A.A1 D8F64E00mov    eax,
004DF69F.8B00          mov    eax,
004DF6A1.E8 12B2F9FFcall    0047A8B8
004DF6A6.8B45 FC      mov    eax,
004DF6A9.C780 4C020000>mov    dword ptr , 1
004DF6B3>33C0          xor    eax, eax
004DF6B5.5A            pop    edx
004DF6B6.59            pop    ecx
004DF6B7.59            pop    ecx
004DF6B8.64:8910      mov    fs:, edx
004DF6BB.68 12F74D00push    004DF712
004DF6C0>8D45 CC      lea    eax,
004DF6C3.BA 03000000mov    edx, 3
004DF6C8.E8 5F4CF2FFcall    0040432C
004DF6CD.8D45 D8      lea    eax,
004DF6D0.E8 334CF2FFcall    00404308
004DF6D5.8D45 DC      lea    eax,
004DF6D8.E8 2B4CF2FFcall    00404308
004DF6DD.8D45 E0      lea    eax,
004DF6E0.E8 234CF2FFcall    00404308
004DF6E5.8D45 E4      lea    eax,
004DF6E8.E8 1B4CF2FFcall    00404308
004DF6ED>8D45 E8      lea    eax,
004DF6F0.E8 134CF2FFcall    00404308
004DF6F5.8D45 EC      lea    eax,
004DF6F8.E8 0B4CF2FFcall    00404308
004DF6FD>8D45 F0      lea    eax,
004DF700.BA 02000000mov    edx, 2
004DF705.E8 224CF2FFcall    0040432C
004DF70A.C3            retn
004DF70B.^ E9 1C45F2FFjmp    00403C2C
004DF710.^ EB AE      jmp    short 004DF6C0
004DF712.8BE5          mov    esp, ebp
004DF714.5D            pop    ebp
004DF715.C3            retn

=====004DF5B2.E8 514AFFFFcall    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    , ecx
004D4016|.8955 F8      mov    , edx
004D4019|.8945 FC      mov    , eax                  ;(ASCII "lzq1973")
004D401C|.8B45 FC      mov    eax,
004D401F|.E8 9407F3FFcall    004047B8
004D4024|.33C0          xor    eax, eax
004D4026|.55            push    ebp
004D4027|.68 AF404D00push    004D40AF
004D402C|.64:FF30      push    dword ptr fs:
004D402F|.64:8920      mov    fs:, esp
004D4032|.8D45 F4      lea    eax,
004D4035|.BA C8404D00mov    edx, 004D40C8                  ;字符串常量(ASCII "qwertyuiopasdfghjklzxcvbnm")
004D403A|.E8 6103F3FFcall    004043A0
004D403F|.BE F57E0800mov    esi, 87EF5                      ;常数(87EF5)赋给ESI
004D4044|.8B45 FC      mov    eax,
004D4047|.E8 7C05F3FFcall    004045C8
004D404C|.85C0          test    eax, eax                        ;取用户名长度
004D404E|.7E 37      jle    short 004D4087
004D4050|.8945 F0      mov    , eax
004D4053|.BB 01000000mov    ebx, 1
004D4058|>8B45 F4      /mov    eax,                   ;常量赋给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,                   ;用户名赋给ECX
004D406C|.0FB64C19 FF||movzxecx, byte ptr       ;取当前字符
004D4071|.8B7D F4      ||mov    edi,
004D4074|.0FB67C17 FF||movzxedi, byte ptr
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             ;还剩几位
004D4085|.^ 75 D1      \jnz    short 004D4058
004D4087|>8B55 F8      mov    edx,
004D408A|.8BC6          mov    eax, esi
004D408C|.E8 074DF3FFcall    00408D98
004D4091|.33C0          xor    eax, eax
004D4093|.5A            pop    edx
004D4094|.59            pop    ecx
004D4095|.59            pop    ecx
004D4096|.64:8910      mov    fs:, edx
004D4099|.68 B6404D00push    004D40B6
004D409E|>8D45 F4      lea    eax,
004D40A1|.E8 6202F3FFcall    00404308
004D40A6|.8D45 FC      lea    eax,
004D40A9|.E8 5A02F3FFcall    00404308
004D40AE\.C3            retn
004D40AF.^ E9 78FBF2FFjmp    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”, 0, “感谢飘云老大”)

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

775825866 发表于 2007-10-6 12:11:11

这里东西挺多,但估计能下的会员不是太多

悠悠魂 发表于 2007-10-17 17:32:32

用户名长度 = 取文本长度 (编辑框1.内容)
    字符串常量 = “qwertyuiopasdfghjklzxcvbnm”
    字符串常量长度 = 取文本长度 (字符串常量)

你用的是E语言啊 ,这语言感觉好学吗? 感觉很怪诶。
页: [1]
查看完整版本: 卡特会员卡管理1.1 解码分析(附注册机代码)