飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 12699|回复: 24

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

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

    [LV.3]偶尔看看II

    发表于 2005-4-11 15:11:36 | 显示全部楼层 |阅读模式
    【破文标题】[PYG]算法分析入门第七课
    【破文作者】飘云[PYG]
    【作者主页】https://www.chinapyg.com
    破解平台】winxp
    【破解工具】PEiD0.93、AspackDie、w32dasm、OD二哥修改版
    【作者邮箱】[email protected]
    【软件名称】佳宜仓库管理软件 V2.25 单机版
    【软件大小】7169 KB
    【原版下载】http://www3.skycn.com/soft/18980.html
    【软件简介】本软件适用于中小型企业、商场、生产厂等物资供销、商品流通部门进行物资(商品)的采购、销售、库存的管理。主要功能包括进采购、采购退货、销售、销售退货、物料领用、领料退回、库存盘点、仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,客户供货汇总、明细报表,部门领用汇总、明细报表、仓库汇总、明细报表。
    销售毛利汇总明细报表,销售年报表等多种报表,使公司业务情况一目了然。
        本系统采用安全稳定的数据库管理系统设计而成,介面友好,所见即所得,操作简便,多级密码设置及备份功能,数据安全可靠,全真模拟显示功能,经营业务管理成熟,汇集了许多优秀企业的成功管理经验。
        现已广泛应用于:鞋业、外贸企业、医药、汽配、食品、服装、电子、电脑等行业。
    【分析过程】先用PEiD探测一下:没有加壳,Borland Delphi 6.0 - 7.0编写。

    用W32找到关键:
    * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
    |:005EF981(C), :005EF98B(C), :005EF995(C)    ★就是从这些地方跳向死亡★
    |
    :005EFA99 6A03                    push 00000003

    * Possible StringData Ref from Code Obj ->"系统注册失败,请检查注册是否有误!"
    *************************************************************************************************
    输入假信息:
    用户名:piaoyun
    注册码:789456123abcde

    用od载入来到关键代码处:
    005EF92A         .  8D55 DC            lea edx,dword ptr ss:[ebp-24]
    005EF92D         .  8B45 F8            mov eax,dword ptr ss:[ebp-8]
    005EF930         .  E8 EB9DE1FF        call DepotMan.00409720
    005EF935         .  8B45 DC            mov eax,dword ptr ss:[ebp-24]        ;  假码入栈
    005EF938         .  E8 9B54E1FF        call DepotMan.00404DD8               ;  计算假码位数
    005EF93D         .  83F8 0C            cmp eax,0C                           ;  是否小于12位
    005EF940         .  7E 3C              jle short DepotMan.005EF97E          ;  小于就没得玩了
    005EF942         .  8B45 F8            mov eax,dword ptr ss:[ebp-8]         ;  [EBP-8]是假码
    005EF945         .  8078 03 4D         cmp byte ptr ds:[eax+3],4D           ;  第4位是否为 4D(即字符“M”)
    005EF949         .  74 04              je short DepotMan.005EF94F           ;  是则跳(到底该不该跳呢?看下面的分析)
    005EF94B         .  33DB               xor ebx,ebx
    005EF94D         .  EB 02              jmp short DepotMan.005EF951
    005EF94F         >  B3 01              mov bl,1                             ;  跳到这里则bl=1
    005EF951         >  8B45 F8            mov eax,dword ptr ss:[ebp-8]
    005EF954         .  8078 05 44         cmp byte ptr ds:[eax+5],44           ;  第6位是否位44(即字符“D”)
    005EF958         .  75 20              jnz short DepotMan.005EF97A          ;  不是则跳
    005EF95A         .  C645 F7 01         mov byte ptr ss:[ebp-9],1            ;  不跳则[EBP-9]=1
    005EF95E         .  8B45 F8            mov eax,dword ptr ss:[ebp-8]
    005EF961         .  8078 09 46         cmp byte ptr ds:[eax+9],46           ;  第10位是否位46(即字符“F”)
    005EF965         .  75 04              jnz short DepotMan.005EF96B          ;  不是则跳
    005EF967         .  C645 F6 01         mov byte ptr ss:[ebp-A],1            ;  否则[EBP-A]=1
    005EF96B         >  8B45 F8            mov eax,dword ptr ss:[ebp-8]
    005EF96E         .  8078 0B 38         cmp byte ptr ds:[eax+B],38           ;  第12位是否为38(即十进制8)
    005EF972         .  75 0A              jnz short DepotMan.005EF97E          ;  不是就跳
    005EF974         .  C645 F5 01         mov byte ptr ss:[ebp-B],1            ;  否则[EBP-B]=1
    005EF978         .  EB 04              jmp short DepotMan.005EF97E
    005EF97A         >  C645 F7 00         mov byte ptr ss:[ebp-9],0            ;  [EBP-9]等于0
    005EF97E         >  845D F7            test byte ptr ss:[ebp-9],bl          ;  bl为1就不跳
    005EF981         .  0F84 12010000      je DepotMan.005EFA99                 ;  跳则完蛋~
    005EF987         .  807D F6 00         cmp byte ptr ss:[ebp-A],0            ;  [EBP-A]是否为0
    005EF98B         .  0F84 08010000      je DepotMan.005EFA99                 ;  不能跳
    005EF991         .  807D F5 00         cmp byte ptr ss:[ebp-B],0            ;  [EBP-B]是否为0
    005EF995         .  0F84 FE000000      je DepotMan.005EFA99                 ;  不能跳
                                                  ★★★从这几句可分析出:前面的条件必须成立★★★
    005EF99B         .  33C0               xor eax,eax
    005EF99D         .  55                 push ebp
    005EF99E         .  68 85FA5E00        push DepotMan.005EFA85               ;  以下是把用户名和机器码以及注册码加密换算后保存到注册表中
    005EF9A3         .  64:FF30            push dword ptr fs:[eax]
    005EF9A6         .  64:8920            mov dword ptr fs:[eax],esp
    005EF9A9         .  B2 01              mov dl,1
    005EF9AB         .  A1 94304700        mov eax,dword ptr ds:[473094]
    005EF9B0         .  E8 4B38E8FF        call DepotMan.00473200
    005EF9B5         .  8BD8               mov ebx,eax
    005EF9B7         .  BA 02000080        mov edx,80000002
    005EF9BC         .  8BC3               mov eax,ebx
    005EF9BE         .  E8 1939E8FF        call DepotMan.004732DC
    005EF9C3         .  B1 01              mov cl,1
    005EF9C5         .  8B15 B0DA6700      mov edx,dword ptr ds:[67DAB0]        ;  DepotMan.005EF7B0
    005EF9CB         .  8BC3               mov eax,ebx
    005EF9CD         .  E8 4E3AE8FF        call DepotMan.00473420
    005EF9D2         .  8D55 D8            lea edx,dword ptr ss:[ebp-28]
    005EF9D5         .  8B45 FC            mov eax,dword ptr ss:[ebp-4]
    005EF9D8         .  8B80 0C030000      mov eax,dword ptr ds:[eax+30C]
    005EF9DE         .  E8 8DF6E5FF        call DepotMan.0044F070
    005EF9E3         .  8B4D D8            mov ecx,dword ptr ss:[ebp-28]
    005EF9E6         .  BA 54FB5E00        mov edx,DepotMan.005EFB54            ;  ASCII "UserName"
    005EF9EB         .  8BC3               mov eax,ebx
    005EF9ED         .  E8 CA3BE8FF        call DepotMan.004735BC
    005EF9F2         .  8D55 D0            lea edx,dword ptr ss:[ebp-30]
    005EF9F5         .  8B45 FC            mov eax,dword ptr ss:[ebp-4]
    005EF9F8         .  8B80 F4020000      mov eax,dword ptr ds:[eax+2F4]
    005EF9FE         .  E8 6DF6E5FF        call DepotMan.0044F070
    005EFA03         .  8B45 D0            mov eax,dword ptr ss:[ebp-30]
    005EFA06         .  E8 C555E1FF        call DepotMan.00404FD0
    005EFA0B         .  50                 push eax
    005EFA0C         .  E8 970AFFFF        call <jmp.&PunUnitLib.SavePass>
    005EFA11         .  8BD0               mov edx,eax
    005EFA13         .  8D45 D4            lea eax,dword ptr ss:[ebp-2C]
    005EFA16         .  E8 F552E1FF        call DepotMan.00404D10
    005EFA1B         .  8B4D D4            mov ecx,dword ptr ss:[ebp-2C]
    005EFA1E         .  BA 68FB5E00        mov edx,DepotMan.005EFB68            ;  ASCII "SignCode"
    005EFA23         .  8BC3               mov eax,ebx
    005EFA25         .  E8 923BE8FF        call DepotMan.004735BC
    005EFA2A         .  8B45 F8            mov eax,dword ptr ss:[ebp-8]
    005EFA2D         .  E8 9E55E1FF        call DepotMan.00404FD0
    005EFA32         .  50                 push eax
    005EFA33         .  E8 700AFFFF        call <jmp.&PunUnitLib.SavePass>
    005EFA38         .  8BD0               mov edx,eax
    005EFA3A         .  8D45 CC            lea eax,dword ptr ss:[ebp-34]
    005EFA3D         .  E8 CE52E1FF        call DepotMan.00404D10
    005EFA42         .  8B4D CC            mov ecx,dword ptr ss:[ebp-34]
    005EFA45         .  BA 7CFB5E00        mov edx,DepotMan.005EFB7C            ;  ASCII "RegCode"
    005EFA4A         .  8BC3               mov eax,ebx
    005EFA4C         .  E8 6B3BE8FF        call DepotMan.004735BC
    005EFA51         .  8BC3               mov eax,ebx
    005EFA53         .  E8 D441E1FF        call DepotMan.00403C2C
    005EFA58         .  6A 00              push 0
    005EFA5A         .  68 84FB5E00        push DepotMan.005EFB84
    005EFA5F         .  E8 1C0AFFFF        call <jmp.&PunUnitLib.ShowMess>
    005EFA64         .  A1 C4E66700        mov eax,dword ptr ds:[67E6C4]
    005EFA69         .  C700 02000000      mov dword ptr ds:[eax],2
    005EFA6F         .  A1 78E46700        mov eax,dword ptr ds:[67E478]
    005EFA74         .  8B00               mov eax,dword ptr ds:[eax]
    005EFA76         .  E8 F111E8FF        call DepotMan.00470C6C
    005EFA7B         .  33C0               xor eax,eax
    005EFA7D         .  5A                 pop edx
    005EFA7E         .  59                 pop ecx
    005EFA7F         .  59                 pop ecx
    005EFA80         .  64:8910            mov dword ptr fs:[eax],edx
    005EFA83         .  EB 20              jmp short DepotMan.005EFAA5
    005EFA85         .^ E9 8246E1FF        jmp DepotMan.0040410C
    005EFA8A         .  8B45 FC            mov eax,dword ptr ss:[ebp-4]
    005EFA8D         .  E8 2AD9E7FF        call DepotMan.0046D3BC
    005EFA92         .  E8 A14AE1FF        call DepotMan.00404538
    005EFA97         .  EB 0C              jmp short DepotMan.005EFAA5
    005EFA99         >  6A 03              push 3
    005EFA9B         .  68 A8FB5E00        push DepotMan.005EFBA8
    005EFAA0         .  E8 DB09FFFF        call <jmp.&PunUnitLib.ShowMess>
    005EFAA5         >  33C0               xor eax,eax
    005EFAA7         .  5A                 pop edx
    005EFAA8         .  59                 pop ecx
    005EFAA9         .  59                 pop ecx
    005EFAAA         .  64:8910            mov dword ptr fs:[eax],edx
    005EFAAD         .  68 0FFB5E00        push DepotMan.005EFB0F
    005EFAB2         >  8D45 CC            lea eax,dword ptr ss:[ebp-34]
    005EFAB5         .  E8 6650E1FF        call DepotMan.00404B20
    005EFABA         .  8D45 D0            lea eax,dword ptr ss:[ebp-30]
    005EFABD         .  E8 5E50E1FF        call DepotMan.00404B20
    005EFAC2         .  8D45 D4            lea eax,dword ptr ss:[ebp-2C]
    005EFAC5         .  E8 5650E1FF        call DepotMan.00404B20
    005EFACA         .  8D45 D8            lea eax,dword ptr ss:[ebp-28]
    005EFACD         .  E8 4E50E1FF        call DepotMan.00404B20
    005EFAD2         .  8D45 DC            lea eax,dword ptr ss:[ebp-24]
    005EFAD5         .  E8 4650E1FF        call DepotMan.00404B20
    005EFADA         .  8D45 E0            lea eax,dword ptr ss:[ebp-20]
    005EFADD         .  BA 02000000        mov edx,2
    005EFAE2         .  E8 5D50E1FF        call DepotMan.00404B44
    005EFAE7         >  8D45 E8            lea eax,dword ptr ss:[ebp-18]
    005EFAEA         .  E8 3150E1FF        call DepotMan.00404B20
    005EFAEF         .  8D45 EC            lea eax,dword ptr ss:[ebp-14]
    005EFAF2         .  E8 2950E1FF        call DepotMan.00404B20
    005EFAF7         .  8D45 F0            lea eax,dword ptr ss:[ebp-10]
    005EFAFA         .  E8 2150E1FF        call DepotMan.00404B20
    005EFAFF         .  8D45 F8            lea eax,dword ptr ss:[ebp-8]
    005EFB02         .  E8 1950E1FF        call DepotMan.00404B20
    005EFB07         .  C3                 retn
    005EFB08         .^ E9 B348E1FF        jmp DepotMan.004043C0
    005EFB0D         .^ EB A3              jmp short DepotMan.005EFAB2
    005EFB0F         .  5F                 pop edi
    005EFB10         .  5E                 pop esi
    005EFB11         .  5B                 pop ebx
    005EFB12         .  8BE5               mov esp,ebp
    005EFB14         .  5D                 pop ebp
    005EFB15         .  C3                 retn

    【算法总结】
    注册码必须为12位以上,只要第4位为M,第6位位D,第10位为F,第12位为8就是合法的注册码,至于用户名和机器码,只有在写入注册表时才用到。

    送个靓号:888M8D888FB88

    后面加密后写注册表的过程有兴趣的可以跟一下~~~

    附:注册信息保存在:HKEY_LOCAL_MACHINE\SOFTWARE\meida\mdDepot。删除后又可以继续研究。

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

    该用户从未签到

    发表于 2005-4-11 19:12:36 | 显示全部楼层
    偶正在仔细看...........


    005EF949         .  74 04              je short DepotMan.005EF94F           ;  不是则跳(到底该不该跳呢?看下面的分析)

    应该是“是”则跳吧?
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-4-12 11:39:16 | 显示全部楼层
    学习~~~~~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-15 22:51:23 | 显示全部楼层
    多谢飘云斑竹
    PYG19周年生日快乐!
    xianju110 该用户已被删除
    发表于 2005-7-29 12:18:57 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!

    该用户从未签到

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

    该用户从未签到

    发表于 2007-12-23 04:11:24 | 显示全部楼层
    感觉老大每篇文章后面的
    "附:注册信息保存在:HKEY_LOCAL_MACHINE\SOFTWARE\meida\mdDepot。删除后又可以继续研究"
    这样的话很贴心 谢谢了/:014
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-9-7 09:38
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2007-12-28 12:15:54 | 显示全部楼层
    上网时间紧迫。所以,必须保存了!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-28 21:32:25 | 显示全部楼层
    复制 复制 慢慢看
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-6-21 20:49:38 | 显示全部楼层
    学习一下算法,谢谢老大。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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