飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4561|回复: 6

[原创] Active Desktop Album 3.1算法分析

[复制链接]
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-12-7 22:09:40 | 显示全部楼层 |阅读模式
    【破文标题】Active Desktop Album 3.1算法分析
    【破文作者】tianxj
    【作者邮箱】[email protected]
    【作者主页】WwW.ChiNaPYG.CoM
    破解工具】PEiD,OD,DeDe
    【破解平台】Windows XP sp3
    【软件名称】Active Desktop Album 3.1
    【软件大小】2964KB
    【软件语言】英文
    【软件类别】国外软件/桌面制作
    【软件授权】共享版
    【运行环境】WinXP/2000/2003/Vista
    【更新时间】2009-6-11
    【原版下载】http://www.onlinedown.net/soft/86742.htm
    【保护方式】注册码
    【软件简介】Active Desktop Album是一款动态的在桌面上轮换显示照片或者其他图片的电子相册软件,程序可以自动的定时(每几分钟也可自己定义时间)来自动切换照片在桌面的显示,可以自由的编辑照片的显示方式和样式边框等。你可以将家人或者爱人的照片用这个程序将其显示在桌面上,工作上的时候随时都可以看到,相信那将是非常美妙的一件事情。
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------
    【破解内容】
    --------------------------------------------------------------
    **************************************************************
    一、对DesktopWatch.exe查壳为Borland Delphi 6.0 - 7.0
    **************************************************************
    二、用DeDe查找按钮事件就可以快速到达关键部位

    1. 00629E60  /$  55            push    ebp
    2. 00629E61  |.  8BEC          mov     ebp, esp
    3. 00629E63  |.  83C4 F4       add     esp, -0C
    4. 00629E66  |.  53            push    ebx
    5. 00629E67  |.  33C9          xor     ecx, ecx
    6. 00629E69  |.  894D F4       mov     dword ptr [ebp-C], ecx
    7. 00629E6C  |.  8955 F8       mov     dword ptr [ebp-8], edx
    8. 00629E6F  |.  8945 FC       mov     dword ptr [ebp-4], eax
    9. 00629E72  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    10. 00629E75  |.  E8 72ADDDFF   call    00404BEC
    11. 00629E7A  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
    12. 00629E7D  |.  E8 6AADDDFF   call    00404BEC
    13. 00629E82  |.  33C0          xor     eax, eax
    14. 00629E84  |.  55            push    ebp
    15. 00629E85  |.  68 319F6200   push    00629F31
    16. 00629E8A  |.  64:FF30       push    dword ptr fs:[eax]
    17. 00629E8D  |.  64:8920       mov     dword ptr fs:[eax], esp
    18. 00629E90  |.  33DB          xor     ebx, ebx
    19. 00629E92  |.  8D55 F4       lea     edx, dword ptr [ebp-C]
    20. 00629E95  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
    21. 00629E98  |.  E8 EBEFDDFF   call    00408E88
    22. 00629E9D  |.  837D F4 00    cmp     dword ptr [ebp-C], 0
    23. 00629EA1  |.  74 73         je      short 00629F16                   ;  //试炼码为空则跳
    24. 00629EA3  |.  8B55 F8       mov     edx, dword ptr [ebp-8]           ;  //试炼码
    25. 00629EA6  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  //用户名
    26. 00629EA9  |.  E8 4EFBFFFF   call    006299FC                         ;  //将用户名与"pb"相连字符串的MD5值与"56f9c69b5ad4bfd656c8dec9c6228223"作比较
    27. 00629EAE  |.  84C0          test    al, al
    28. 00629EB0  |.  74 04         je      short 00629EB6
    29. 00629EB2  |.  33DB          xor     ebx, ebx
    30. 00629EB4  |.  EB 60         jmp     short 00629F16
    31. 00629EB6  |>  8B55 F8       mov     edx, dword ptr [ebp-8]
    32. 00629EB9  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    33. 00629EBC  |.  E8 4BFAFFFF   call    0062990C                         ;  //将用户名与"tq"相连字符串的MD5值与"35e2233a9cbbd40e0da83ca5c185f975作比较
    34. 00629EC1  |.  84C0          test    al, al
    35. 00629EC3  |.  74 04         je      short 00629EC9
    36. 00629EC5  |.  B3 01         mov     bl, 1
    37. 00629EC7  |.  EB 4D         jmp     short 00629F16                   ;-------以上检验用户名注册码是否在黑名单
    38. 00629EC9  |>  8B55 F8       mov     edx, dword ptr [ebp-8]
    39. 00629ECC  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    40. 00629ECF  |.  E8 18FCFFFF   call    00629AEC                         ;  //注册码第1个字符必须是用户名与"gfhfghj"相连字符串的MD5值小写的第1个字符
    41. 00629ED4  |.  84C0          test    al, al
    42. 00629ED6  |.  74 3E         je      short 00629F16
    43. 00629ED8  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
    44. 00629EDB  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    45. 00629EDE  |.  E8 B5FCFFFF   call    00629B98                         ;  //注册码第2个字符必须是用户名与"3425"相连字符串的MD5值小写的第1个字符
    46. 00629EE3  |.  84C0          test    al, al
    47. 00629EE5  |.  74 2F         je      short 00629F16
    48. 00629EE7  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
    49. 00629EEA  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    50. 00629EED  |.  E8 56FDFFFF   call    00629C48                         ;  //注册码第3个字符必须是用户名与"rttrh"相连字符串的MD5值小写的第1个字符
    51. 00629EF2  |.  84C0          test    al, al
    52. 00629EF4  |.  74 20         je      short 00629F16
    53. 00629EF6  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
    54. 00629EF9  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    55. 00629EFC  |.  E8 F7FDFFFF   call    00629CF8                         ;  //注册码第4个字符必须是用户名与"hnnn"相连字符串的MD5值小写的第1个字符
    56. 00629F01  |.  84C0          test    al, al
    57. 00629F03  |.  74 11         je      short 00629F16
    58. 00629F05  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
    59. 00629F08  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    60. 00629F0B  |.  E8 98FEFFFF   call    00629DA8                         ;  //注册码第5个字符必须是用户名与"657y56yh8uhgj"相连字符串的MD5值小写的第1个字符
    61. 00629F10  |.  84C0          test    al, al
    62. 00629F12  |.  74 02         je      short 00629F16
    63. 00629F14  |.  B3 01         mov     bl, 1                            ;  //标志位赋值
    64. 00629F16  |>  33C0          xor     eax, eax
    65. 00629F18  |.  5A            pop     edx
    66. 00629F19  |.  59            pop     ecx
    67. 00629F1A  |.  59            pop     ecx
    68. 00629F1B  |.  64:8910       mov     dword ptr fs:[eax], edx
    69. 00629F1E  |.  68 389F6200   push    00629F38
    70. 00629F23  |>  8D45 F4       lea     eax, dword ptr [ebp-C]
    71. 00629F26  |.  BA 03000000   mov     edx, 3
    72. 00629F2B  |.  E8 30A8DDFF   call    00404760
    73. 00629F30  \.  C3            retn
    74. 00629F31   .^ E9 86A1DDFF   jmp     004040BC
    75. 00629F36   .^ EB EB         jmp     short 00629F23
    76. 00629F38   .  8BC3          mov     eax, ebx
    77. 00629F3A   .  5B            pop     ebx
    78. 00629F3B   .  8BE5          mov     esp, ebp
    79. 00629F3D   .  5D            pop     ebp
    80. 00629F3E   .  C3            retn
    复制代码
    以call    00629AEC为例

    1. 00629AEC  /$  55            push    ebp
    2. 00629AED  |.  8BEC          mov     ebp, esp
    3. 00629AEF  |.  83C4 E0       add     esp, -20
    4. 00629AF2  |.  53            push    ebx
    5. 00629AF3  |.  33C9          xor     ecx, ecx
    6. 00629AF5  |.  894D E0       mov     dword ptr [ebp-20], ecx
    7. 00629AF8  |.  894D F4       mov     dword ptr [ebp-C], ecx
    8. 00629AFB  |.  8955 F8       mov     dword ptr [ebp-8], edx
    9. 00629AFE  |.  8945 FC       mov     dword ptr [ebp-4], eax
    10. 00629B01  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  //用户名
    11. 00629B04  |.  E8 E3B0DDFF   call    00404BEC
    12. 00629B09  |.  8B45 F8       mov     eax, dword ptr [ebp-8]           ;  //试炼码
    13. 00629B0C  |.  E8 DBB0DDFF   call    00404BEC
    14. 00629B11  |.  33C0          xor     eax, eax
    15. 00629B13  |.  55            push    ebp
    16. 00629B14  |.  68 7A9B6200   push    00629B7A
    17. 00629B19  |.  64:FF30       push    dword ptr fs:[eax]
    18. 00629B1C  |.  64:8920       mov     dword ptr fs:[eax], esp
    19. 00629B1F  |.  8D45 E0       lea     eax, dword ptr [ebp-20]
    20. 00629B22  |.  B9 909B6200   mov     ecx, 00629B90                    ;  ASCII "gfhfghj"
    21. 00629B27  |.  8B55 FC       mov     edx, dword ptr [ebp-4]           ;  //用户名
    22. 00629B2A  |.  E8 19AFDDFF   call    00404A48
    23. 00629B2F  |.  8B45 E0       mov     eax, dword ptr [ebp-20]          ;  //用户名与"gfhfghj"相连
    24. 00629B32  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
    25. 00629B35  |.  E8 2EFCFFFF   call    00629768                         ;  //标准MD5运算
    26. 00629B3A  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
    27. 00629B3D  |.  8D55 F4       lea     edx, dword ptr [ebp-C]
    28. 00629B40  |.  E8 97FCFFFF   call    006297DC
    29. 00629B45  |.  8B45 F4       mov     eax, dword ptr [ebp-C]           ;  //MD5值小写
    30. 00629B48  |.  8A00          mov     al, byte ptr [eax]               ;  //取MD5值小写的第1个字符
    31. 00629B4A  |.  8B55 F8       mov     edx, dword ptr [ebp-8]           ;  //试炼码
    32. 00629B4D  |.  3A02          cmp     al, byte ptr [edx]               ;  //将试炼码的第1个字符与MD5值小写的第1个字符比较
    33. 00629B4F  |.  75 04         jnz     short 00629B55                   ;  //关键跳转
    34. 00629B51  |.  B3 01         mov     bl, 1                            ;  //关键赋值
    35. 00629B53  |.  EB 02         jmp     short 00629B57
    36. 00629B55  |>  33DB          xor     ebx, ebx
    37. 00629B57  |>  33C0          xor     eax, eax
    38. 00629B59  |.  5A            pop     edx
    39. 00629B5A  |.  59            pop     ecx
    40. 00629B5B  |.  59            pop     ecx
    41. 00629B5C  |.  64:8910       mov     dword ptr fs:[eax], edx
    42. 00629B5F  |.  68 819B6200   push    00629B81
    43. 00629B64  |>  8D45 E0       lea     eax, dword ptr [ebp-20]
    44. 00629B67  |.  E8 D0ABDDFF   call    0040473C
    45. 00629B6C  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
    46. 00629B6F  |.  BA 03000000   mov     edx, 3
    47. 00629B74  |.  E8 E7ABDDFF   call    00404760
    48. 00629B79  \.  C3            retn
    49. 00629B7A   .^ E9 3DA5DDFF   jmp     004040BC
    50. 00629B7F   .^ EB E3         jmp     short 00629B64
    51. 00629B81   .  8BC3          mov     eax, ebx
    52. 00629B83   .  5B            pop     ebx
    53. 00629B84   .  8BE5          mov     esp, ebp
    54. 00629B86   .  5D            pop     ebp
    55. 00629B87   .  C3            retn
    复制代码
    **************************************************************  
    【破解总结】
    --------------------------------------------------------------
    【算法总结】
    1.注册码第1个字符必须是用户名与"gfhfghj"相连字符串的MD5值小写的第1个字符
    2.注册码第2个字符必须是用户名与"3425"相连字符串的MD5值小写的第1个字符
    3.注册码第3个字符必须是用户名与"rttrh"相连字符串的MD5值小写的第1个字符
    4.注册码第4个字符必须是用户名与"hnnn"相连字符串的MD5值小写的第1个字符
    5.注册码第5个字符必须是用户名与"657y56yh8uhgj"相连字符串的MD5值小写的第1个字符
    --------------------------------------------------------------
    【算法注册机
    〖VB代码〗
    Private Sub Command1_Click()
    If Len(Text1.Text) = 0 Then
       Text2.Text = "输入有误,请重新输入!"
    Else  
      Text2.Text = LCase(Mid(MD5(Text1.Text & "gfhfghj"), 1, 1) & Mid(MD5(Text1.Text & "3425"), 1, 1) & Mid(MD5(Text1.Text & "rttrh"), 1, 1) & Mid(MD5(Text1.Text & "hnnn"), 1, 1) & Mid(MD5(Text1.Text & "657y56yh8uhgj"), 1, 1))
    End If
    End Sub
    --------------------------------------------------------------
    【注册信息】
    保存在[HKEY_CURRENT_USER\Software\Active Desktop Album]
    --------------------------------------------------------------
    感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
    --------------------------------------------------------------
    【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    评分

    参与人数 1威望 +40 飘云币 +40 收起 理由
    月之精灵 + 40 + 40 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2009-12-9 12:50:44 | 显示全部楼层
    好强的T大!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-12-9 13:37:01 | 显示全部楼层
    感谢楼主的文章,/:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-12-9 14:58:20 | 显示全部楼层
    /:good 学习了
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-2-2 10:20
  • 签到天数: 38 天

    [LV.5]常住居民I

    发表于 2009-12-9 15:28:33 | 显示全部楼层
    T大连发3篇算法文章,进入高产期了/:001 学习!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-12-9 17:16:20 | 显示全部楼层
    感谢楼主,学习了!!
    PYG19周年生日快乐!
  • TA的每日心情

    2017-6-17 16:59
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-12-9 18:40:52 | 显示全部楼层
    学习下。。/:good /:001 /:001
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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