飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6565|回复: 2

[原创] Registry Easy 4.6算法分析

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

    [LV.1]初来乍到

    发表于 2008-7-18 21:24:57 | 显示全部楼层 |阅读模式
    【破文标题】Registry Easy 4.6算法分析
    【破文作者】tianxj
    【作者邮箱】[email protected]
    【作者主页】WwW.ChiNaPYG.CoM
    破解工具】PEiD,OD
    【破解平台】Windows XP
    【软件名称】Registry Easy 4.6
    【软件大小】2470KB
    【软件类别】国外软件/系统辅助
    【软件授权】共享版
    【软件语言】英文
    【更新时间】2008-7-18
    【原版下载】华军软件园
    【保护方式】注册码
    【软件简介】Registry Easy是一款系统辅助软件,让您的计算机保持清洁和改善计算机的性能。让您的计算机使用起来更快捷
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    初学破解与编程,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------
    【破解内容】
    --------------------------------------------------------------
    **************************************************************
    一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
    "Invalid serial number! Please try again..."
    **************************************************************
    二、用PEiD对RE.exe查壳,为 Borland Delphi 6.0 - 7.0
    **************************************************************
    三、运行OD,打开RE.exe,右键—超级字串参考—查找ASCII.
    来到关键之处
    1. 004D4DF4  /$  55            PUSH EBP
    2. 004D4DF5  |.  8BEC          MOV EBP,ESP
    3. 004D4DF7  |.  B9 0A000000   MOV ECX,0A
    4. 004D4DFC  |>  6A 00         /PUSH 0
    5. 004D4DFE  |.  6A 00         |PUSH 0
    6. 004D4E00  |.  49            |DEC ECX
    7. 004D4E01  |.^ 75 F9         \JNZ SHORT RE.004D4DFC
    8. 004D4E03  |.  53            PUSH EBX
    9. 004D4E04  |.  56            PUSH ESI
    10. 004D4E05  |.  8BD8          MOV EBX,EAX
    11. 004D4E07  |.  33C0          XOR EAX,EAX
    12. 004D4E09  |.  55            PUSH EBP
    13. 004D4E0A  |.  68 5C504D00   PUSH RE.004D505C
    14. 004D4E0F  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    15. 004D4E12  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    16. 004D4E15  |.  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
    17. 004D4E18  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
    18. 004D4E1E  |.  E8 91C8F9FF   CALL RE.004716B4
    19. 004D4E23  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]            ;  //试练码
    20. 004D4E26  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
    21. 004D4E29  |.  E8 FE42F3FF   CALL RE.0040912C
    22. 004D4E2E  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]            ;  //试练码
    23. 004D4E31  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
    24. 004D4E34  |.  E8 DF40F3FF   CALL RE.00408F18
    25. 004D4E39  |.  A0 6C504D00   MOV AL,BYTE PTR DS:[4D506C]
    26. 004D4E3E  |.  50            PUSH EAX
    27. 004D4E3F  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
    28. 004D4E42  |.  50            PUSH EAX
    29. 004D4E43  |.  33C9          XOR ECX,ECX
    30. 004D4E45  |.  BA 78504D00   MOV EDX,RE.004D5078
    31. 004D4E4A  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //试练码
    32. 004D4E4D  |.  E8 DE9CF3FF   CALL RE.0040EB30                         ;  //去掉试练码中的"-"
    33. 004D4E52  |.  8B55 E4       MOV EDX,DWORD PTR SS:[EBP-1C]            ;  //去掉"-"的试练码
    34. 004D4E55  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    35. 004D4E58  |.  E8 DFFCF2FF   CALL RE.00404B3C
    36. 004D4E5D  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    37. 004D4E60  |.  50            PUSH EAX
    38. 004D4E61  |.  B9 08000000   MOV ECX,8
    39. 004D4E66  |.  BA 09000000   MOV EDX,9
    40. 004D4E6B  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    41. 004D4E6E  |.  E8 5101F3FF   CALL RE.00404FC4                         ;  //取去掉"-"的试练码的9-16位
    42. 004D4E73  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]            ;  //去掉"-"的试练码的9-16位
    43. 004D4E76  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
    44. 004D4E79  |.  E8 5E40F3FF   CALL RE.00408EDC
    45. 004D4E7E  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
    46. 004D4E81  |.  50            PUSH EAX
    47. 004D4E82  |.  B9 01000000   MOV ECX,1
    48. 004D4E87  |.  BA 03000000   MOV EDX,3
    49. 004D4E8C  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    50. 004D4E8F  |.  E8 3001F3FF   CALL RE.00404FC4
    51. 004D4E94  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
    52. 004D4E97  |.  50            PUSH EAX
    53. 004D4E98  |.  B9 01000000   MOV ECX,1
    54. 004D4E9D  |.  BA 01000000   MOV EDX,1
    55. 004D4EA2  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //去掉"-"的试练码
    56. 004D4EA5  |.  E8 1A01F3FF   CALL RE.00404FC4
    57. 004D4EAA  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
    58. 004D4EAD  |.  E8 AA48F3FF   CALL RE.0040975C                         ;  //将试练码第1位送入EAX
    59. 004D4EB2  |.  8BF0          MOV ESI,EAX                              ;  //ESI=EAX
    60. 004D4EB4  |.  46            INC ESI                                  ;  //ESI=ESI+1
    61. 004D4EB5  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    62. 004D4EB8  |.  50            PUSH EAX
    63. 004D4EB9  |.  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
    64. 004D4EBC  |.  B8 84504D00   MOV EAX,RE.004D5084                      ;  ASCII "Easy Gang"
    65. 004D4EC1  |.  E8 EE8FFEFF   CALL RE.004BDEB4                         ;  //取"Easy Gang"的标准MD5值
    66. 004D4EC6  |.  8B45 D8       MOV EAX,DWORD PTR SS:[EBP-28]            ;  //"Easy Gang"的标准MD5值
    67. 004D4EC9  |.  B9 0A000000   MOV ECX,0A
    68. 004D4ECE  |.  8BD6          MOV EDX,ESI
    69. 004D4ED0  |.  E8 EF00F3FF   CALL RE.00404FC4                         ;  //取"Easy Gang"的标准MD5值的ESI位后的10位字符
    70. 004D4ED5  |.  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
    71. 004D4ED8  |.  50            PUSH EAX
    72. 004D4ED9  |.  B9 01000000   MOV ECX,1
    73. 004D4EDE  |.  BA 02000000   MOV EDX,2
    74. 004D4EE3  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //去掉"-"的试练码
    75. 004D4EE6  |.  E8 D900F3FF   CALL RE.00404FC4
    76. 004D4EEB  |.  8B45 D4       MOV EAX,DWORD PTR SS:[EBP-2C]
    77. 004D4EEE  |.  E8 6948F3FF   CALL RE.0040975C                         ;  //将试练码第2位送入EAX
    78. 004D4EF3  |.  8BF0          MOV ESI,EAX                              ;  //ESI=EAX
    79. 004D4EF5  |.  46            INC ESI                                  ;  //ESI=ESI+1
    80. 004D4EF6  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    81. 004D4EF9  |.  50            PUSH EAX
    82. 004D4EFA  |.  B9 05000000   MOV ECX,5
    83. 004D4EFF  |.  BA 04000000   MOV EDX,4
    84. 004D4F04  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //去掉"-"的试练码
    85. 004D4F07  |.  E8 B800F3FF   CALL RE.00404FC4                         ;  //取去掉"-"的试练码的4-8位
    86. 004D4F0C  |.  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
    87. 004D4F0F  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //去掉"-"的试练码的4-8位
    88. 004D4F12  |.  E8 1542F3FF   CALL RE.0040912C
    89. 004D4F17  |.  837D D0 00    CMP DWORD PTR SS:[EBP-30],0
    90. 004D4F1B  |.  0F84 DD000000 JE RE.004D4FFE                           ;  //去掉"-"的试练码的4-8位为空则跳
    91. 004D4F21  |.  8D55 CC       LEA EDX,DWORD PTR SS:[EBP-34]
    92. 004D4F24  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  //取"Easy Gang"的标准MD5值的ESI位后的10位字符
    93. 004D4F27  |.  E8 0042F3FF   CALL RE.0040912C
    94. 004D4F2C  |.  837D CC 00    CMP DWORD PTR SS:[EBP-34],0
    95. 004D4F30  |.  0F84 C8000000 JE RE.004D4FFE                           ;  //取"Easy Gang"的标准MD5值的ESI位后的10位字符
    96. 004D4F36  |.  8D55 C8       LEA EDX,DWORD PTR SS:[EBP-38]
    97. 004D4F39  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //去掉"-"的试练码的9-16位
    98. 004D4F3C  |.  E8 EB41F3FF   CALL RE.0040912C
    99. 004D4F41  |.  837D C8 00    CMP DWORD PTR SS:[EBP-38],0
    100. 004D4F45  |.  0F84 B3000000 JE RE.004D4FFE                           ;  //去掉"-"的试练码的9-16位为空则跳
    101. 004D4F4B  |.  8D55 C4       LEA EDX,DWORD PTR SS:[EBP-3C]
    102. 004D4F4E  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    103. 004D4F51  |.  E8 D641F3FF   CALL RE.0040912C
    104. 004D4F56  |.  837D C4 00    CMP DWORD PTR SS:[EBP-3C],0
    105. 004D4F5A  |.  0F84 9E000000 JE RE.004D4FFE
    106. 004D4F60  |.  8D45 C0       LEA EAX,DWORD PTR SS:[EBP-40]
    107. 004D4F63  |.  50            PUSH EAX
    108. 004D4F64  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]                ;  //去掉"-"的试练码的9-16位
    109. 004D4F67  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]               ;  //取"Easy Gang"的标准MD5值的ESI位后的10位字符
    110. 004D4F6A  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]                ;  //试练码的第4位
    111. 004D4F6D  |.  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
    112. 004D4F70  |.  BA 03000000   MOV EDX,3
    113. 004D4F75  |.  E8 AAFEF2FF   CALL RE.00404E24                         ;  //去掉"-"的试练码的9-16位与"Easy Gang"的标准MD5值的2-11位、试练码的第4位相连
    114. 004D4F7A  |.  8B45 B8       MOV EAX,DWORD PTR SS:[EBP-48]            ;  //相连字符串
    115. 004D4F7D  |.  8D55 BC       LEA EDX,DWORD PTR SS:[EBP-44]
    116. 004D4F80  |.  E8 2F8FFEFF   CALL RE.004BDEB4                         ;  //取相连字符串的标准MD5值
    117. 004D4F85  |.  8B45 BC       MOV EAX,DWORD PTR SS:[EBP-44]            ;  //相连字符串的标准MD5值
    118. 004D4F88  |.  B9 05000000   MOV ECX,5
    119. 004D4F8D  |.  8BD6          MOV EDX,ESI
    120. 004D4F8F  |.  E8 3000F3FF   CALL RE.00404FC4                         ;  //取相连字符串的标准MD5值的ESI位后的5位字符
    121. 004D4F94  |.  8B55 C0       MOV EDX,DWORD PTR SS:[EBP-40]            ;  //相连字符串的标准MD5值的ESI位后的5位字符
    122. 004D4F97  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //去掉"-"的试练码的4-8位
    123. 004D4F9A  |.  E8 11FFF2FF   CALL RE.00404EB0                         ;  //关键比较
    124. 004D4F9F  |.  75 35         JNZ SHORT RE.004D4FD6                    ;  //关键跳转
    125. 004D4FA1  |.  8D55 B0       LEA EDX,DWORD PTR SS:[EBP-50]
    126. 004D4FA4  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
    127. 004D4FAA  |.  E8 05C7F9FF   CALL RE.004716B4
    128. 004D4FAF  |.  8B45 B0       MOV EAX,DWORD PTR SS:[EBP-50]
    129. 004D4FB2  |.  8D55 B4       LEA EDX,DWORD PTR SS:[EBP-4C]
    130. 004D4FB5  |.  E8 7241F3FF   CALL RE.0040912C
    131. 004D4FBA  |.  8B4D B4       MOV ECX,DWORD PTR SS:[EBP-4C]
    132. 004D4FBD  |.  33D2          XOR EDX,EDX
    133. 004D4FBF  |.  8BC3          MOV EAX,EBX
    134. 004D4FC1  |.  E8 06010000   CALL RE.004D50CC
    135. 004D4FC6  |.  8BC3          MOV EAX,EBX
    136. 004D4FC8  |.  E8 E7010000   CALL RE.004D51B4
    137. 004D4FCD  |.  8BC3          MOV EAX,EBX
    138. 004D4FCF  |.  E8 B09AFBFF   CALL RE.0048EA84
    139. 004D4FD4  |.  EB 4E         JMP SHORT RE.004D5024
    140. 004D4FD6  |>  6A 30         PUSH 30
    141. 004D4FD8  |.  B9 90504D00   MOV ECX,RE.004D5090                      ;  ASCII "Registry Easy"
    142. 004D4FDD  |.  BA A0504D00   MOV EDX,RE.004D50A0                      ;  ASCII "Invalid serial number! Please try again..."
    143. 004D4FE2  |.  A1 1C655800   MOV EAX,DWORD PTR DS:[58651C]
    144. 004D4FE7  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    145. 004D4FE9  |.  E8 F6D3FBFF   CALL RE.004923E4
    146. 004D4FEE  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
    147. 004D4FF4  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
    148. 004D4FF6  |.  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
    149. 004D4FFC  |.  EB 26         JMP SHORT RE.004D5024
    150. 004D4FFE  |>  6A 30         PUSH 30
    151. 004D5000  |.  B9 90504D00   MOV ECX,RE.004D5090                      ;  ASCII "Registry Easy"
    152. 004D5005  |.  BA A0504D00   MOV EDX,RE.004D50A0                      ;  ASCII "Invalid serial number! Please try again..."
    153. 004D500A  |.  A1 1C655800   MOV EAX,DWORD PTR DS:[58651C]
    154. 004D500F  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    155. 004D5011  |.  E8 CED3FBFF   CALL RE.004923E4
    156. 004D5016  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
    157. 004D501C  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
    158. 004D501E  |.  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
    159. 004D5024  |>  33C0          XOR EAX,EAX
    160. 004D5026  |.  5A            POP EDX
    161. 004D5027  |.  59            POP ECX
    162. 004D5028  |.  59            POP ECX
    163. 004D5029  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    164. 004D502C  |.  68 63504D00   PUSH RE.004D5063
    165. 004D5031  |>  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
    166. 004D5034  |.  E8 6BFAF2FF   CALL RE.00404AA4
    167. 004D5039  |.  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
    168. 004D503C  |.  BA 0D000000   MOV EDX,0D
    169. 004D5041  |.  E8 82FAF2FF   CALL RE.00404AC8
    170. 004D5046  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
    171. 004D5049  |.  E8 56FAF2FF   CALL RE.00404AA4
    172. 004D504E  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
    173. 004D5051  |.  BA 05000000   MOV EDX,5
    174. 004D5056  |.  E8 6DFAF2FF   CALL RE.00404AC8
    175. 004D505B  \.  C3            RETN
    176. 004D505C   .^ E9 A3F3F2FF   JMP RE.00404404
    177. 004D5061   .^ EB CE         JMP SHORT RE.004D5031
    178. 004D5063   .  5E            POP ESI
    179. 004D5064   .  5B            POP EBX
    180. 004D5065   .  8BE5          MOV ESP,EBP
    181. 004D5067   .  5D            POP EBP
    182. 004D5068   .  C3            RETN
    复制代码
    **************************************************************  
    【破解总结】
    --------------------------------------------------------------
    【算法总结】
    注册码形式为XXXX-XXXX-XXXX-XXXX,取注册码的第3组第4组与"Easy Gang"的标准MD5值中的的10个字符、注册码的第1组第3位相连字符串的MD5值的5个字符,与注册码的第1组第4位和注册码的第2组相连字符串比较,若相等则注册成功
    --------------------------------------------------------------
    【算法注册机
    〖VB代码〗
    Private Sub Command1_Click()
       a1 = Int(Rnd() * 10)
       a2 = Int(Rnd() * 10)
       a3 = Int(Rnd() * 10)
       a9 = Int(Rnd() * 10)
       a10 = Int(Rnd() * 10)
       a11 = Int(Rnd() * 10)
       a12 = Int(Rnd() * 10)
       a13 = Int(Rnd() * 10)
       a14 = Int(Rnd() * 10)
       a15 = Int(Rnd() * 10)
       a16 = Int(Rnd() * 10)
       b3 = a9 & a10 & a11 & a12
       b4 = a13 & a14 & a15 & a16
       c1 = LCase(MD5("Easy Gang"))    'MD5模块
       c2 = Mid(c1, a1 + 1, 10)
       c3 = LCase(MD5(b3 & b4 & c2 & a3))
       c4 = Mid(c3, a2 + 1, 5)
       b2 = Mid(c4, 2, 4)
       a4 = Left(c4, 1)
       b1 = a1 & a2 & a3 & a4
       Text1.Text = b1 & "-" & b2 & "-" & b3 & "-" & b4
    End Sub
    --------------------------------------------------------------
    【注册信息】
    一组可用注册码:1119-c78f-3333-4444
    保存在[HKEY_CURRENT_USER\Software\RegistryEasy]
    --------------------------------------------------------------
    感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
    --------------------------------------------------------------
    【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-10-30 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2008-7-19 17:43:41 | 显示全部楼层
    占到沙发,再学习一次/:017 /:017 /:017
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-7-20 10:43:39 | 显示全部楼层
    占到小沙发,下载阅读
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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