飘云 发表于 2005-6-28 20:20:51

[PYG]算法分析入门第九课

【破文标题】算法分析入门第九课
【破文作者】飘云
【作者主页】https://www.chinapyg.com
【破解平台】WinXp
【破解工具】PEiD0.93、w32dasm、OD二哥修改版
【作者邮箱】[email protected]
【软件名称】销售王客户管理系统个人版 2005.05
【软件大小】4906KB
【原版下载】http://nj.onlinedown.net/soft/39804.htm
【软件简介】销售王客户管理软件主要帮助企业全面有效利用其客户资源,为企业达到“留住客户、提升销售”的目的。其具体功能如下:
1. 全方位客户资料管理:不仅纪录客户的静态资料信息(如:客户名称、联系人、地址、电话等信息),而且会详细纪录此客户的所有动态信息,从而有效的分析客户行为。
2. 详尽的联系人档案:纪录每个联系人的细节信息(如生日、爱好等字段),可按各种条件统计分析。
3. 及时有效的活动安排及提醒:可针对客户、联系人安排具体活动并设置提醒,及时提醒销售人员执行销售计划。
4. 直观清晰的日历管理:将活动直观呈现在日历上,可任意拖拉或浏览活动信息或关闭活动。
5. 丰富的营销工具(信封标签制作、短信等功能):可以按要求成批制作信封标签,自动调用联系人mail群邮及群发短信。
【分析过程】先用PEiD探测一下:Borland Delphi 6.0 - 7.0编写,用W32DASM找到以下关键(为了方便,我用OD看的代码):

0066ECDF    53            push ebx
0066ECE0    8BD8            mov ebx,eax
0066ECE2    33C0            xor eax,eax
0066ECE4    55            push ebp
0066ECE5    68 BEEE6600   push PersonSi.0066EEBE
0066ECEA    64:FF30         push dword ptr fs:
0066ECED    64:8920         mov dword ptr fs:,esp
0066ECF0    8D55 F8         lea edx,dword ptr ss:
0066ECF3    8B83 F8020000   mov eax,dword ptr ds:
0066ECF9    E8 5EFCDDFF   call PersonSi.0044E95C
0066ECFE    8B45 F8         mov eax,dword ptr ss:
0066ED01    8D55 FC         lea edx,dword ptr ss:
0066ED04    E8 0FA8D9FF   call PersonSi.00409518
0066ED09    837D FC 00      cmp dword ptr ss:,0
0066ED0D    74 1F         je short PersonSi.0066ED2E      ; 是否输入用户名
0066ED0F    8D55 F0         lea edx,dword ptr ss:
0066ED12    8B83 FC020000   mov eax,dword ptr ds:
0066ED18    E8 3FFCDDFF   call PersonSi.0044E95C
0066ED1D    8B45 F0         mov eax,dword ptr ss:
0066ED20    8D55 F4         lea edx,dword ptr ss:
0066ED23    E8 F0A7D9FF   call PersonSi.00409518
0066ED28    837D F4 00      cmp dword ptr ss:,0
0066ED2C    75 1D         jnz short PersonSi.0066ED4B       ; 是否输入注册码
0066ED2E    6A 40         push 40
0066ED30    B9 CCEE6600   mov ecx,PersonSi.0066EECC
0066ED35    BA D8EE6600   mov edx,PersonSi.0066EED8
0066ED3A    A1 04F07300   mov eax,dword ptr ds:
0066ED3F    8B00            mov eax,dword ptr ds:
0066ED41    E8 3E16E0FF   call PersonSi.00470384
0066ED46    E9 F5000000   jmp PersonSi.0066EE40
0066ED4B    8D45 EC         lea eax,dword ptr ss:
0066ED4E    50            push eax
0066ED4F    8D55 E8         lea edx,dword ptr ss:
0066ED52    8B83 F4020000   mov eax,dword ptr ds:
0066ED58    E8 FFFBDDFF   call PersonSi.0044E95C            ; 取机器码
0066ED5D    8B45 E8         mov eax,dword ptr ss:
0066ED60    50            push eax
0066ED61    8D55 E0         lea edx,dword ptr ss:
0066ED64    8B83 F8020000   mov eax,dword ptr ds:
0066ED6A    E8 EDFBDDFF   call PersonSi.0044E95C            ; 取用户名
0066ED6F    8B45 E0         mov eax,dword ptr ss:
0066ED72    8D55 E4         lea edx,dword ptr ss:
0066ED75    E8 9EA7D9FF   call PersonSi.00409518
0066ED7A    8B55 E4         mov edx,dword ptr ss:
0066ED7D    A1 4CE87300   mov eax,dword ptr ds:
0066ED82    8B00            mov eax,dword ptr ds:
0066ED84    8B80 CC000000   mov eax,dword ptr ds:
0066ED8A    59            pop ecx
0066ED8B    E8 8C41EFFF   call PersonSi.00562F1C            ;★★算法call!进入!
0066ED90    8B45 EC         mov eax,dword ptr ss:
0066ED93    50            push eax
0066ED94    8D55 D8         lea edx,dword ptr ss:
0066ED97    8B83 FC020000   mov eax,dword ptr ds:
0066ED9D    E8 BAFBDDFF   call PersonSi.0044E95C
0066EDA2    8B45 D8         mov eax,dword ptr ss:
0066EDA5    8D55 DC         lea edx,dword ptr ss:
0066EDA8    E8 6BA7D9FF   call PersonSi.00409518
0066EDAD    8B55 DC         mov edx,dword ptr ss:
0066EDB0    58            pop eax
0066EDB1    E8 065FD9FF   call PersonSi.00404CBC            ; 这里再经典不过了,就不多说了,内存注册机在此
0066EDB6    75 70         jnz short PersonSi.0066EE28

************************************************************进入call 00562F1C:

00562F1C    55            push ebp
00562F1D    8BEC            mov ebp,esp
00562F1F    83C4 F4         add esp,-0C
00562F22    53            push ebx
00562F23    56            push esi
00562F24    57            push edi
00562F25    33DB            xor ebx,ebx
00562F27    895D F4         mov dword ptr ss:,ebx
00562F2A    894D F8         mov dword ptr ss:,ecx      ; 机器码ASCII "Y24WBDNC"
00562F2D    8955 FC         mov dword ptr ss:,edx      ; 用户名ASCII "piaoyun"
00562F30    8B75 08         mov esi,dword ptr ss:
00562F33    8B45 FC         mov eax,dword ptr ss:
00562F36    E8 251EEAFF   call PersonSi.00404D60            ; 取机器码和用户名
00562F3B    8B45 F8         mov eax,dword ptr ss:
00562F3E    E8 1D1EEAFF   call PersonSi.00404D60
00562F43    33C0            xor eax,eax                     ; eax清0   为下面计算做准备
00562F45    55            push ebp
00562F46    68 AC2F5600   push PersonSi.00562FAC
00562F4B    64:FF30         push dword ptr fs:
00562F4E    64:8920         mov dword ptr fs:,esp
00562F51    8BC6            mov eax,esi
00562F53    E8 5819EAFF   call PersonSi.004048B0
00562F58    8B45 FC         mov eax,dword ptr ss:      ; 用户名送到eax
00562F5B    E8 181CEAFF   call PersonSi.00404B78            ; 取用户名长度
00562F60    8BD8            mov ebx,eax                     ; 送到ebx    我的12位(1c)
00562F62    85DB            test ebx,ebx
00562F64    7E 2B         jle short PersonSi.00562F91
00562F66    BF 01000000   mov edi,1                         ; edi=1
00562F6B    8B45 F8         mov eax,dword ptr ss:      ; 机器码送到eax
00562F6E    0FB64438 FF   movzx eax,byte ptr ds: ; 逐位取ascii送到eax(9-12位取“00”)
                            据分析,这里不能超过12位,否则会产生随机数                                 
00562F73    83C0 08         add eax,8                         ; 取得的值加上 8
00562F76    8D4D F4         lea ecx,dword ptr ss:
00562F79    BA 02000000   mov edx,2
00562F7E    E8 DD69EAFF   call PersonSi.00409960            ; 将ascii转换成字符
00562F83    8B55 F4         mov edx,dword ptr ss:      ; 保存到edx
00562F86    8BC6            mov eax,esi
00562F88    E8 F31BEAFF   call PersonSi.00404B80
00562F8D    47            inc edi                           ; edi+1
00562F8E    4B            dec ebx                           ; 用户名长度 减一
00562F8F^ 75 DA         jnz short PersonSi.00562F6B       ; 循环次数为用户名长度
00562F91    33C0            xor eax,eax
00562F93    5A            pop edx
00562F94    59            pop ecx
00562F95    59            pop ecx
00562F96    64:8910         mov dword ptr fs:,edx
00562F99    68 B32F5600   push PersonSi.00562FB3
00562F9E    8D45 F4         lea eax,dword ptr ss:
00562FA1    BA 03000000   mov edx,3
00562FA6    E8 2919EAFF   call PersonSi.004048D4
00562FAB    C3            retn
00562FAC^ E9 A311EAFF   jmp PersonSi.00404154
00562FB1^ EB EB         jmp short PersonSi.00562F9E
00562FB3    5F            pop edi
00562FB4    5E            pop esi
00562FB5    5B            pop ebx
00562FB6    8BE5            mov esp,ebp
00562FB8    5D            pop ebp
00562FB9    C2 0400         retn 4                           ;完毕,返回!


【算法总结】

注册码与机器码和用户名位数有关:

1.取用户名的位数作为机器码运算的次数(用户名位数最好小于等于12位,否则计算出的注册码视为非法注册码)

2.再计算用户名位数所对应的机器码的HEX值,并且每一位机器码的HEX值加上16进制数“08”组合成新的HEX值字符串,作为注册码


我的注册信息:
机器码:Y24WBDNC
用户名:piaoyun
注册码:613A3C5F4A4C564B08080808

说明:这个软件算法不难,但是很有代表性,让大家学会对随机数的分析~


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

yijun 发表于 2005-7-14 02:14:28

终于可以看到新文章了,学习啊~~~~

Iceman 发表于 2005-11-4 11:51:06

学习。学习

阿才 发表于 2005-11-10 18:03:30

已经 都 收藏

xu172 发表于 2005-11-15 21:05:37

真的是很详细....

zhsnqi 发表于 2005-11-26 21:26:09

真的是很详细....

jlbsljwhy 发表于 2007-8-26 13:08:01

写的真好下个安装学习一下呵呵辛苦了

命运 发表于 2007-8-29 08:49:47

学习了!~/:014

kunkun1987 发表于 2007-12-23 04:13:30

"随机数"......学习了

天使的锁链 发表于 2007-12-28 21:34:02

复制 复制 慢慢看
我可不是哦 ~~~~

页: [1] 2 3
查看完整版本: [PYG]算法分析入门第九课