飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4912|回复: 2

[原创] CD DVD Data Recovery v1.0.810 注册分析

[复制链接]

该用户从未签到

发表于 2007-4-23 14:02:07 | 显示全部楼层 |阅读模式
【破文标题】CD DVD Data Recovery v1.0.810 注册分析
【破文作者】ZHOU2X
破解工具】OD PEID
【破解平台】Win XP
【软件名称】CD/DVD Data Recovery
【软件大小】476 KB
【原版下载】http://www.008soft.com/products/cddvddr.exe
【保护方式】注册码
【软件简介】
CD DVD Data Recovery v1.0.810
软件大小  476 KB  
软件类别  国外软件/光碟工具
运行环境  Win2003, WinXp, Win2000, Nt, WinMe, Win9x
软件语言  英文
整理时间  2006-8-3 9:48:22
相关连接  http://www.crsky.com/soft/6844.html
    随着刻录机的普及,刻录盘被广泛的用于数据及资料的备份。但是,由于各种原因,你所备份的数据可能已经无法
在光盘驱动器中被正常读取。现在好了,你有了一个好帮手——CD/DVD Data recovery。它是一个光盘数据、多媒体恢
复工具,适用于从各类无法正常读取的 CD、DVD 中恢复数据。该软件操作非常简便,极易上手。

【破解声明】
------------------------------------------------------------------------
【破解过程】
PEID 扫描为 Microsoft Visual C++ 7.0,无壳;注册失败提示:“registration failed!”

  1. 0041A980  /.  55            push    ebp
  2. 0041A981  |.  8BEC          mov     ebp, esp
  3. 0041A983  |.  83EC 20       sub     esp, 20
  4. 0041A986  |.  894D E0       mov     dword ptr [ebp-20], ecx
  5. 0041A989  |.  6A 01         push    1
  6. 0041A98B  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]
  7. 0041A98E  |.  E8 F3D30100   call    00437D86
  8. 0041A993  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]
  9. 0041A996  |.  83C1 70       add     ecx, 70
  10. 0041A999  |.  E8 F210FFFF   call    0040BA90
  11. 0041A99E  |.  83F8 02       cmp     eax, 2
  12. 0041A9A1  |.  7D 13         jge     short 0041A9B6            ;  注册名不少于2位跳
  13. 0041A9A3  |.  6A 00         push    0
  14. 0041A9A5  |.  6A 00         push    0
  15. 0041A9A7  |.  68 F8E34400   push    0044E3F8                  ;  please input correct user name!
  16. 0041A9AC  |.  E8 58710200   call    00441B09
  17. 0041A9B1  |.  E9 A9020000   jmp     0041AC5F
  18. 0041A9B6  |>  8B4D E0       mov     ecx, dword ptr [ebp-20]
  19. 0041A9B9  |.  83C1 74       add     ecx, 74
  20. 0041A9BC  |.  E8 CF10FFFF   call    0040BA90
  21. 0041A9C1  |.  83F8 08       cmp     eax, 8
  22. 0041A9C4  |.  7D 13         jge     short 0041A9D9            ;  注册码不少于8位跳
  23. 0041A9C6  |.  6A 00         push    0
  24. 0041A9C8  |.  6A 00         push    0
  25. 0041A9CA  |.  68 18E44400   push    0044E418                  ;  please input correct registration code!
  26. 0041A9CF  |.  E8 35710200   call    00441B09
  27. 0041A9D4  |.  E9 86020000   jmp     0041AC5F
  28. 0041A9D9  |>  6A 00         push    0                         ; /Arg1 = 00000000
  29. 0041A9DB  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  30. 0041A9DE  |.  83C1 70       add     ecx, 70                   ; |
  31. 0041A9E1  |.  E8 0ACEFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  32. 0041A9E6  |.  8845 EF       mov     byte ptr [ebp-11], al
  33. 0041A9E9  |.  6A 01         push    1                         ; /Arg1 = 00000001
  34. 0041A9EB  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  35. 0041A9EE  |.  83C1 70       add     ecx, 70                   ; |
  36. 0041A9F1  |.  E8 FACDFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  37. 0041A9F6  |.  8845 F8       mov     byte ptr [ebp-8], al
  38. 0041A9F9  |.  6A 00         push    0                         ; /Arg1 = 00000000
  39. 0041A9FB  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  40. 0041A9FE  |.  83C1 70       add     ecx, 70                   ; |
  41. 0041AA01  |.  E8 EACDFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  42. 0041AA06  |.  8845 FF       mov     byte ptr [ebp-1], al
  43. 0041AA09  |.  6A 01         push    1                         ; /Arg1 = 00000001
  44. 0041AA0B  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  45. 0041AA0E  |.  83C1 70       add     ecx, 70                   ; |
  46. 0041AA11  |.  E8 DACDFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  47. 0041AA16  |.  8845 FA       mov     byte ptr [ebp-6], al
  48. 0041AA19  |.  0FB645 EF     movzx   eax, byte ptr [ebp-11]    ;  注册名 ASCII 第一位
  49. 0041AA1D  |.  83C8 43       or      eax, 43                   ;  与 43 或运算,取为S1
  50. 0041AA20  |.  8845 EF       mov     byte ptr [ebp-11], al
  51. 0041AA23  |.  0FB64D F8     movzx   ecx, byte ptr [ebp-8]     ;  注册名 ASCII 第二位
  52. 0041AA27  |.  83C9 44       or      ecx, 44                   ;  与 44 或运算,取为S2
  53. 0041AA2A  |.  884D F8       mov     byte ptr [ebp-8], cl
  54. 0041AA2D  |.  0FB655 FF     movzx   edx, byte ptr [ebp-1]     ;  注册名 ASCII 第一位
  55. 0041AA31  |.  83CA 52       or      edx, 52                   ;  与 52 或运算,取为S3
  56. 0041AA34  |.  8855 FF       mov     byte ptr [ebp-1], dl
  57. 0041AA37  |.  0FB645 FA     movzx   eax, byte ptr [ebp-6]     ;  注册名 ASCII 第二位
  58. 0041AA3B  |.  83C8 45       or      eax, 45                   ;  与 45 或运算,取为S4
  59. 0041AA3E  |.  8845 FA       mov     byte ptr [ebp-6], al
  60. 0041AA41  |.  0FB645 EF     movzx   eax, byte ptr [ebp-11]
  61. 0041AA45  |.  99            cdq
  62. 0041AA46  |.  B9 0A000000   mov     ecx, 0A                   ;  S1 除以 0A,求余(S1=S1%0A)
  63. 0041AA4B  |.  F7F9          idiv    ecx
  64. 0041AA4D  |.  8855 EF       mov     byte ptr [ebp-11], dl
  65. 0041AA50  |.  0FB645 F8     movzx   eax, byte ptr [ebp-8]
  66. 0041AA54  |.  99            cdq
  67. 0041AA55  |.  B9 0A000000   mov     ecx, 0A                   ;  S2 除以 0A,求余(S2=S2%0A)
  68. 0041AA5A  |.  F7F9          idiv    ecx
  69. 0041AA5C  |.  8855 F8       mov     byte ptr [ebp-8], dl
  70. 0041AA5F  |.  0FB645 FF     movzx   eax, byte ptr [ebp-1]
  71. 0041AA63  |.  99            cdq
  72. 0041AA64  |.  B9 0A000000   mov     ecx, 0A                   ;  S3 除以 0A,求余(S3=S3%0A)
  73. 0041AA69  |.  F7F9          idiv    ecx
  74. 0041AA6B  |.  8855 FF       mov     byte ptr [ebp-1], dl
  75. 0041AA6E  |.  0FB645 FA     movzx   eax, byte ptr [ebp-6]
  76. 0041AA72  |.  99            cdq
  77. 0041AA73  |.  B9 0A000000   mov     ecx, 0A                   ;  S4 除以 0A,求余(S4=S4%0A)
  78. 0041AA78  |.  F7F9          idiv    ecx
  79. 0041AA7A  |.  8855 FA       mov     byte ptr [ebp-6], dl
  80. 0041AA7D  |.  C745 F0 00000>mov     dword ptr [ebp-10], 0
  81. 0041AA84  |.  C745 E8 00000>mov     dword ptr [ebp-18], 0
  82. 0041AA8B  |.  EB 09         jmp     short 0041AA96
  83. 0041AA8D  |>  8B55 E8       /mov     edx, dword ptr [ebp-18]
  84. 0041AA90  |.  83C2 01       |add     edx, 1
  85. 0041AA93  |.  8955 E8       |mov     dword ptr [ebp-18], edx
  86. 0041AA96  |>  8B4D E0        mov     ecx, dword ptr [ebp-20]
  87. 0041AA99  |.  83C1 70       |add     ecx, 70
  88. 0041AA9C  |.  E8 EF0FFFFF   |call    0040BA90
  89. 0041AAA1  |.  3945 E8       |cmp     dword ptr [ebp-18], eax
  90. 0041AAA4  |.  7D 1E         |jge     short 0041AAC4
  91. 0041AAA6  |.  8B45 E8       |mov     eax, dword ptr [ebp-18]
  92. 0041AAA9  |.  50            |push    eax                      ; /Arg1
  93. 0041AAAA  |.  8B4D E0       |mov     ecx, dword ptr [ebp-20]  ; |
  94. 0041AAAD  |.  83C1 70       |add     ecx, 70                  ; |
  95. 0041AAB0  |.  E8 3BCDFFFF   |call    004177F0                 ; \CDDVDDR.004177F0
  96. 0041AAB5  |.  8845 E7       |mov     byte ptr [ebp-19], al
  97. 0041AAB8  |.  0FB64D E7     |movzx   ecx, byte ptr [ebp-19]
  98. 0041AABC  |.  034D F0       |add     ecx, dword ptr [ebp-10]  ;  该循环是注册名 ASCII 逐位相加求和,取为S5
  99. 0041AABF  |.  894D F0       |mov     dword ptr [ebp-10], ecx
  100. 0041AAC2  |.^ EB C9         \jmp     short 0041AA8D
  101. 0041AAC4  |>  8B45 F0       mov     eax, dword ptr [ebp-10]
  102. 0041AAC7  |.  99            cdq
  103. 0041AAC8  |.  B9 0A000000   mov     ecx, 0A                   ;  S5 除以 0A,求余(S5=S5%0A)
  104. 0041AACD  |.  F7F9          idiv    ecx
  105. 0041AACF  |.  8855 F4       mov     byte ptr [ebp-C], dl
  106. 0041AAD2  |.  6A 00         push    0                         ; /Arg1 = 00000000
  107. 0041AAD4  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  108. 0041AAD7  |.  83C1 74       add     ecx, 74                   ; |
  109. 0041AADA  |.  E8 11CDFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  110. 0041AADF  |.  8845 FC       mov     byte ptr [ebp-4], al
  111. 0041AAE2  |.  6A 01         push    1                         ; /Arg1 = 00000001
  112. 0041AAE4  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  113. 0041AAE7  |.  83C1 74       add     ecx, 74                   ; |
  114. 0041AAEA  |.  E8 01CDFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  115. 0041AAEF  |.  8845 FD       mov     byte ptr [ebp-3], al
  116. 0041AAF2  |.  6A 02         push    2                         ; /Arg1 = 00000002
  117. 0041AAF4  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  118. 0041AAF7  |.  83C1 74       add     ecx, 74                   ; |
  119. 0041AAFA  |.  E8 F1CCFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  120. 0041AAFF  |.  8845 F6       mov     byte ptr [ebp-A], al
  121. 0041AB02  |.  6A 03         push    3                         ; /Arg1 = 00000003
  122. 0041AB04  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  123. 0041AB07  |.  83C1 74       add     ecx, 74                   ; |
  124. 0041AB0A  |.  E8 E1CCFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  125. 0041AB0F  |.  8845 F5       mov     byte ptr [ebp-B], al
  126. 0041AB12  |.  6A 04         push    4                         ; /Arg1 = 00000004
  127. 0041AB14  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  128. 0041AB17  |.  83C1 74       add     ecx, 74                   ; |
  129. 0041AB1A  |.  E8 D1CCFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  130. 0041AB1F  |.  8845 F9       mov     byte ptr [ebp-7], al
  131. 0041AB22  |.  6A 05         push    5                         ; /Arg1 = 00000005
  132. 0041AB24  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  133. 0041AB27  |.  83C1 74       add     ecx, 74                   ; |
  134. 0041AB2A  |.  E8 C1CCFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  135. 0041AB2F  |.  8845 F7       mov     byte ptr [ebp-9], al
  136. 0041AB32  |.  6A 06         push    6                         ; /Arg1 = 00000006
  137. 0041AB34  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  138. 0041AB37  |.  83C1 74       add     ecx, 74                   ; |
  139. 0041AB3A  |.  E8 B1CCFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  140. 0041AB3F  |.  8845 FE       mov     byte ptr [ebp-2], al
  141. 0041AB42  |.  6A 07         push    7                         ; /Arg1 = 00000007
  142. 0041AB44  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]   ; |
  143. 0041AB47  |.  83C1 74       add     ecx, 74                   ; |
  144. 0041AB4A  |.  E8 A1CCFFFF   call    004177F0                  ; \CDDVDDR.004177F0
  145. 0041AB4F  |.  8845 FB       mov     byte ptr [ebp-5], al
  146. 0041AB52  |.  0FB655 EF     movzx   edx, byte ptr [ebp-11]    ;  S1
  147. 0041AB56  |.  0FB645 FC     movzx   eax, byte ptr [ebp-4]     ;  试炼码第1位
  148. 0041AB5A  |.  83E8 30       sub     eax, 30                   ;  试炼码第1位=试炼码第1位-30
  149. 0041AB5D  |.  3BD0          cmp     edx, eax                  ;  S1 与试炼码第1位比较
  150. 0041AB5F  |.  75 3C         jnz     short 0041AB9D            ;  不等就跳往进行通用码比较(下同)
  151. 0041AB61  |.  0FB64D F8     movzx   ecx, byte ptr [ebp-8]
  152. 0041AB65  |.  0FB655 FD     movzx   edx, byte ptr [ebp-3]
  153. 0041AB69  |.  83EA 30       sub     edx, 30
  154. 0041AB6C  |.  3BCA          cmp     ecx, edx
  155. 0041AB6E  |.  75 2D         jnz     short 0041AB9D            ;  S2 与试炼码第2位比较
  156. 0041AB70  |.  0FB645 FF     movzx   eax, byte ptr [ebp-1]
  157. 0041AB74  |.  0FB64D F6     movzx   ecx, byte ptr [ebp-A]
  158. 0041AB78  |.  83E9 30       sub     ecx, 30
  159. 0041AB7B  |.  3BC1          cmp     eax, ecx
  160. 0041AB7D  |.  75 1E         jnz     short 0041AB9D            ;  S3 与试炼码第3位比较
  161. 0041AB7F  |.  0FB655 FA     movzx   edx, byte ptr [ebp-6]
  162. 0041AB83  |.  0FB645 F5     movzx   eax, byte ptr [ebp-B]
  163. 0041AB87  |.  83E8 30       sub     eax, 30
  164. 0041AB8A  |.  3BD0          cmp     edx, eax
  165. 0041AB8C  |.  75 0F         jnz     short 0041AB9D            ;  S4 与试炼码第4位比较
  166. 0041AB8E  |.  0FB64D F4     movzx   ecx, byte ptr [ebp-C]
  167. 0041AB92  |.  0FB655 F9     movzx   edx, byte ptr [ebp-7]
  168. 0041AB96  |.  83EA 30       sub     edx, 30
  169. 0041AB99  |.  3BCA          cmp     ecx, edx
  170. 0041AB9B  |.  74 58         je      short 0041ABF5            ;  S5 与试炼码第5位比较,如果相等则注册成功
  171. 0041AB9D  |>  0FB645 FC     movzx   eax, byte ptr [ebp-4]     ;  试炼码第1位;下面8位数字是通用码
  172. 0041ABA1  |.  83F8 39       cmp     eax, 39                   ;  9
  173. 0041ABA4  |.  0F85 A7000000 jnz     0041AC51                  ;  不等跳往失败(下同)
  174. 0041ABAA  |.  0FB64D FD     movzx   ecx, byte ptr [ebp-3]     ;  试炼码第2位
  175. 0041ABAE  |.  83F9 33       cmp     ecx, 33                   ;  3
  176. 0041ABB1  |.  0F85 9A000000 jnz     0041AC51
  177. 0041ABB7  |.  0FB655 F6     movzx   edx, byte ptr [ebp-A]
  178. 0041ABBB  |.  83FA 30       cmp     edx, 30                   ;  0
  179. 0041ABBE  |.  0F85 8D000000 jnz     0041AC51
  180. 0041ABC4  |.  0FB645 F5     movzx   eax, byte ptr [ebp-B]
  181. 0041ABC8  |.  83F8 31       cmp     eax, 31                   ;  1
  182. 0041ABCB  |.  0F85 80000000 jnz     0041AC51
  183. 0041ABD1  |.  0FB64D F9     movzx   ecx, byte ptr [ebp-7]
  184. 0041ABD5  |.  83F9 36       cmp     ecx, 36                   ;  6
  185. 0041ABD8  |.  75 77         jnz     short 0041AC51
  186. 0041ABDA  |.  0FB655 F7     movzx   edx, byte ptr [ebp-9]
  187. 0041ABDE  |.  83FA 36       cmp     edx, 36                   ;  6
  188. 0041ABE1  |.  75 6E         jnz     short 0041AC51
  189. 0041ABE3  |.  0FB645 FE     movzx   eax, byte ptr [ebp-2]
  190. 0041ABE7  |.  83F8 36       cmp     eax, 36                   ;  6
  191. 0041ABEA  |.  75 65         jnz     short 0041AC51
  192. 0041ABEC  |.  0FB64D FB     movzx   ecx, byte ptr [ebp-5]
  193. 0041ABF0  |.  83F9 36       cmp     ecx, 36                   ;  6
  194. 0041ABF3  |.  75 5C         jnz     short 0041AC51
  195. 0041ABF5  |>  6A 00         push    0
  196. 0041ABF7  |.  6A 00         push    0
  197. 0041ABF9  |.  68 40E44400   push    0044E440                  ;  registration has succeeded!
  198. 0041ABFE  |.  E8 066F0200   call    00441B09
  199. 0041AC03  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]
  200. 0041AC06  |.  83C1 70       add     ecx, 70
  201. 0041AC09  |.  E8 8202FFFF   call    0040AE90
  202. 0041AC0E  |.  50            push    eax
  203. 0041AC0F  |.  68 5CE44400   push    0044E45C                  ;  username
  204. 0041AC14  |.  68 68E44400   push    0044E468                  ;  option
  205. 0041AC19  |.  E8 F2CCFFFF   call    00417910
  206. 0041AC1E  |.  8BC8          mov     ecx, eax                  ; |
  207. 0041AC20  |.  E8 FB6F0200   call    00441C20                  ; \CDDVDDR.00441C20
  208. 0041AC25  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]
  209. 0041AC28  |.  83C1 74       add     ecx, 74
  210. 0041AC2B  |.  E8 6002FFFF   call    0040AE90
  211. 0041AC30  |.  50            push    eax
  212. 0041AC31  |.  68 70E44400   push    0044E470                  ;  registration_code
  213. 0041AC36  |.  68 84E44400   push    0044E484                  ;  option
  214. 0041AC3B  |.  E8 D0CCFFFF   call    00417910
  215. 0041AC40  |.  8BC8          mov     ecx, eax                  ; |
  216. 0041AC42  |.  E8 D96F0200   call    00441C20                  ; \CDDVDDR.00441C20
  217. 0041AC47  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]
  218. 0041AC4A  |.  E8 3F160200   call    0043C28E
  219. 0041AC4F  |.  EB 0E         jmp     short 0041AC5F
  220. 0041AC51  |>  6A 00         push    0
  221. 0041AC53  |.  6A 00         push    0
  222. 0041AC55  |.  68 8CE44400   push    0044E48C                  ;  registration failed!
  223. 0041AC5A  |.  E8 AA6E0200   call    00441B09
  224. 0041AC5F  |>  8BE5          mov     esp, ebp
  225. 0041AC61  |.  5D            pop     ebp
  226. 0041AC62  \.  C3            retn
复制代码


------------------------------------------------------------------------
【破解总结】
通用注册码:93016666
注册名必须大于等于2位;
注册码必须大于等于8位;
取注册名的第一与第二位 ASCII 码,第一位、第二位分别与 43 、44 及与 52、45 进行或运算,运算结果除以 0A 求余;
逐位取注册名的ASCII 码求和,再除以 0A 求余;将上面结果连接再加 3 位随机数即成注册码
算法比较简单,适合我等新手练习
易语言注册机源码

  1. .版本 2

  2. .局部变量 name, 文本型
  3. .局部变量 i, 整数型
  4. .局部变量 lenn, 整数型
  5. .局部变量 code1, 字节型
  6. .局部变量 code4, 整数型
  7. .局部变量 code3, 文本型
  8. .局部变量 code2, 字节型

  9. name = 编辑框1.内容
  10. lenn = 取文本长度 (name)
  11. .判断开始 (lenn < 2)  ' lenn=0 或 lenm=0
  12.     编辑框3.内容 = “★注册名必须2位以上★”
  13. .默认
  14.     .计次循环首 (lenn, i)
  15.         code1 = 取代码 (name, i)
  16.         code4 = code1 + code4
  17.     .计次循环尾 ()
  18.     code1 = 取代码 (name, 1)
  19.     code2 = 取代码 (name, 2)
  20.     置随机数种子 ()
  21.     code3 = 到文本 (位或 (code1, 67) % 10) + 到文本 (位或 (code2, 68) % 10) + 到文本 (位或 (code1,
  22. 82) % 10) + 到文本 (位或 (code2, 69) % 10) + 到文本 (code4 % 10) + 到文本 (取随机数 (100, 999))
  23.     编辑框3.内容 = code3
  24. .判断结束
复制代码


------------------------------------------------------------------------
【版权声明】
CD DVD Data Recovery 1.jpg
CD DVD Data Recovery 2.jpg
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-2-21 12:33
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2007-4-23 19:13:50 | 显示全部楼层
    谢谢,这个东西让我迷糊了半天。


    真的去了第三课但是没搞到教材很郁闷的!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-5-23 14:29:33 | 显示全部楼层
    向前辈学习。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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