卡特会员卡管理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, “感谢飘云老大”)
收工,首次作算法注册机,痛快~~
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢! 这里东西挺多,但估计能下的会员不是太多 用户名长度 = 取文本长度 (编辑框1.内容)
字符串常量 = “qwertyuiopasdfghjklzxcvbnm”
字符串常量长度 = 取文本长度 (字符串常量)
你用的是E语言啊 ,这语言感觉好学吗? 感觉很怪诶。
页:
[1]