飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 11841|回复: 22

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

[复制链接]
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2005-6-28 20:20:51 | 显示全部楼层 |阅读模式
    【破文标题】[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

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


    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-7-14 02:14:28 | 显示全部楼层
    终于可以看到新文章了,学习啊~~~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-4 11:51:06 | 显示全部楼层
    学习。学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-10 18:03:30 | 显示全部楼层
    已经 都 收藏
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-5-8 00:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-11-15 21:05:37 | 显示全部楼层
    真的是很详细....
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-6-28 09:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-11-26 21:26:09 | 显示全部楼层
    真的是很详细....
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-26 13:08:01 | 显示全部楼层
    写的真好下个安装学习一下呵呵辛苦了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-29 08:49:47 | 显示全部楼层
    学习了!~/:014
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-23 04:13:30 | 显示全部楼层
    "随机数"......学习了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-28 21:34:02 | 显示全部楼层
    复制 复制 慢慢看
      我可不是哦 ~~~~

    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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