- UID
- 2
注册时间2004-12-1
阅读权限255
最后登录1970-1-1
总坛主
TA的每日心情 | 开心 2024-12-1 11:04 |
---|
签到天数: 12 天 [LV.3]偶尔看看II
|
【破文标题】[PYG]算法分析入门第九课
【破文作者】飘云[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:[eax]
0066ECED 64:8920 mov dword ptr fs:[eax],esp
0066ECF0 8D55 F8 lea edx,dword ptr ss:[ebp-8]
0066ECF3 8B83 F8020000 mov eax,dword ptr ds:[ebx+2F8]
0066ECF9 E8 5EFCDDFF call PersonSi.0044E95C
0066ECFE 8B45 F8 mov eax,dword ptr ss:[ebp-8]
0066ED01 8D55 FC lea edx,dword ptr ss:[ebp-4]
0066ED04 E8 0FA8D9FF call PersonSi.00409518
0066ED09 837D FC 00 cmp dword ptr ss:[ebp-4],0
0066ED0D 74 1F je short PersonSi.0066ED2E ; 是否输入用户名
0066ED0F 8D55 F0 lea edx,dword ptr ss:[ebp-10]
0066ED12 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC]
0066ED18 E8 3FFCDDFF call PersonSi.0044E95C
0066ED1D 8B45 F0 mov eax,dword ptr ss:[ebp-10]
0066ED20 8D55 F4 lea edx,dword ptr ss:[ebp-C]
0066ED23 E8 F0A7D9FF call PersonSi.00409518
0066ED28 837D F4 00 cmp dword ptr ss:[ebp-C],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:[73F004]
0066ED3F 8B00 mov eax,dword ptr ds:[eax]
0066ED41 E8 3E16E0FF call PersonSi.00470384
0066ED46 E9 F5000000 jmp PersonSi.0066EE40
0066ED4B 8D45 EC lea eax,dword ptr ss:[ebp-14]
0066ED4E 50 push eax
0066ED4F 8D55 E8 lea edx,dword ptr ss:[ebp-18]
0066ED52 8B83 F4020000 mov eax,dword ptr ds:[ebx+2F4]
0066ED58 E8 FFFBDDFF call PersonSi.0044E95C ; 取机器码
0066ED5D 8B45 E8 mov eax,dword ptr ss:[ebp-18]
0066ED60 50 push eax
0066ED61 8D55 E0 lea edx,dword ptr ss:[ebp-20]
0066ED64 8B83 F8020000 mov eax,dword ptr ds:[ebx+2F8]
0066ED6A E8 EDFBDDFF call PersonSi.0044E95C ; 取用户名
0066ED6F 8B45 E0 mov eax,dword ptr ss:[ebp-20]
0066ED72 8D55 E4 lea edx,dword ptr ss:[ebp-1C]
0066ED75 E8 9EA7D9FF call PersonSi.00409518
0066ED7A 8B55 E4 mov edx,dword ptr ss:[ebp-1C]
0066ED7D A1 4CE87300 mov eax,dword ptr ds:[73E84C]
0066ED82 8B00 mov eax,dword ptr ds:[eax]
0066ED84 8B80 CC000000 mov eax,dword ptr ds:[eax+CC]
0066ED8A 59 pop ecx
0066ED8B E8 8C41EFFF call PersonSi.00562F1C ;★★算法call!进入!
0066ED90 8B45 EC mov eax,dword ptr ss:[ebp-14]
0066ED93 50 push eax
0066ED94 8D55 D8 lea edx,dword ptr ss:[ebp-28]
0066ED97 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC]
0066ED9D E8 BAFBDDFF call PersonSi.0044E95C
0066EDA2 8B45 D8 mov eax,dword ptr ss:[ebp-28]
0066EDA5 8D55 DC lea edx,dword ptr ss:[ebp-24]
0066EDA8 E8 6BA7D9FF call PersonSi.00409518
0066EDAD 8B55 DC mov edx,dword ptr ss:[ebp-24]
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:[ebp-C],ebx
00562F2A 894D F8 mov dword ptr ss:[ebp-8],ecx ; 机器码ASCII "Y24WBDNC"
00562F2D 8955 FC mov dword ptr ss:[ebp-4],edx ; 用户名ASCII "piaoyun[PYG]"
00562F30 8B75 08 mov esi,dword ptr ss:[ebp+8]
00562F33 8B45 FC mov eax,dword ptr ss:[ebp-4]
00562F36 E8 251EEAFF call PersonSi.00404D60 ; 取机器码和用户名
00562F3B 8B45 F8 mov eax,dword ptr ss:[ebp-8]
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:[eax]
00562F4E 64:8920 mov dword ptr fs:[eax],esp
00562F51 8BC6 mov eax,esi
00562F53 E8 5819EAFF call PersonSi.004048B0
00562F58 8B45 FC mov eax,dword ptr ss:[ebp-4] ; 用户名送到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:[ebp-8] ; 机器码送到eax
00562F6E 0FB64438 FF movzx eax,byte ptr ds:[eax+edi-1] ; 逐位取ascii送到eax(9-12位取“00”)
据分析,这里不能超过12位,否则会产生随机数
00562F73 83C0 08 add eax,8 ; 取得的值加上 8
00562F76 8D4D F4 lea ecx,dword ptr ss:[ebp-C]
00562F79 BA 02000000 mov edx,2
00562F7E E8 DD69EAFF call PersonSi.00409960 ; 将ascii转换成字符
00562F83 8B55 F4 mov edx,dword ptr ss:[ebp-C] ; 保存到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:[eax],edx
00562F99 68 B32F5600 push PersonSi.00562FB3
00562F9E 8D45 F4 lea eax,dword ptr ss:[ebp-C]
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[PYG]
注册码:613A3C5F4A4C564B08080808
说明:这个软件算法不难,但是很有代表性,让大家学会对随机数的分析~
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |
|