飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 16250|回复: 22

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

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

    [LV.3]偶尔看看II

    发表于 2005-4-10 16:48:00 | 显示全部楼层 |阅读模式
    【破文标题】[PYG]算法分析入门第六课
    【破文作者】飘云[PYG]
    【作者主页】https://www.chinapyg.com
    破解平台】winxp
    【破解工具】PEiD0.93、AspackDie、w32dasm、OD二哥修改版
    【作者邮箱】[email protected]
    【软件名称】Office小管家 1.0
    【软件大小】1500 KB
    【原版下载】http://www.uu007.com/Soft_Show.asp?SoftID=5
    【软件简介】  收集整 理 Word 和 Excel ,文档交流方便快捷,直接进行可视编辑。

    这就是Office小管家,它帮助您收藏Word 和 Excel 。通过下面几个部分的介绍,相信您一定会喜欢上它。:)

    Office小管家将帮助您:
     
    1.将你感兴趣的Word 和 Excel收藏到Office小管家中。
    2.将您众多杂乱的Word 和 Excel 信息,一起收藏到Office小管家中,按树3状进行分类管理,同时可进行浏览,编辑。形成了自己的信息库之后,再4也不用担心找不到旧有的资料,再也不会有重复的劳动。
    3.在Office小管家中可建立一个个的文档,对文档可进行编辑,你的Word 和 Excel文档 都可以存放到里面了。
    Office小管家的功能特点: 
    1.导入方式非常灵活:
    仅需在信息库管理中点击批量导入文档,就可以原汁原味的导入进一个或多个文档。 
    2.文档交流管理非常方便:
    你可以使用Office小管家建立一个个xxk 的文件,导入的众多文档的所有属性内容就一起储存在这个文件中,你的同事朋友们也可以使用Office小管家打开这个文件,就可以浏览它里面的所有信息。当然,如果你收集的信息不想让别人看到,可以加上密码保护。
    3.树状的分类目录整理:
    那么多的文档导入到一个xxk 文件中,肯定需要分类整理。在Office小管家中,你可以建立一层层的目录,可以随意拖动目录或文档,随意进行排序。
    Office小管家的特长:
    相比其它同类软件,Office小管家有它独有的特性,这些可能正在您最需要的:

    1.自定义建立信息库。
    2.对文档、目录随意拖动排序。
    3. 可以将文档A的某些页面或目录复制到文档B中。
    4.简单易用,一看即了。

    【分析过程】先用PEiD探测一下:ASPack 2.12 -> Alexey Solodovnikov 用AspackDie解决,当然用手动也很

    快的 再查为Borland Delphi 6.0 - 7.0编写,用W32DASM找到以下关键(为了方便,我用OD看的代码):
    004CD440        /.  55                 push ebp
    004CD441        |.  8BEC               mov ebp,esp
    004CD443        |.  B9 09000000        mov ecx,9
    004CD448        |>  6A 00              /push 0
    004CD44A        |.  6A 00              |push 0
    004CD44C        |.  49                 |dec ecx
    004CD44D        |.^ 75 F9              \jnz short Unpacked.004CD448
    004CD44F        |.  53                 push ebx
    004CD450        |.  56                 push esi
    004CD451        |.  8BD8               mov ebx,eax
    004CD453        |.  33C0               xor eax,eax
    004CD455        |.  55                 push ebp
    004CD456        |.  68 35D74C00        push Unpacked.004CD735
    004CD45B        |.  64:FF30            push dword ptr fs:[eax]
    004CD45E        |.  64:8920            mov dword ptr fs:[eax],esp
    004CD461        |.  8D55 FC            lea edx,dword ptr ss:[ebp-4]
    004CD464        |.  8B83 14030000      mov eax,dword ptr ds:[ebx+314]
    004CD46A        |.  E8 0D14F8FF        call Unpacked.0044E87C
    004CD46F        |.  837D FC 00         cmp dword ptr ss:[ebp-4],0           ;是否输入了注册码?
    004CD473        |.  75 2C              jnz short Unpacked.004CD4A1          ;没有就没得玩了~~
    004CD475        |.  6A 00              push 0
    004CD477        |.  68 48D74C00        push Unpacked.004CD748
    004CD47C        |.  68 54D74C00        push Unpacked.004CD754
    004CD481        |.  8BC3               mov eax,ebx
    004CD483        |.  E8 E47BF8FF        call Unpacked.0045506C
    004CD488        |.  50                 push eax                             ; |hOwner
    004CD489        |.  E8 BEA8F3FF        call <jmp.&user32.MessageBoxA>       ; \MessageBoxA
    004CD48E        |.  8B83 14030000      mov eax,dword ptr ds:[ebx+314]
    004CD494        |.  8B10               mov edx,dword ptr ds:[eax]
    004CD496        |.  FF92 C0000000      call dword ptr ds:[edx+C0]
    004CD49C        |.  E9 F6010000        jmp Unpacked.004CD697
    004CD4A1        |>  8D55 F4            lea edx,dword ptr ss:[ebp-C]
    004CD4A4        |.  8B83 14030000      mov eax,dword ptr ds:[ebx+314]
    004CD4AA        |.  E8 CD13F8FF        call Unpacked.0044E87C
    004CD4AF        |.  8B45 F4            mov eax,dword ptr ss:[ebp-C]
    004CD4B2        |.  8D55 F8            lea edx,dword ptr ss:[ebp-8]
    004CD4B5        |.  E8 7EBFF3FF        call Unpacked.00409438
    004CD4BA        |.  8B45 F8            mov eax,dword ptr ss:[ebp-8]
    004CD4BD        |.  50                 push eax
    004CD4BE        |.  8D55 EC            lea edx,dword ptr ss:[ebp-14]
    004CD4C1        |.  8B83 0C030000      mov eax,dword ptr ds:[ebx+30C]
    004CD4C7        |.  E8 B013F8FF        call Unpacked.0044E87C               ;  位数
    004CD4CC        |.  8B45 EC            mov eax,dword ptr ss:[ebp-14]
    004CD4CF        |.  8D55 F0            lea edx,dword ptr ss:[ebp-10]
    004CD4D2        |.  E8 61BFF3FF        call Unpacked.00409438
    004CD4D7        |.  8B45 F0            mov eax,dword ptr ss:[ebp-10]
    004CD4DA        |.  50                 push eax
    004CD4DB        |.  8D55 E4            lea edx,dword ptr ss:[ebp-1C]
    004CD4DE        |.  8B83 08030000      mov eax,dword ptr ds:[ebx+308]
    004CD4E4        |.  E8 9313F8FF        call Unpacked.0044E87C
    004CD4E9        |.  8B45 E4            mov eax,dword ptr ss:[ebp-1C]        ;  机器码
    004CD4EC        |.  8D55 E8            lea edx,dword ptr ss:[ebp-18]
    004CD4EF        |.  E8 44BFF3FF        call Unpacked.00409438
    004CD4F4        |.  8B45 E8            mov eax,dword ptr ss:[ebp-18]        ;  机器码送到eax
    004CD4F7        |.  5A                 pop edx                              ;  
    004CD4F8        |.  59                 pop ecx                              ;  
    004CD4F9        |.  E8 F2060000        call Unpacked.004CDBF0               ;  算法call,跟进
    004CD4FE        |.  3C 01              cmp al,1                             ;  返回值是否为1
    004CD500        |.  0F85 6A010000      jnz Unpacked.004CD670
    004CD506        |.  8D55 DC            lea edx,dword ptr ss:[ebp-24]
    004CD509        |.  8B83 0C030000      mov eax,dword ptr ds:[ebx+30C]

    ★★以下是进入算法call:
    004CDBF0        /$  55                 push ebp
    004CDBF1        |.  8BEC               mov ebp,esp
    004CDBF3        |.  81C4 1CFFFFFF      add esp,-0E4
    004CDBF9        |.  53                 push ebx
    004CDBFA        |.  56                 push esi                             ;  Unpacked.00474090
    004CDBFB        |.  33DB               xor ebx,ebx
    004CDBFD        |.  899D 1CFFFFFF      mov dword ptr ss:[ebp-E4],ebx
    004CDC03        |.  899D 20FFFFFF      mov dword ptr ss:[ebp-E0],ebx
    004CDC09        |.  894D F4            mov dword ptr ss:[ebp-C],ecx
    004CDC0C        |.  8955 F8            mov dword ptr ss:[ebp-8],edx
    004CDC0F        |.  8945 FC            mov dword ptr ss:[ebp-4],eax
    004CDC12        |.  8B45 FC            mov eax,dword ptr ss:[ebp-4]
    004CDC15        |.  E8 4673F3FF        call Unpacked.00404F60
    004CDC1A        |.  8B45 F8            mov eax,dword ptr ss:[ebp-8]
    004CDC1D        |.  E8 3E73F3FF        call Unpacked.00404F60
    004CDC22        |.  8B45 F4            mov eax,dword ptr ss:[ebp-C]
    004CDC25        |.  E8 3673F3FF        call Unpacked.00404F60
    004CDC2A        |.  33C0               xor eax,eax
    004CDC2C        |.  55                 push ebp
    004CDC2D        |.  68 21DD4C00        push Unpacked.004CDD21
    004CDC32        |.  64:FF30            push dword ptr fs:[eax]
    004CDC35        |.  64:8920            mov dword ptr fs:[eax],esp
    004CDC38        |.  C645 F3 00         mov byte ptr ss:[ebp-D],0
    004CDC3C        |.  33F6               xor esi,esi
    004CDC3E        |.  8B45 FC            mov eax,dword ptr ss:[ebp-4]
    004CDC41        |.  E8 3271F3FF        call Unpacked.00404D78               ;  机器码位数
    004CDC46        |.  8BD0               mov edx,eax                          ;  edx中存放机器码位数
    004CDC48        |.  85D2               test edx,edx
    004CDC4A        |.  7E 2A              jle short Unpacked.004CDC76
    004CDC4C        |.  B9 01000000        mov ecx,1
    004CDC51        |.  8D85 24FFFFFF      lea eax,dword ptr ss:[ebp-DC]
    004CDC57        |>  8B5D FC            /mov ebx,dword ptr ss:[ebp-4]
    004CDC5A        |.  0FB65C0B FF        |movzx ebx,byte ptr ds:[ebx+ecx-1]   ;  逐位取机器码ascii
    004CDC5F        |.  8918               |mov dword ptr ds:[eax],ebx          ;  送到[EAX]
    004CDC61        |.  6918 39590500      |imul ebx,dword ptr ds:[eax],55939   ;  *55939
    004CDC67        |.  03F3               |add esi,ebx                         ;  esi=esi+ebx
    004CDC69        |.  81C6 46743305      |add esi,5337446                     ;  esi=esi+5337446(esi做为累加器)
    004CDC6F        |.  41                 |inc ecx                             ;  ecx=ecx+1
    004CDC70        |.  83C0 04            |add eax,4                       
    004CDC73        |.  4A                 |dec edx                             ;  edx=edx-1
    004CDC74        |.^ 75 E1              \jnz short Unpacked.004CDC57         ;  循环   
    004CDC76        |>  33C0               xor eax,eax
    004CDC78        |.  8945 EC            mov dword ptr ss:[ebp-14],eax
    004CDC7B        |.  8B45 FC            mov eax,dword ptr ss:[ebp-4]         ;  机器码送到eax
    004CDC7E        |.  E8 F570F3FF        call Unpacked.00404D78               ;  计算机器码位数
    004CDC83        |.  8BD0               mov edx,eax                          ;  edx中保存位数
    004CDC85        |.  85D2               test edx,edx
    004CDC87        |.  7E 2E              jle short Unpacked.004CDCB7
    004CDC89        |.  B9 01000000        mov ecx,1
    004CDC8E        |.  8D85 24FFFFFF      lea eax,dword ptr ss:[ebp-DC]
    004CDC94        |>  8B5D FC            /mov ebx,dword ptr ss:[ebp-4]
    004CDC97        |.  0FB65C0B FF        |movzx ebx,byte ptr ds:[ebx+ecx-1]   ;  逐位取机器码ascii
    004CDC9C        |.  8918               |mov dword ptr ds:[eax],ebx          ;  送到[EAX]
    004CDC9E        |.  6918 49860C00      |imul ebx,dword ptr ds:[eax],0C8649  ;  *0C8649
    004CDCA4        |.  035D EC            |add ebx,dword ptr ss:[ebp-14]       ;  [EBP-14]初始值为0
    004CDCA7        |.  81C3 46743305      |add ebx,5337446                     ;  ebx=ebx+5337446
    004CDCAD        |.  895D EC            |mov dword ptr ss:[ebp-14],ebx       ;  结果放到[EBP-14](累加)
    004CDCB0        |.  41                 |inc ecx                             ;  ecx=ecx+1
    004CDCB1        |.  83C0 04            |add eax,4
    004CDCB4        |.  4A                 |dec edx                             ;  edx=edx-1
    004CDCB5        |.^ 75 DD              \jnz short Unpacked.004CDC94         ;  循环  
    004CDCB7        |>  8D95 20FFFFFF      lea edx,dword ptr ss:[ebp-E0]
    004CDCBD        |.  8BC6               mov eax,esi                          ;  esi中累加的值送到eax
    004CDCBF        |.  E8 B4BBF3FF        call Unpacked.00409878               ;  转换成10进制
    004CDCC4        |.  8B95 20FFFFFF      mov edx,dword ptr ss:[ebp-E0]        ;  真码第一组
    004CDCCA        |.  8B45 F8            mov eax,dword ptr ss:[ebp-8]         ;  假码第一组
    004CDCCD        |.  E8 EA71F3FF        call Unpacked.00404EBC               ;  比较
    004CDCD2            75 22              jnz short Unpacked.004CDCF6          ;  不等则跳(爆破点1)
    004CDCD4        |.  8D95 1CFFFFFF      lea edx,dword ptr ss:[ebp-E4]
    004CDCDA        |.  8B45 EC            mov eax,dword ptr ss:[ebp-14]        ;  [EBP-14]累加的值送到eax
    004CDCDD        |>  E8 96BBF3FF        call Unpacked.00409878               ;  转换成10进制
    004CDCE2        |.  8B95 1CFFFFFF      mov edx,dword ptr ss:[ebp-E4]        ;  真码第二组
    004CDCE8        |.  8B45 F4            mov eax,dword ptr ss:[ebp-C]         ;  假码第二组   
    004CDCEB        |.  E8 CC71F3FF        call Unpacked.00404EBC
    004CDCF0        |.  75 04              jnz short Unpacked.004CDCF6          ;  跳了就OVER(爆破点2)
    004CDCF2        |.  C645 F3 01         mov byte ptr ss:[ebp-D],1            ;  1送到 [ebp-D]
    004CDCF6        |>  33C0               xor eax,eax
    004CDCF8        |.  5A                 pop edx
    004CDCF9        |.  59                 pop ecx
    004CDCFA        |.  59                 pop ecx
    004CDCFB        |.  64:8910            mov dword ptr fs:[eax],edx
    004CDCFE        |.  68 28DD4C00        push Unpacked.004CDD28
    004CDD03        |>  8D85 1CFFFFFF      lea eax,dword ptr ss:[ebp-E4]
    004CDD09        |.  BA 02000000        mov edx,2
    004CDD0E        |.  E8 D16DF3FF        call Unpacked.00404AE4
    004CDD13        |.  8D45 F4            lea eax,dword ptr ss:[ebp-C]
    004CDD16        |.  BA 03000000        mov edx,3
    004CDD1B        |.  E8 C46DF3FF        call Unpacked.00404AE4
    004CDD20        \.  C3                 retn
    004CDD21         .^ E9 0267F3FF        jmp Unpacked.00404428
    004CDD26         .^ EB DB              jmp short Unpacked.004CDD03
    004CDD28         .  8A45 F3            mov al,byte ptr ss:[ebp-D]           ;  al=1
    004CDD2B         .  5E                 pop esi
    004CDD2C         .  5B                 pop ebx
    004CDD2D         .  8BE5               mov esp,ebp
    004CDD2F         .  5D                 pop ebp
    004CDD30         .  C3                 retn

    【算法总结】

    把机器码通过一番循环运算,得出两个字符串,即为注册码

    计算过程,就让程序来完成吧!

    注册机VB代码如下:

    Private Sub Command1_Click()
    Dim code As String
    Dim reg1 As Long
    Dim reg2 As Long
    code = Text1.Text
    X1 = &H55939
    Y1 = &H5337446
    X2 = &HC8649
    Y2 = &H5337446
    a = "-"
    reg1 = 0
    reg2 = 0
    If Text1.Text <> "" Then
    For i = 1 To Len(code)
    reg1 = reg1 + Asc(Mid(code, i, 1)) * X1
    reg1 = reg1 + Y1
    Next i

    For i = 1 To Len(code)
    reg2 = reg2 + Asc(Mid(code, i, 1)) * X2
    reg2 = reg2 + Y2
    Next i

    Text2.Text = reg1 & a & reg2
    End If

    End Sub

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

    该用户从未签到

    发表于 2005-4-10 19:29:50 | 显示全部楼层

    hao hao

    好啊,不错啊
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-10 21:06:20 | 显示全部楼层
    连注册机都贴了,全!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-4-12 11:40:07 | 显示全部楼层
    支持下~~~~~~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-22 10:07:59 | 显示全部楼层
    那么多好东西  使劲学习吧
    PYG19周年生日快乐!

    该用户从未签到

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

    该用户从未签到

    发表于 2006-8-5 22:40:11 | 显示全部楼层
    正研究算法分析
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-2-22 22:41:23 | 显示全部楼层
    辛苦了!好好学习下
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-23 04:10:29 | 显示全部楼层
    不大懂VB语言 有点困难
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-9-7 09:38
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2007-12-28 12:14:34 | 显示全部楼层
    谢谢前辈了。

    貌似我一个一个全收集了。呵呵
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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