飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8655|回复: 14

[PYG]算法分析入门第十四课

[复制链接]
  • TA的每日心情
    难过
    5 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-9-18 22:38:33 | 显示全部楼层 |阅读模式
    【破文标题】算法分析入门第十四课
    【破文作者】飘云
    【作者主页】https://www.chinapyg.com
    破解平台】WinXp
    【破解工具】PEiD0.93、OD
    【作者邮箱】piaoyun04@163.com
    【软件名称】锦航物业收费管理软件 1.0
    【软件大小】1805KB
    【原版下载】http://nj.onlinedown.net/soft/42454.htm
    【软件简介】锦航物业收费管理系统是一套物业公司对业主收取电费、水费、维修费、清洁卫生费、治安

    管理费等各种物业收费项目进行全面管理的系统。
      根据物业管理的要求,用户可以自行设定各种收费项目和计算公式,针对每个业主设定不同收费项目

    及收费标准,可以复制上月的收费项目及数据到本月进行修改。该系统操作简单,功能齐全,对各项收费

    项目进行分类统计与综合查询,能够打印出缴款单和各种报表,为物业收费管理提供了一个现代化的管理

    手段,保持了各种数据的完整性、及时性和正确性,使企业完善了管理体系提高了管理水平。
    【破解过程】用PEID0.93探测,本软件无壳,Borland Delphi 6.0 - 7.0 编写,OD载入程序运行

    我的试探信息:
    机器码:JWBDNCY24H
    注册码:789456123

    用OD汉字插件,找到如下关键点:
    005EB4CC    53                push ebx                          ;在此中断
    005EB4CD    8945 FC           mov dword ptr ss:[ebp-4],eax
    005EB4D0    33C0              xor eax,eax
    005EB4D2    55                push ebp
    005EB4D3    68 25B65E00       push Main.005EB625
    005EB4D8    64:FF30           push dword ptr fs:[eax]
    005EB4DB    64:8920           mov dword ptr fs:[eax],esp
    005EB4DE    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB4E1    E8 F2F9FFFF       call Main.005EAED8
    005EB4E6    8D45 EC           lea eax,dword ptr ss:[ebp-14]      ; 机器码
    005EB4E9    B9 3CB65E00       mov ecx,Main.005EB63C              ; ASCII "wygl"
    005EB4EE    8B55 F4           mov edx,dword ptr ss:[ebp-C]
    005EB4F1    E8 EA95E1FF       call Main.00404AE0                 ; 连接机器码和"wygl"   我们称它为特征码
    005EB4F6    8B45 EC           mov eax,dword ptr ss:[ebp-14]
    005EB4F9    8D55 F0           lea edx,dword ptr ss:[ebp-10]
    005EB4FC    E8 AFFAFFFF       call Main.005EAFB0                 ; 算法call 跟进!
    005EB501    8D55 E4           lea edx,dword ptr ss:[ebp-1C]
    005EB504    8B45 FC           mov eax,dword ptr ss:[ebp-4]
    005EB507    8B80 08030000     mov eax,dword ptr ds:[eax+308]
    005EB50D    E8 5E58E6FF       call Main.00450D70
    005EB512    8B45 E4           mov eax,dword ptr ss:[ebp-1C]
    005EB515    8D55 E8           lea edx,dword ptr ss:[ebp-18]
    005EB518    E8 8BDFE1FF       call Main.004094A8
    005EB51D    8B45 E8           mov eax,dword ptr ss:[ebp-18]      ; 以下经典部分 哈
    005EB520    8B55 F0           mov edx,dword ptr ss:[ebp-10]
    005EB523    E8 B096E1FF       call Main.00404BD8                 ; 这里可以做内存注册机
    005EB528    74 2E             je short Main.005EB558             ; 关键跳转,爆破点
    005EB52A    6A 30             push 30
    005EB52C    B9 44B65E00       mov ecx,Main.005EB644
    005EB531    BA 4CB65E00       mov edx,Main.005EB64C
    005EB536    A1 78F16100       mov eax,dword ptr ds:[61F178]
    005EB53B    8B00              mov eax,dword ptr ds:[eax]
    005EB53D    E8 FA6DE8FF       call Main.0047233C
    005EB542    8B45 FC           mov eax,dword ptr ss:[ebp-4]
    005EB545    8B80 08030000     mov eax,dword ptr ds:[eax+308]
    005EB54B    8B10              mov edx,dword ptr ds:[eax]
    005EB54D    FF92 C0000000     call dword ptr ds:[edx+C0]
    005EB553    E9 AA000000       jmp Main.005EB602
    005EB558    8B45 F0           mov eax,dword ptr ss:[ebp-10]
    005EB55B    E8 5CE4E1FF       call Main.004099BC
    005EB560    8BD8              mov ebx,eax
    005EB562    81EB B54A0506     sub ebx,6054AB5
    005EB568    33C0              xor eax,eax
    005EB56A    55                push ebp
    005EB56B    68 DBB55E00       push Main.005EB5DB
    005EB570    64:FF30           push dword ptr fs:[eax]
    005EB573    64:8920           mov dword ptr fs:[eax],esp
    005EB576    B2 01             mov dl,1
    005EB578    A1 34C74B00       mov eax,dword ptr ds:[4BC734]
    005EB57D    E8 1E13EDFF       call Main.004BC8A0                 ; 下面开始向注册表写信息
    005EB582    8945 F8           mov dword ptr ss:[ebp-8],eax
    005EB585    BA 02000080       mov edx,80000002
    005EB58A    8B45 F8           mov eax,dword ptr ss:[ebp-8]
    005EB58D    E8 EA13EDFF       call Main.004BC97C
    005EB592    BA 70B65E00       mov edx,Main.005EB670              ; ASCII
    "Software\Microsoft\Windows\CurrentVersion\Mark\wygl"
    005EB597    8B45 F8           mov eax,dword ptr ss:[ebp-8]
    005EB59A    E8 4514EDFF       call Main.004BC9E4
    005EB59F    B1 01             mov cl,1
    005EB5A1    BA 70B65E00       mov edx,Main.005EB670              ; ASCII
    "Software\Microsoft\Windows\CurrentVersion\Mark\wygl"
    005EB5A6    8B45 F8           mov eax,dword ptr ss:[ebp-8]
    005EB5A9    E8 1215EDFF       call Main.004BCAC0
    005EB5AE    8BCB              mov ecx,ebx
    005EB5B0    BA ACB65E00       mov edx,Main.005EB6AC              ; ASCII "reg_id"
    005EB5B5    8B45 F8           mov eax,dword ptr ss:[ebp-8]
    005EB5B8    E8 4317EDFF       call Main.004BCD00
    005EB5BD    33C0              xor eax,eax
    005EB5BF    5A                pop edx
    005EB5C0    59                pop ecx
    005EB5C1    59                pop ecx
    005EB5C2    64:8910           mov dword ptr fs:[eax],edx
    005EB5C5    68 E2B55E00       push Main.005EB5E2
    005EB5CA    8B45 F8           mov eax,dword ptr ss:[ebp-8]
    005EB5CD    E8 7A13EDFF       call Main.004BC94C
    005EB5D2    8B45 F8           mov eax,dword ptr ss:[ebp-8]
    005EB5D5    E8 9683E1FF       call Main.00403970
    005EB5DA    C3                retn

    下面是算法:
    ****************************************call 005EAFB0:***********************************
    005EAFB6    56                push esi
    005EAFB7    33C9              xor ecx,ecx
    005EAFB9    894D F4           mov dword ptr ss:[ebp-C],ecx
    005EAFE8    B8 01000000       mov eax,1                          ; 初始化eax=1
    005EAFED    8B4D FC           mov ecx,dword ptr ss:[ebp-4]       ; 特征码
    005EAFF0    8A4C01 FF         mov cl,byte ptr ds:[ecx+eax-1]     ; 逐位取ascii
    005EAFF4    80F1 57           xor cl,57                          ; xor 57
    005EAFF7    81E1 FF000000     and ecx,0FF
    005EAFFD    69C9 6C030000     imul ecx,ecx,36C                   ; 乘以36c
    005EB003    0FAFC8            imul ecx,eax                       ; 乘以当前字符所在的位置
    005EB006    03F1              add esi,ecx                        ; 累加到esi
    005EB008    40                inc eax                            ; eax+1 指向下特征码一位
    005EB009    4A                dec edx                            ; edx-1  特征码位数减1
    005EB00A  ^ 75 E1             jnz short Main.005EAFED            ; 循环运算
    005EB00C    8D55 F4           lea edx,dword ptr ss:[ebp-C]
    005EB00F    8BC6              mov eax,esi
    005EB011    E8 06E9E1FF       call Main.0040991C
    005EB016    8B45 F4           mov eax,dword ptr ss:[ebp-C]
    005EB019    E8 769AE1FF       call Main.00404A94
    005EB01E    83F8 07           cmp eax,7
    005EB021    7F 0C             jg short Main.005EB02F             ; 大于7位的处理(具体处理情况,请根据跳转路径查对)
    005EB023    74 3B             je short Main.005EB060             ; 等于7位的处理
    005EB025    83E8 05           sub eax,5
    005EB028    74 12             je short Main.005EB03C             ; 等于5位的处理
    005EB02A    48                dec eax
    005EB02B    74 21             je short Main.005EB04E             ; 等于6位的处理
    005EB02D    EB 62             jmp short Main.005EB091
    005EB02F    83E8 08           sub eax,8                          ; eax-8
    005EB032    74 3E             je short Main.005EB072             ; 如果为8位则跳
    005EB034    48                dec eax                            ; eax-1
    005EB035    83E8 5C           sub eax,5C                         ; eax-5c
    005EB038    72 4A             jb short Main.005EB084             ; 若小于则跳,当然跳咯,比5C(92)大的很少吧?
    005EB03A    EB 55             jmp short Main.005EB091
    005EB03C    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB03F    8B4D F4           mov ecx,dword ptr ss:[ebp-C]
    005EB042    BA DCB05E00       mov edx,Main.005EB0DC              ; ASCII "8761"
    005EB047    E8 949AE1FF       call Main.00404AE0                 ; 等于5位就在前面加上"8761"
    005EB04C    EB 50             jmp short Main.005EB09E
    005EB04E    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB051    8B4D F4           mov ecx,dword ptr ss:[ebp-C]
    005EB054    BA ECB05E00       mov edx,Main.005EB0EC              ; ASCII "876"
    005EB059    E8 829AE1FF       call Main.00404AE0                 ; 等于6位就在前面加上"876"
    005EB05E    EB 3E             jmp short Main.005EB09E
    005EB060    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB063    8B4D F4           mov ecx,dword ptr ss:[ebp-C]
    005EB066    BA F8B05E00       mov edx,Main.005EB0F8              ; ASCII "87"
    005EB06B    E8 709AE1FF       call Main.00404AE0                 ; 等于7位就在前面加"87"
    005EB070    EB 2C             jmp short Main.005EB09E
    005EB072    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB075    8B4D F4           mov ecx,dword ptr ss:[ebp-C]
    005EB078    BA 04B15E00       mov edx,Main.005EB104              ; ASII"8"
    005EB07D    E8 5E9AE1FF       call Main.00404AE0                 ; 等于8位就在前面加"8"
    005EB082    EB 1A             jmp short Main.005EB09E
    005EB084    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB087    8B55 F4           mov edx,dword ptr ss:[ebp-C]
    005EB08A    E8 E597E1FF       call Main.00404874                 ; 直接输出当前字符串作为注册码
    005EB08F    EB 0D             jmp short Main.005EB09E
    005EB091    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB094    BA 10B15E00       mov edx,Main.005EB110              ; ASCII "333543469"
    005EB099    E8 D697E1FF       call Main.00404874                 ; 否则用333543469代替,作为注册码
    005EB09E    8B45 F8           mov eax,dword ptr ss:[ebp-8]
    005EB0A1    8B55 F4           mov edx,dword ptr ss:[ebp-C]
    005EB0A4    E8 8797E1FF       call Main.00404830
    005EB0A9    33C0              xor eax,eax
    005EB0AB    5A                pop edx
    005EB0AC    59                pop ecx
    005EB0AD    59                pop ecx
    005EB0AE    64:8910           mov dword ptr fs:[eax],edx
    005EB0B1    68 CEB05E00       push Main.005EB0CE
    005EB0B6    8D45 F4           lea eax,dword ptr ss:[ebp-C]
    005EB0B9    E8 1E97E1FF       call Main.004047DC
    005EB0BE    8D45 FC           lea eax,dword ptr ss:[ebp-4]
    005EB0C1    E8 1697E1FF       call Main.004047DC
    005EB0C6    C3                retn

    【算法总结】机器码 & wygl  然后进行循环运算,得出的结果转换成10进制,然后判断位数,根据不同的位数来选择不同的处理方式。最终的结果就是注册码!  
    例如我的:
    机器码:
    机器码:JWBDNCY24H
    注册码:874269624
    【注册机】 论坛有下载
    附:
    注册信息保存在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Mark\wygl  删除后可以继续研究
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-9-18 23:47:57 | 显示全部楼层
    学习了,
    下课了,
    盼第十五课
    PYG19周年生日快乐!
    zhupf 该用户已被删除
    发表于 2005-9-19 09:21:52 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-9-19 14:43:20 | 显示全部楼层
    晕`

    我发了才知道飘云老大也发了!

    狂晕~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-9-23 18:15:14 | 显示全部楼层
    支持啊~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 15:41
  • 签到天数: 1480 天

    [LV.10]以坛为家III

    发表于 2005-9-26 19:46:50 | 显示全部楼层
    支持,这里是学习的好地方。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-4 11:45:48 | 显示全部楼层
    好好学习。
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2005-12-29 15:30:19 | 显示全部楼层
    每看一次感受到不同
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-2-26 08:32
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    发表于 2006-1-14 10:44:38 | 显示全部楼层
    第十四课是不是有二篇?
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-9-29 11:35
  • 签到天数: 205 天

    [LV.7]常住居民III

    发表于 2006-3-30 02:54:41 | 显示全部楼层
    就是啊.  为什么有两个十四课?  
    https://www.chinapyg.com/viewthr ... &extra=page%3D1
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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