飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6673|回复: 7

[原创] Magic_Partition_Recovery算法分析

[复制链接]
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

    发表于 2015-8-21 10:22:28 | 显示全部楼层 |阅读模式
    本帖最后由 GeekCat 于 2015-8-21 10:23 编辑

    文章标题】: _Magic_Partition_Recovery算法分析
    【文章作者】: geekcat
    【作者邮箱】: [email protected]
    【作者主页】:
    【软件名称】: Magic_Partition_Recovery
    【软件大小】: 13.6 MB (14,286,907 字节)
    【加壳方式】: 无
    【保护方式】: 注册码
    【编写语言】: Borland Delphi
    【使用工具】: OD、PEID
    【操作平台】: XP SP3
    【下载地址】:http://www.magicuneraser.com
    【软件介绍】: 全站都是数据恢复软件
    破解声明】:技术交流、学习,请不要用于商业用途!
    --------------------------------------------------------------------------------------------------------------------------------

    切入方式:
    1、工具按键事件;
    2、F12暂停法。

    算法代码:
    1. [/align][align=left]00620358   .  50            push eax
    2. 00620359   .  FF75 E8       push dword ptr ss:[ebp-0x18]             ;  (UNICODE "GEEKCAT")
    3. 0062035C   .  FF75 E0       push dword ptr ss:[ebp-0x20]             ;  (UNICODE "MAGIC PARTITION RECOVERY")
    4. 0062035F   .  FF75 FC       push dword ptr ss:[ebp-0x4]              ;  (UNICODE "HOME EDITION")
    5. 00620362   .  68 24056200   push Magic_Pa.00620524                   ;  UNICODE "6C78111B-1BD5-48E9-9F46-257BB8340404"
    6. 00620367   .  8D45 A4       lea eax,dword ptr ss:[ebp-0x5C]
    7. 0062036A   .  BA 04000000   mov edx,0x4
    8. 0062036F   .  E8 DC8BDEFF   call Magic_Pa.00408F50                   ;  拼接字符串并取前50位
    9. 00620374   .  8B55 A4       mov edx,dword ptr ss:[ebp-0x5C]          ;  (UNICODE "GEEKCATMAGIC PARTITION RECOVERYHOME EDITION6C78111")
    10. 00620377   .  8B45 D8       mov eax,dword ptr ss:[ebp-0x28]          ;  (ASCII "xpa")
    11. 0062037A   .  59            pop ecx
    12. 0062037B   .  E8 AC63FFFF   call Magic_Pa.0061672C                   ;  计算字符串(注册名+软件名+版本+固定字符串:全部字母大写)MD5值
    13. 00620380   .  8B45 A8       mov eax,dword ptr ss:[ebp-0x58]          ;  (UNICODE "A89D5BA776F727619DCED47D4CAA9FF0")
    14. 00620383   .  8D55 DC       lea edx,dword ptr ss:[ebp-0x24]
    15. 00620386   .  E8 990FE0FF   call Magic_Pa.00421324
    16. 0062038B   .  33C0          xor eax,eax
    17. 0062038D   .  8945 F4       mov dword ptr ss:[ebp-0xC],eax
    18. 00620390   >  837D F4 00    cmp dword ptr ss:[ebp-0xC],0x0
    19. 00620394   .  74 0D         je short Magic_Pa.006203A3
    20. 00620396   .  8D45 E4       lea eax,dword ptr ss:[ebp-0x1C]
    21. 00620399   .  BA 7C056200   mov edx,Magic_Pa.0062057C                ;  UNICODE "-"
    22. 0062039E   .  E8 CD8ADEFF   call Magic_Pa.00408E70
    23. 006203A3   >  33C0          xor eax,eax
    24. 006203A5   .  8945 F0       mov dword ptr ss:[ebp-0x10],eax
    25. 006203A8   >  8B45 F4       mov eax,dword ptr ss:[ebp-0xC]
    26. 006203AB   .  C1E0 02       shl eax,0x2
    27. 006203AE   .  0345 F0       add eax,dword ptr ss:[ebp-0x10]
    28. 006203B1   .  8B55 DC       mov edx,dword ptr ss:[ebp-0x24]          ;  (UNICODE "A89D5BA776F727619DCED47D4CAA9FF0")
    29. 006203B4   .  0FB70442      movzx eax,word ptr ds:[edx+eax*2]        ;  奇数位字符 AS值
    30. 006203B8   .  8D55 EC       lea edx,dword ptr ss:[ebp-0x14]
    31. 006203BB   .  E8 E41BE0FF   call Magic_Pa.00421FA4                   ;  字符AS值16进制转10进制
    32. 006203C0   .  8B45 EC       mov eax,dword ptr ss:[ebp-0x14]          ;  AS值10进制数值
    33. 006203C3   .  8945 D4       mov dword ptr ss:[ebp-0x2C],eax
    34. 006203C6   .  837D D4 00    cmp dword ptr ss:[ebp-0x2C],0x0
    35. 006203CA   .  74 0B         je short Magic_Pa.006203D7
    36. 006203CC   .  8B45 D4       mov eax,dword ptr ss:[ebp-0x2C]
    37. 006203CF   .  83E8 04       sub eax,0x4                              ;  eax减4
    38. 006203D2   .  8B00          mov eax,dword ptr ds:[eax]
    39. 006203D4   .  8945 D4       mov dword ptr ss:[ebp-0x2C],eax
    40. 006203D7   >  8D45 A0       lea eax,dword ptr ss:[ebp-0x60]
    41. 006203DA   .  8B55 EC       mov edx,dword ptr ss:[ebp-0x14]          ;  字符AS值的10进制数
    42. 006203DD   .  8B4D D4       mov ecx,dword ptr ss:[ebp-0x2C]
    43. 006203E0   .  66:8B544A FE  mov dx,word ptr ds:[edx+ecx*2-0x2]       ;  10进制的最后一位转AS值
    44. 006203E5   .  E8 9A88DEFF   call Magic_Pa.00408C84                   ;  转AS值
    45. 006203EA   .  8B55 A0       mov edx,dword ptr ss:[ebp-0x60]          ;  其实就是字符AS值转10进制的最后一位
    46. 006203ED   .  8D45 E4       lea eax,dword ptr ss:[ebp-0x1C]
    47. 006203F0   .  E8 7B8ADEFF   call Magic_Pa.00408E70
    48. 006203F5   .  FF45 F0       inc dword ptr ss:[ebp-0x10]
    49. 006203F8   .  837D F0 04    cmp dword ptr ss:[ebp-0x10],0x4          ;  每一段注册码循环4次为4位
    50. 006203FC   .^ 75 AA         jnz short Magic_Pa.006203A8
    51. 006203FE   .  FF45 F4       inc dword ptr ss:[ebp-0xC]
    52. 00620401   .  837D F4 04    cmp dword ptr ss:[ebp-0xC],0x4           ;  每一段注册码后加一个中横线
    53. 00620405   .^ 75 89         jnz short Magic_Pa.00620390
    54. 00620407   .  8B45 E4       mov eax,dword ptr ss:[ebp-0x1C][/align][align=left]
    复制代码

    总结:
    1、计算字符串(注册名+软件名+版本+固定字符串:全部字母大写)MD5值
    2、依次取MD5值的每一位,取前16位;
    3、所取的字符AS值转10进制;
    4、10进制数值后一位作为输出结果;
    5、输出的16位字符,每4位为一段,段与段之间用"-"分开。

    ----------------------------------------------------------------------------------------------------------------------------
    【版权声明】:
    本文原创于geekcat,转载请注明作者并保存文章的完整!

    评分

    参与人数 4威望 +12 飘云币 +52 收起 理由
    飞天 + 4 + 4 PYG有你更精彩!
    Dxer + 20 赞一个!
    0xcb + 8 + 8 赞一个!
    GGLHY + 20

    查看全部评分

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

    [LV.4]偶尔看看III

    发表于 2015-8-21 10:29:48 | 显示全部楼层
    坐着沙发,前排学习

    点评

    GG 老师好。。你的算法才华让我小学生钦佩。。  详情 回复 发表于 2015-8-22 23:20
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2021-9-29 15:05
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2015-8-21 11:38:31 | 显示全部楼层
    看了官网,一个恢复功能,拆分成多个应用程序,是专注呢,还是冗余,
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

    发表于 2015-8-21 14:01:38 | 显示全部楼层
    好吧 虽然我干这家干的比较早。不过能写出注册机就是能人。支持GC
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 16:07
  • 签到天数: 1093 天

    [LV.10]以坛为家III

    发表于 2015-8-21 15:21:40 | 显示全部楼层

    感谢楼主分享,非常感谢~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 10:56
  • 签到天数: 1696 天

    [LV.Master]伴坛终老

    发表于 2015-8-21 17:07:25 | 显示全部楼层
    不错的软件,不知道恢复效果怎样。
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    前天 16:50
  • 签到天数: 1592 天

    [LV.Master]伴坛终老

    发表于 2015-8-21 17:15:13 | 显示全部楼层
    膜拜分析大神,软件功能一般。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-9-1 01:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2015-8-22 23:20:57 | 显示全部楼层
    GGLHY 发表于 2015-8-21 10:29
    坐着沙发,前排学习

    GG 老师好。。你的算法才华让我小学生钦佩。。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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