飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3229|回复: 4

[原创] WinASO Disk Cleaner2.0算法分析

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

    [LV.1]初来乍到

    发表于 2008-2-13 20:59:37 | 显示全部楼层 |阅读模式
    【破文作者】tianxj
    【作者邮箱】tianxj_2007@126.com
    【作者主页】www.chinapyg.com
    破解工具】PEiD,OD
    【破解平台】Windows XP
    【软件名称】WinASO Disk Cleaner2.0
    【原版下载】自己搜索一下
    【保护方式】注册码
    【软件简介】WinASO Disk Cleaner will find and delete junk files and clear up some space on your hard drive, freeing up valuable space and streamlining your system.
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------
    【破解内容】
    --------------------------------------------------------------
    **************************************************************
    一、运行程序,进行注册,输入错误的注册信息进行检测,提示信息
    "Sorry,that is an invalid license key.Please ensure you have entered the license key exactly as provided."
    **************************************************************
    二、用PEiD对这个软件查壳,为 Borland Delphi 6.0 - 7.0
    **************************************************************
    三、运行OD,打开DiskCleaner,F12暂停,alt+K
    调用堆栈:    主线程, 条目 14
    地址=0012F83C
    堆栈=004BD78C
    函数过程 / 参数=? <JMP.&user32.MessageBoxA>
    调用来自=DiskClea.004BD787
    结构=0012F838
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    1. 004BD538  /.  55            PUSH EBP
    2. 004BD539  |.  8BEC          MOV EBP,ESP
    3. 004BD53B  |.  B9 07000000   MOV ECX,7
    4. 004BD540  |>  6A 00         /PUSH 0
    5. 004BD542  |.  6A 00         |PUSH 0
    6. 004BD544  |.  49            |DEC ECX
    7. 004BD545  |.^ 75 F9         \JNZ SHORT DiskClea.004BD540
    8. 004BD547  |.  51            PUSH ECX
    9. 004BD548  |.  53            PUSH EBX
    10. 004BD549  |.  56            PUSH ESI
    11. 004BD54A  |.  57            PUSH EDI
    12. 004BD54B  |.  8BF0          MOV ESI,EAX
    13. 004BD54D  |.  33C0          XOR EAX,EAX
    14. 004BD54F  |.  55            PUSH EBP
    15. 004BD550  |.  68 5AD94B00   PUSH DiskClea.004BD95A
    16. 004BD555  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    17. 004BD558  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    18. 004BD55B  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
    19. 004BD55E  |.  8B86 8C030000 MOV EAX,DWORD PTR DS:[ESI+38C]
    20. 004BD564  |.  E8 7B04F9FF   CALL DiskClea.0044D9E4                   ;  //将注册码长度送入EAX
    21. 004BD569  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
    22. 004BD56C  |.  50            PUSH EAX                                 ; /Arg1
    23. 004BD56D  |.  33C9          XOR ECX,ECX                              ; |
    24. 004BD56F  |.  BA 70D94B00   MOV EDX,DiskClea.004BD970                ; |
    25. 004BD574  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ; |//将注册码送入EAX
    26. 004BD577  |.  E8 F021F8FF   CALL DiskClea.0043F76C                   ; \DiskClea.0043F76C
    27. 004BD57C  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  //将注册码送入EDX
    28. 004BD57F  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    29. 004BD582  |.  E8 8974F4FF   CALL DiskClea.00404A10
    30. 004BD587  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    31. 004BD58A  |.  85C0          TEST EAX,EAX                             ;  //比较EAX
    32. 004BD58C  |.  74 05         JE SHORT DiskClea.004BD593               ;  //若相等则跳
    33. 004BD58E  |.  83E8 04       SUB EAX,4
    34. 004BD591  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]               ;  //将注册码长度送入EAX
    35. 004BD593  |>  83F8 10       CMP EAX,10                               ;  //将注册码长度与10h比较
    36. 004BD596  |.  74 1E         JE SHORT DiskClea.004BD5B6               ;  //若相等则跳
    37. 004BD598  |.  6A 40         PUSH 40
    38. 004BD59A  |.  68 74D94B00   PUSH DiskClea.004BD974                   ;  ASCII "WinASO Disk Cleaner"
    39. 004BD59F  |.  68 88D94B00   PUSH DiskClea.004BD988                   ;  ASCII "Sorry,that is an invalid license key.Please ensure you have entered the license key exactly as provided."
    40. 004BD5A4  |.  8BC6          MOV EAX,ESI
    41. 004BD5A6  |.  E8 397FF9FF   CALL DiskClea.004554E4
    42. 004BD5AB  |.  50            PUSH EAX                                 ; |hOwner
    43. 004BD5AC  |.  E8 AFA1F4FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    44. 004BD5B1  |.  E9 89030000   JMP DiskClea.004BD93F
    45. 004BD5B6  |>  BB 01000000   MOV EBX,1                                ;  //将1送入EBX
    46. 004BD5BB  |>  8D45 F8       /LEA EAX,DWORD PTR SS:[EBP-8]
    47. 004BD5BE  |.  50            |PUSH EAX                                ; /Arg1
    48. 004BD5BF  |.  B9 01000000   |MOV ECX,1                               ; |//将1送入ECX
    49. 004BD5C4  |.  8BD3          |MOV EDX,EBX                             ; |//将EBX送入EDX
    50. 004BD5C6  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]            ; |//将注册码送入EAX
    51. 004BD5C9  |.  E8 7A23F8FF   |CALL DiskClea.0043F948                  ; \//将注册码ASC码16进制送入ECX
    52. 004BD5CE  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    53. 004BD5D1  |.  BA FCD94B00   |MOV EDX,DiskClea.004BD9FC
    54. 004BD5D6  |.  E8 AD77F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'0'比较
    55. 004BD5DB  |.  0F84 AD000000 |JE DiskClea.004BD68E                    ;  //若相等则跳
    56. 004BD5E1  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    57. 004BD5E4  |.  BA 08DA4B00   |MOV EDX,DiskClea.004BDA08
    58. 004BD5E9  |.  E8 9A77F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'1'比较
    59. 004BD5EE  |.  0F84 9A000000 |JE DiskClea.004BD68E                    ;  //若相等则跳
    60. 004BD5F4  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    61. 004BD5F7  |.  BA 14DA4B00   |MOV EDX,DiskClea.004BDA14
    62. 004BD5FC  |.  E8 8777F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'2'比较
    63. 004BD601  |.  0F84 87000000 |JE DiskClea.004BD68E                    ;  //若相等则跳
    64. 004BD607  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    65. 004BD60A  |.  BA 20DA4B00   |MOV EDX,DiskClea.004BDA20
    66. 004BD60F  |.  E8 7477F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'3'比较
    67. 004BD614  |.  74 78         |JE SHORT DiskClea.004BD68E              ;  //若相等则跳
    68. 004BD616  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    69. 004BD619  |.  BA 2CDA4B00   |MOV EDX,DiskClea.004BDA2C
    70. 004BD61E  |.  E8 6577F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'4'比较
    71. 004BD623  |.  74 69         |JE SHORT DiskClea.004BD68E              ;  //若相等则跳
    72. 004BD625  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    73. 004BD628  |.  BA 38DA4B00   |MOV EDX,DiskClea.004BDA38
    74. 004BD62D  |.  E8 5677F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'5'比较
    75. 004BD632  |.  74 5A         |JE SHORT DiskClea.004BD68E              ;  //若相等则跳
    76. 004BD634  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    77. 004BD637  |.  BA 44DA4B00   |MOV EDX,DiskClea.004BDA44
    78. 004BD63C  |.  E8 4777F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'6'比较
    79. 004BD641  |.  74 4B         |JE SHORT DiskClea.004BD68E              ;  //若相等则跳
    80. 004BD643  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    81. 004BD646  |.  BA 50DA4B00   |MOV EDX,DiskClea.004BDA50
    82. 004BD64B  |.  E8 3877F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'7'比较
    83. 004BD650  |.  74 3C         |JE SHORT DiskClea.004BD68E              ;  //若相等则跳
    84. 004BD652  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    85. 004BD655  |.  BA 5CDA4B00   |MOV EDX,DiskClea.004BDA5C
    86. 004BD65A  |.  E8 2977F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'8'比较
    87. 004BD65F  |.  74 2D         |JE SHORT DiskClea.004BD68E              ;  //若相等则跳
    88. 004BD661  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]
    89. 004BD664  |.  BA 68DA4B00   |MOV EDX,DiskClea.004BDA68
    90. 004BD669  |.  E8 1A77F4FF   |CALL DiskClea.00404D88                  ;  //将注册码与'9'比较
    91. 004BD66E  |.  74 1E         |JE SHORT DiskClea.004BD68E              ;  //若相等则跳
    92. 004BD670  |.  6A 40         |PUSH 40
    93. 004BD672  |.  68 74D94B00   |PUSH DiskClea.004BD974                  ;  ASCII "WinASO Disk Cleaner"
    94. 004BD677  |.  68 88D94B00   |PUSH DiskClea.004BD988                  ;  ASCII "Sorry,that is an invalid license key.Please ensure you have entered the license key exactly as provided."
    95. 004BD67C  |.  8BC6          |MOV EAX,ESI
    96. 004BD67E  |.  E8 617EF9FF   |CALL DiskClea.004554E4
    97. 004BD683  |.  50            |PUSH EAX                                ; |hOwner
    98. 004BD684  |.  E8 D7A0F4FF   |CALL <JMP.&user32.MessageBoxA>          ; \MessageBoxA
    99. 004BD689  |.  E9 B1020000   |JMP DiskClea.004BD93F
    100. 004BD68E  |>  43            |INC EBX                                 ;  //EBX=EBX+1
    101. 004BD68F  |.  83FB 11       |CMP EBX,11                              ;  //将EBX与11h比较
    102. 004BD692  |.^ 0F85 23FFFFFF \JNZ DiskClea.004BD5BB                   ;  //若不相等则跳,以上为验证注册码是否存在非数字
    103. 004BD698  |.  33FF          XOR EDI,EDI                              ;  //将EDI清零
    104. 004BD69A  |.  BB 01000000   MOV EBX,1                                ;  //将1送入EBX
    105. 004BD69F  |>  8D45 F8       /LEA EAX,DWORD PTR SS:[EBP-8]
    106. 004BD6A2  |.  50            |PUSH EAX                                ; /Arg1
    107. 004BD6A3  |.  8BD3          |MOV EDX,EBX                             ; |//将EBX送入EDX
    108. 004BD6A5  |.  03D2          |ADD EDX,EDX                             ; |//EDX=EDX+EDX
    109. 004BD6A7  |.  03D2          |ADD EDX,EDX                             ; |//EDX=EDX+EDX
    110. 004BD6A9  |.  42            |INC EDX                                 ; |//EDX=EDX+1
    111. 004BD6AA  |.  B9 04000000   |MOV ECX,4                               ; |//将4送入ECX
    112. 004BD6AF  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]            ; |//将注册码送入EAX
    113. 004BD6B2  |.  E8 9122F8FF   |CALL DiskClea.0043F948                  ; \//从注册码第5位开始,每4位算1组
    114. 004BD6B7  |.  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]            ;  //1组4位注册码
    115. 004BD6BA  |.  E8 EDBBF4FF   |CALL DiskClea.004092AC                  ;  //4位注册码转为16进制送入EAX
    116. 004BD6BF  |.  03F8          |ADD EDI,EAX                             ;  //EDI=EDI+EAX
    117. 004BD6C1  |.  43            |INC EBX                                 ;  //EBX=EBX+1
    118. 004BD6C2  |.  83FB 04       |CMP EBX,4                               ;  //将EBX与4比较
    119. 004BD6C5  |.^ 75 D8         \JNZ SHORT DiskClea.004BD69F             ;  //若不相等则跳
    120. 004BD6C7  |.  83FF 32       CMP EDI,32                               ;  //将EDI即后3组的和与32h比较
    121. 004BD6CA  |.  7D 1E         JGE SHORT DiskClea.004BD6EA              ;  //若大于等于则跳
    122. 004BD6CC  |.  6A 40         PUSH 40
    123. 004BD6CE  |.  68 74D94B00   PUSH DiskClea.004BD974                   ;  ASCII "WinASO Disk Cleaner"
    124. 004BD6D3  |.  68 88D94B00   PUSH DiskClea.004BD988                   ;  ASCII "Sorry,that is an invalid license key.Please ensure you have entered the license key exactly as provided."
    125. 004BD6D8  |.  8BC6          MOV EAX,ESI
    126. 004BD6DA  |.  E8 057EF9FF   CALL DiskClea.004554E4
    127. 004BD6DF  |.  50            PUSH EAX                                 ; |hOwner
    128. 004BD6E0  |.  E8 7BA0F4FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    129. 004BD6E5  |.  E9 55020000   JMP DiskClea.004BD93F
    130. 004BD6EA  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    131. 004BD6ED  |.  50            PUSH EAX
    132. 004BD6EE  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    133. 004BD6F3  |.  BA 06000000   MOV EDX,6                                ;  //将6送入EDX
    134. 004BD6F8  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    135. 004BD6FB  |.  E8 B421F8FF   CALL DiskClea.0043F8B4
    136. 004BD700  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    137. 004BD703  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
    138. 004BD706  |.  50            PUSH EAX
    139. 004BD707  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    140. 004BD70C  |.  BA 07000000   MOV EDX,7                                ;  //将7送入EDX
    141. 004BD711  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    142. 004BD714  |.  E8 9B21F8FF   CALL DiskClea.0043F8B4
    143. 004BD719  |.  FF75 EC       PUSH DWORD PTR SS:[EBP-14]
    144. 004BD71C  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
    145. 004BD71F  |.  50            PUSH EAX
    146. 004BD720  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    147. 004BD725  |.  BA 05000000   MOV EDX,5                                ;  //将5送入EDX
    148. 004BD72A  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    149. 004BD72D  |.  E8 8221F8FF   CALL DiskClea.0043F8B4
    150. 004BD732  |.  FF75 E8       PUSH DWORD PTR SS:[EBP-18]
    151. 004BD735  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
    152. 004BD738  |.  50            PUSH EAX
    153. 004BD739  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    154. 004BD73E  |.  BA 08000000   MOV EDX,8                                ;  //将8送入EDX
    155. 004BD743  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    156. 004BD746  |.  E8 6921F8FF   CALL DiskClea.0043F8B4
    157. 004BD74B  |.  FF75 E4       PUSH DWORD PTR SS:[EBP-1C]
    158. 004BD74E  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    159. 004BD751  |.  BA 04000000   MOV EDX,4                                ;  //将4送入EDX
    160. 004BD756  |.  E8 A175F4FF   CALL DiskClea.00404CFC                   ;  //将注册码第5-8位重新排序,为第6位第7位第5位第8位
    161. 004BD75B  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //将重新排序的第5-8位送入EAX
    162. 004BD75E  |.  E8 49BBF4FF   CALL DiskClea.004092AC                   ;  //将重新排序的第5-8位转为16进制送入EAX
    163. 004BD763  |.  8BD8          MOV EBX,EAX                              ;  //将EAX送入EBX
    164. 004BD765  |.  8BC3          MOV EAX,EBX                              ;  //将EBX送入EAX
    165. 004BD767  |.  B9 17000000   MOV ECX,17                               ;  //将17h送入ECX
    166. 004BD76C  |.  99            CDQ                                      ;  //将EDX清零
    167. 004BD76D  |.  F7F9          IDIV ECX                                 ;  //EDX/ECX,商送EAX,余送EDX
    168. 004BD76F  |.  85D2          TEST EDX,EDX                             ;  //比较EDX
    169. 004BD771  |.  74 1E         JE SHORT DiskClea.004BD791               ;  //若相等则跳,即余数为0
    170. 004BD773  |.  6A 40         PUSH 40
    171. 004BD775  |.  68 74D94B00   PUSH DiskClea.004BD974                   ;  ASCII "WinASO Disk Cleaner"
    172. 004BD77A  |.  68 88D94B00   PUSH DiskClea.004BD988                   ;  ASCII "Sorry,that is an invalid license key.Please ensure you have entered the license key exactly as provided."
    173. 004BD77F  |.  8BC6          MOV EAX,ESI
    174. 004BD781  |.  E8 5E7DF9FF   CALL DiskClea.004554E4
    175. 004BD786  |.  50            PUSH EAX                                 ; |hOwner
    176. 004BD787  |.  E8 D49FF4FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    177. 004BD78C  |.  E9 AE010000   JMP DiskClea.004BD93F
    178. 004BD791  |>  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    179. 004BD794  |.  50            PUSH EAX
    180. 004BD795  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    181. 004BD79A  |.  BA 0B000000   MOV EDX,0B                               ;  //将0B送入EDX
    182. 004BD79F  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    183. 004BD7A2  |.  E8 0D21F8FF   CALL DiskClea.0043F8B4
    184. 004BD7A7  |.  FF75 E0       PUSH DWORD PTR SS:[EBP-20]
    185. 004BD7AA  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
    186. 004BD7AD  |.  50            PUSH EAX
    187. 004BD7AE  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    188. 004BD7B3  |.  BA 0C000000   MOV EDX,0C
    189. 004BD7B8  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    190. 004BD7BB  |.  E8 F420F8FF   CALL DiskClea.0043F8B4
    191. 004BD7C0  |.  FF75 DC       PUSH DWORD PTR SS:[EBP-24]
    192. 004BD7C3  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
    193. 004BD7C6  |.  50            PUSH EAX
    194. 004BD7C7  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    195. 004BD7CC  |.  BA 09000000   MOV EDX,9                                ;  //将9送入EDX
    196. 004BD7D1  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    197. 004BD7D4  |.  E8 DB20F8FF   CALL DiskClea.0043F8B4
    198. 004BD7D9  |.  FF75 D8       PUSH DWORD PTR SS:[EBP-28]
    199. 004BD7DC  |.  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
    200. 004BD7DF  |.  50            PUSH EAX
    201. 004BD7E0  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    202. 004BD7E5  |.  BA 0A000000   MOV EDX,0A                               ;  //将0A送入EDX
    203. 004BD7EA  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    204. 004BD7ED  |.  E8 C220F8FF   CALL DiskClea.0043F8B4
    205. 004BD7F2  |.  FF75 D4       PUSH DWORD PTR SS:[EBP-2C]
    206. 004BD7F5  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    207. 004BD7F8  |.  BA 04000000   MOV EDX,4                                ;  //将4送入EDX
    208. 004BD7FD  |.  E8 FA74F4FF   CALL DiskClea.00404CFC                   ;  //将注册码第9-12位重新排序,为第11位第12位第9位第10位
    209. 004BD802  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //将重新排序的第9-12位送入EAX
    210. 004BD805  |.  E8 A2BAF4FF   CALL DiskClea.004092AC                   ;  //将重新排序的第9-12位转为16进制送入EAX
    211. 004BD80A  |.  8BD8          MOV EBX,EAX                              ;  //将EAX送入EBX
    212. 004BD80C  |.  8BC3          MOV EAX,EBX                              ;  //将EBX送入EAX
    213. 004BD80E  |.  B9 13000000   MOV ECX,13                               ;  //将13h送入ECX
    214. 004BD813  |.  99            CDQ                                      ;  //将EDX清零
    215. 004BD814  |.  F7F9          IDIV ECX                                 ;  //EDX/ECX,商送EAX,余送EDX
    216. 004BD816  |.  85D2          TEST EDX,EDX                             ;  //比较EDX
    217. 004BD818  |.  74 1E         JE SHORT DiskClea.004BD838               ;  //若相等则跳,即余数为0
    218. 004BD81A  |.  6A 40         PUSH 40
    219. 004BD81C  |.  68 74D94B00   PUSH DiskClea.004BD974                   ;  ASCII "WinASO Disk Cleaner"
    220. 004BD821  |.  68 88D94B00   PUSH DiskClea.004BD988                   ;  ASCII "Sorry,that is an invalid license key.Please ensure you have entered the license key exactly as provided."
    221. 004BD826  |.  8BC6          MOV EAX,ESI
    222. 004BD828  |.  E8 B77CF9FF   CALL DiskClea.004554E4
    223. 004BD82D  |.  50            PUSH EAX                                 ; |hOwner
    224. 004BD82E  |.  E8 2D9FF4FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    225. 004BD833  |.  E9 07010000   JMP DiskClea.004BD93F
    226. 004BD838  |>  8D45 D0       LEA EAX,DWORD PTR SS:[EBP-30]
    227. 004BD83B  |.  50            PUSH EAX
    228. 004BD83C  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    229. 004BD841  |.  BA 10000000   MOV EDX,10                               ;  //将10h送入EDX
    230. 004BD846  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    231. 004BD849  |.  E8 6620F8FF   CALL DiskClea.0043F8B4
    232. 004BD84E  |.  FF75 D0       PUSH DWORD PTR SS:[EBP-30]
    233. 004BD851  |.  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
    234. 004BD854  |.  50            PUSH EAX
    235. 004BD855  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    236. 004BD85A  |.  BA 0F000000   MOV EDX,0F                               ;  //将0F送入EDX
    237. 004BD85F  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    238. 004BD862  |.  E8 4D20F8FF   CALL DiskClea.0043F8B4
    239. 004BD867  |.  FF75 CC       PUSH DWORD PTR SS:[EBP-34]
    240. 004BD86A  |.  8D45 C8       LEA EAX,DWORD PTR SS:[EBP-38]
    241. 004BD86D  |.  50            PUSH EAX
    242. 004BD86E  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    243. 004BD873  |.  BA 0E000000   MOV EDX,0E                               ;  //将0E送入EDX
    244. 004BD878  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    245. 004BD87B  |.  E8 3420F8FF   CALL DiskClea.0043F8B4
    246. 004BD880  |.  FF75 C8       PUSH DWORD PTR SS:[EBP-38]
    247. 004BD883  |.  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
    248. 004BD886  |.  50            PUSH EAX
    249. 004BD887  |.  B9 01000000   MOV ECX,1                                ;  //将1送入ECX
    250. 004BD88C  |.  BA 0D000000   MOV EDX,0D                               ;  //将0D送入EDX
    251. 004BD891  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //将注册码送入EAX
    252. 004BD894  |.  E8 1B20F8FF   CALL DiskClea.0043F8B4
    253. 004BD899  |.  FF75 C4       PUSH DWORD PTR SS:[EBP-3C]
    254. 004BD89C  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    255. 004BD89F  |.  BA 04000000   MOV EDX,4                                ;  //将4送入EDX
    256. 004BD8A4  |.  E8 5374F4FF   CALL DiskClea.00404CFC                   ;  //将注册码第13-16位重新排序,为第16位第15位第14位第13位
    257. 004BD8A9  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //将重新排序的第13-16位送入EAX
    258. 004BD8AC  |.  E8 FBB9F4FF   CALL DiskClea.004092AC                   ;  //将重新排序的第13-16位转为16进制送入EAX
    259. 004BD8B1  |.  8BD8          MOV EBX,EAX                              ;  //将EAX送入EBX
    260. 004BD8B3  |.  8BC3          MOV EAX,EBX                              ;  //将EBX送入EAX
    261. 004BD8B5  |.  B9 1F000000   MOV ECX,1F                               ;  //将1Fh送入ECX
    262. 004BD8BA  |.  99            CDQ                                      ;  //将EDX清零
    263. 004BD8BB  |.  F7F9          IDIV ECX                                 ;  //EDX/ECX,商送EAX,余送EDX
    264. 004BD8BD  |.  85D2          TEST EDX,EDX                             ;  //比较EDX
    265. 004BD8BF  |.  74 1B         JE SHORT DiskClea.004BD8DC               ;  //若相等则跳,即余数为0
    266. 004BD8C1  |.  6A 40         PUSH 40
    267. 004BD8C3  |.  68 74D94B00   PUSH DiskClea.004BD974                   ;  ASCII "WinASO Disk Cleaner"
    268. 004BD8C8  |.  68 88D94B00   PUSH DiskClea.004BD988                   ;  ASCII "Sorry,that is an invalid license key.Please ensure you have entered the license key exactly as provided."
    269. 004BD8CD  |.  8BC6          MOV EAX,ESI
    270. 004BD8CF  |.  E8 107CF9FF   CALL DiskClea.004554E4
    271. 004BD8D4  |.  50            PUSH EAX                                 ; |hOwner
    272. 004BD8D5  |.  E8 869EF4FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    273. 004BD8DA  |.  EB 63         JMP SHORT DiskClea.004BD93F
    274. 004BD8DC  |>  B2 01         MOV DL,1
    275. 004BD8DE  |.  A1 789F4200   MOV EAX,DWORD PTR DS:[429F78]
    276. 004BD8E3  |.  E8 90C7F6FF   CALL DiskClea.0042A078
    277. 004BD8E8  |.  8BD8          MOV EBX,EAX
    278. 004BD8EA  |.  BA 02000080   MOV EDX,80000002
    279. 004BD8EF  |.  8BC3          MOV EAX,EBX
    280. 004BD8F1  |.  E8 22C8F6FF   CALL DiskClea.0042A118
    281. 004BD8F6  |.  B1 01         MOV CL,1
    282. 004BD8F8  |.  BA 74DA4B00   MOV EDX,DiskClea.004BDA74                ;  ASCII "\SOFTWARE\WinASO\Disk Cleaner"
    283. 004BD8FD  |.  8BC3          MOV EAX,EBX                              ;  //注册信息保存在"\SOFTWARE\WinASO\Disk Cleaner"
    284. 004BD8FF  |.  E8 78C8F6FF   CALL DiskClea.0042A17C
    285. 004BD904  |.  84C0          TEST AL,AL
    286. 004BD906  |.  74 0F         JE SHORT DiskClea.004BD917
    287. 004BD908  |.  8B4D FC       MOV ECX,DWORD PTR SS:[EBP-4]
    288. 004BD90B  |.  BA 9CDA4B00   MOV EDX,DiskClea.004BDA9C                ;  ASCII "DiskCln20"
    289. 004BD910  |.  8BC3          MOV EAX,EBX
    290. 004BD912  |.  E8 B9CBF6FF   CALL DiskClea.0042A4D0
    291. 004BD917  |>  A1 54E34C00   MOV EAX,DWORD PTR DS:[4CE354]
    292. 004BD91C  |.  C600 01       MOV BYTE PTR DS:[EAX],1
    293. 004BD91F  |.  6A 40         PUSH 40
    294. 004BD921  |.  68 74D94B00   PUSH DiskClea.004BD974                   ;  ASCII "WinASO Disk Cleaner"
    295. 004BD926  |.  68 A8DA4B00   PUSH DiskClea.004BDAA8                   ;  ASCII "WinASO Disk Cleaner is activated now. Thank you!. If you experience any problems, please contact us at support@winaso.com. Enjoy your product!"
    296. 004BD92B  |.  8BC6          MOV EAX,ESI
    297. 004BD92D  |.  E8 B27BF9FF   CALL DiskClea.004554E4
    298. 004BD932  |.  50            PUSH EAX                                 ; |hOwner
    299. 004BD933  |.  E8 289EF4FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    300. 004BD938  |.  8BC6          MOV EAX,ESI
    301. 004BD93A  |.  E8 1593FAFF   CALL DiskClea.00466C54
    302. 004BD93F  |>  33C0          XOR EAX,EAX
    303. 004BD941  |.  5A            POP EDX
    304. 004BD942  |.  59            POP ECX
    305. 004BD943  |.  59            POP ECX
    306. 004BD944  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    307. 004BD947  |.  68 61D94B00   PUSH DiskClea.004BD961
    308. 004BD94C  |>  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
    309. 004BD94F  |.  BA 0F000000   MOV EDX,0F
    310. 004BD954  |.  E8 4370F4FF   CALL DiskClea.0040499C
    311. 004BD959  \.  C3            RETN
    312. 004BD95A   .^ E9 6169F4FF   JMP DiskClea.004042C0
    313. 004BD95F   .^ EB EB         JMP SHORT DiskClea.004BD94C
    314. 004BD961   .  5F            POP EDI
    315. 004BD962   .  5E            POP ESI
    316. 004BD963   .  5B            POP EBX
    317. 004BD964   .  8BE5          MOV ESP,EBP
    318. 004BD966   .  5D            POP EBP
    319. 004BD967   .  C3            RETN
    320. ==============================================================
    321. 启动验证
    322. 右键—超级字串参考—查找ASCII.查找"\SOFTWARE\WinASO\Disk Cleaner"
    323. 共有3处
    324. 004B9264  |.  BA C0924B00   MOV EDX,DiskClea.004B92C0                ;  \software\winaso\disk cleaner
    325. 004BD8F8  |.  BA 74DA4B00   MOV EDX,DiskClea.004BDA74                ;  \software\winaso\disk cleaner
    326. 004BDE2E  |.  BA D0DE4B00   MOV EDX,DiskClea.004BDED0                ;  \software\winaso\disk cleaner
    327. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    328. 004B9234  /$  55            PUSH EBP
    329. 004B9235  |.  8BEC          MOV EBP,ESP
    330. 004B9237  |.  6A 00         PUSH 0
    331. 004B9239  |.  53            PUSH EBX
    332. 004B923A  |.  33C0          XOR EAX,EAX
    333. 004B923C  |.  55            PUSH EBP
    334. 004B923D  |.  68 AB924B00   PUSH DiskClea.004B92AB
    335. 004B9242  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    336. 004B9245  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    337. 004B9248  |.  B2 01         MOV DL,1
    338. 004B924A  |.  A1 789F4200   MOV EAX,DWORD PTR DS:[429F78]
    339. 004B924F  |.  E8 240EF7FF   CALL DiskClea.0042A078
    340. 004B9254  |.  8BD8          MOV EBX,EAX
    341. 004B9256  |.  BA 02000080   MOV EDX,80000002
    342. 004B925B  |.  8BC3          MOV EAX,EBX
    343. 004B925D  |.  E8 B60EF7FF   CALL DiskClea.0042A118
    344. 004B9262  |.  B1 01         MOV CL,1
    345. 004B9264  |.  BA C0924B00   MOV EDX,DiskClea.004B92C0                ;  \software\winaso\disk cleaner
    346. 004B9269  |.  8BC3          MOV EAX,EBX
    347. 004B926B  |.  E8 0C0FF7FF   CALL DiskClea.0042A17C
    348. 004B9270  |.  84C0          TEST AL,AL
    349. 004B9272  |.  74 1F         JE SHORT DiskClea.004B9293               ;  //关键跳转,改为JNZ
    350. 004B9274  |.  8D4D FC       LEA ECX,DWORD PTR SS:[EBP-4]
    351. 004B9277  |.  BA E8924B00   MOV EDX,DiskClea.004B92E8                ;  diskcln20
    352. 004B927C  |.  8BC3          MOV EAX,EBX
    353. 004B927E  |.  E8 7D12F7FF   CALL DiskClea.0042A500
    354. 004B9283  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    355. 004B9286  |.  E8 69000000   CALL DiskClea.004B92F4
    356. 004B928B  |.  84C0          TEST AL,AL
    357. 004B928D  |.  75 04         JNZ SHORT DiskClea.004B9293
    358. 004B928F  |.  33DB          XOR EBX,EBX
    359. 004B9291  |.  EB 02         JMP SHORT DiskClea.004B9295
    360. 004B9293  |>  B3 01         MOV BL,1
    361. 004B9295  |>  33C0          XOR EAX,EAX
    362. 004B9297  |.  5A            POP EDX
    363. 004B9298  |.  59            POP ECX
    364. 004B9299  |.  59            POP ECX
    365. 004B929A  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    366. 004B929D  |.  68 B2924B00   PUSH DiskClea.004B92B2
    367. 004B92A2  |>  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    368. 004B92A5  |.  E8 CEB6F4FF   CALL DiskClea.00404978
    369. 004B92AA  \.  C3            RETN
    370. 004B92AB   .^ E9 10B0F4FF   JMP DiskClea.004042C0
    371. 004B92B0   .^ EB F0         JMP SHORT DiskClea.004B92A2
    372. 004B92B2   .  8BC3          MOV EAX,EBX
    373. 004B92B4   .  5B            POP EBX
    374. 004B92B5   .  59            POP ECX
    375. 004B92B6   .  5D            POP EBP
    376. 004B92B7   .  C3            RETN
    377. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    378. 004BDDF8  /.  55            PUSH EBP
    379. 004BDDF9  |.  8BEC          MOV EBP,ESP
    380. 004BDDFB  |.  6A 00         PUSH 0
    381. 004BDDFD  |.  53            PUSH EBX
    382. 004BDDFE  |.  56            PUSH ESI
    383. 004BDDFF  |.  57            PUSH EDI
    384. 004BDE00  |.  8BF8          MOV EDI,EAX
    385. 004BDE02  |.  33C0          XOR EAX,EAX
    386. 004BDE04  |.  55            PUSH EBP
    387. 004BDE05  |.  68 B8DE4B00   PUSH DiskClea.004BDEB8
    388. 004BDE0A  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    389. 004BDE0D  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    390. 004BDE10  |.  B2 01         MOV DL,1
    391. 004BDE12  |.  A1 789F4200   MOV EAX,DWORD PTR DS:[429F78]
    392. 004BDE17  |.  E8 5CC2F6FF   CALL DiskClea.0042A078
    393. 004BDE1C  |.  8BF0          MOV ESI,EAX
    394. 004BDE1E  |.  BA 02000080   MOV EDX,80000002
    395. 004BDE23  |.  8BC6          MOV EAX,ESI
    396. 004BDE25  |.  E8 EEC2F6FF   CALL DiskClea.0042A118
    397. 004BDE2A  |.  B3 01         MOV BL,1
    398. 004BDE2C  |.  B1 01         MOV CL,1
    399. 004BDE2E  |.  BA D0DE4B00   MOV EDX,DiskClea.004BDED0                ;  \software\winaso\disk cleaner
    400. 004BDE33  |.  8BC6          MOV EAX,ESI
    401. 004BDE35  |.  E8 42C3F6FF   CALL DiskClea.0042A17C
    402. 004BDE3A  |.  84C0          TEST AL,AL
    403. 004BDE3C  |.  74 1B         JE SHORT DiskClea.004BDE59               ;  //关键跳转,改为JNZ
    404. 004BDE3E  |.  8D4D FC       LEA ECX,DWORD PTR SS:[EBP-4]
    405. 004BDE41  |.  BA F8DE4B00   MOV EDX,DiskClea.004BDEF8                ;  diskcln20
    406. 004BDE46  |.  8BC6          MOV EAX,ESI
    407. 004BDE48  |.  E8 B3C6F6FF   CALL DiskClea.0042A500
    408. 004BDE4D  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    409. 004BDE50  |.  E8 9FB4FFFF   CALL DiskClea.004B92F4
    410. 004BDE55  |.  84C0          TEST AL,AL
    411. 004BDE57  |.  74 49         JE SHORT DiskClea.004BDEA2
    412. 004BDE59  |>  80FB 01       CMP BL,1
    413. 004BDE5C  |.  75 2A         JNZ SHORT DiskClea.004BDE88
    414. 004BDE5E  |.  33D2          XOR EDX,EDX
    415. 004BDE60  |.  8B87 74030000 MOV EAX,DWORD PTR DS:[EDI+374]
    416. 004BDE66  |.  E8 99FAF8FF   CALL DiskClea.0044D904
    417. 004BDE6B  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
    418. 004BDE6E  |.  8B87 8C030000 MOV EAX,DWORD PTR DS:[EDI+38C]
    419. 004BDE74  |.  E8 9BFBF8FF   CALL DiskClea.0044DA14
    420. 004BDE79  |.  B2 01         MOV DL,1
    421. 004BDE7B  |.  8B87 80030000 MOV EAX,DWORD PTR DS:[EDI+380]
    422. 004BDE81  |.  E8 7EFAF8FF   CALL DiskClea.0044D904
    423. 004BDE86  |.  EB 1A         JMP SHORT DiskClea.004BDEA2
    424. 004BDE88  |>  B2 01         MOV DL,1
    425. 004BDE8A  |.  8B87 74030000 MOV EAX,DWORD PTR DS:[EDI+374]
    426. 004BDE90  |.  E8 6FFAF8FF   CALL DiskClea.0044D904
    427. 004BDE95  |.  33D2          XOR EDX,EDX
    428. 004BDE97  |.  8B87 80030000 MOV EAX,DWORD PTR DS:[EDI+380]
    429. 004BDE9D  |.  E8 62FAF8FF   CALL DiskClea.0044D904
    430. 004BDEA2  |>  33C0          XOR EAX,EAX
    431. 004BDEA4  |.  5A            POP EDX
    432. 004BDEA5  |.  59            POP ECX
    433. 004BDEA6  |.  59            POP ECX
    434. 004BDEA7  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    435. 004BDEAA  |.  68 BFDE4B00   PUSH DiskClea.004BDEBF
    436. 004BDEAF  |>  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    437. 004BDEB2  |.  E8 C16AF4FF   CALL DiskClea.00404978
    438. 004BDEB7  \.  C3            RETN
    439. 004BDEB8   .^ E9 0364F4FF   JMP DiskClea.004042C0
    440. 004BDEBD   .^ EB F0         JMP SHORT DiskClea.004BDEAF
    441. 004BDEBF   .  5F            POP EDI
    442. 004BDEC0   .  5E            POP ESI
    443. 004BDEC1   .  5B            POP EBX
    444. 004BDEC2   .  59            POP ECX
    445. 004BDEC3   .  5D            POP EBP
    446. 004BDEC4   .  C3            RETN
    复制代码
    **************************************************************  
    【破解总结】
    --------------------------------------------------------------
    【算法总结】
    注册码长度为16,只能为0-9的数字,除此之外还得满足以下条件
    将注册码每4个数字为一组,分为四组
    (1)后3组的16进制的和大于等于32h
    (2)第2组:注册码第5-8位重新排序,为第6位第7位第5位第8位,重新排序数字的16进制必须是17h的倍数
    (3)第3组:注册码第9-12位重新排序,为第11位第12位第9位第10位,重新排序数字的16进制必须是13h的倍数
    (4)第4组:将注册码第13-16位重新排序,为第16位第15位第14位第13位,重新排序数字的16进制必须是1Fh的倍数
    --------------------------------------------------------------
    【算法注册机
    (略)
    --------------------------------------------------------------
    【爆破地址】
    004B9272  |.  74 1F         JE SHORT DiskClea.004B9293               ;  //关键跳转,改为JNZ
    004BDE3C  |.  74 1B         JE SHORT DiskClea.004BDE59               ;  //关键跳转,改为JNZ
    --------------------------------------------------------------
    【注册信息】
    注册码:1234011412098841
    --------------------------------------------------------------
    感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
    --------------------------------------------------------------
    【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    [ 本帖最后由 tianxj 于 2008-2-13 22:42 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-2-13 21:54:25 | 显示全部楼层
    /:good 感谢楼主分享!学习!支持!!!
    好事,贴个易语言注册机源码/:017
    1. .版本 2

    2. .局部变量 sntmp1, 整数型
    3. .局部变量 sntmp2, 整数型
    4. .局部变量 sntmp3, 整数型
    5. .局部变量 sntmp4, 整数型
    6. .局部变量 sn2, 整数型
    7. .局部变量 sn3, 整数型
    8. .局部变量 sn4, 整数型

    9. 置随机数种子 ()
    10. sntmp1 = 取随机数 (0, 9)
    11. sntmp2 = 取随机数 (0, 9)
    12. sntmp3 = 取随机数 (0, 9)
    13. sntmp4 = 取随机数 (0, 9)
    14. sn2 = 到数值 (到文本 (sntmp1) + 到文本 (sntmp2) + 到文本 (sntmp3) + 到文本 (sntmp4))
    15. .判断循环首 (sn2 % 23 ≠ 0)
    16.     sntmp1 = 取随机数 (0, 9)
    17.     sntmp2 = 取随机数 (0, 9)
    18.     sntmp3 = 取随机数 (0, 9)
    19.     sntmp4 = 取随机数 (0, 9)
    20.     sn2 = 到数值 (到文本 (sntmp1) + 到文本 (sntmp2) + 到文本 (sntmp3) + 到文本 (sntmp4))
    21. .判断循环尾 ()
    22. sn2 = 到数值 (到文本 (sntmp3) + 到文本 (sntmp1) + 到文本 (sntmp2) + 到文本 (sntmp4))
    23. sn3 = 到数值 (到文本 (sntmp1) + 到文本 (sntmp2) + 到文本 (sntmp3) + 到文本 (sntmp4))
    24. .判断循环首 (sn3 % 19 ≠ 0)
    25.     sntmp1 = 取随机数 (0, 9)
    26.     sntmp2 = 取随机数 (0, 9)
    27.     sntmp3 = 取随机数 (0, 9)
    28.     sntmp4 = 取随机数 (0, 9)
    29.     sn3 = 到数值 (到文本 (sntmp1) + 到文本 (sntmp2) + 到文本 (sntmp3) + 到文本 (sntmp4))
    30. .判断循环尾 ()
    31. sn3 = 到数值 (到文本 (sntmp3) + 到文本 (sntmp4) + 到文本 (sntmp1) + 到文本 (sntmp2))
    32. sn4 = 到数值 (到文本 (sntmp1) + 到文本 (sntmp2) + 到文本 (sntmp3) + 到文本 (sntmp4))
    33. .判断循环首 (sn4 % 31 ≠ 0)
    34.     sntmp1 = 取随机数 (0, 9)
    35.     sntmp2 = 取随机数 (0, 9)
    36.     ' 为防止出现极端取随机数,都是“000000000000”
    37.     ' 可以改为sntmp2 = 取随机数 (5, 9)
    38.     ' 不过这样的情况几乎是不可能的
    39.     sntmp3 = 取随机数 (0, 9)
    40.     sntmp4 = 取随机数 (0, 9)
    41.     sn4 = 到数值 (到文本 (sntmp1) + 到文本 (sntmp2) + 到文本 (sntmp3) + 到文本 (sntmp4))
    42. .判断循环尾 ()
    43. sn4 = 到数值 (到文本 (sntmp4) + 到文本 (sntmp3) + 到文本 (sntmp2) + 到文本 (sntmp1))

    44. 编辑框1.内容 = 到文本 (取随机数 (1000, 9999)) + 到文本 (sn2) + 到文本 (sn3) + 到文本 (sn4)

    45. ' 注册码长度为16,只能为0-9的数字,除此之外还得满足以下条件
    46. ' 将注册码每4个数字为一组,分为四组
    47. ' (1)后3组的16进制的和大于等于32h
    48. ' (2)第2组:注册码第5-8位重新排序,为第6位第7位第5位第8位,重新排序数字的16进制必须是17h的倍数
    49. ' (3)第3组:注册码第9-11位重新排序,为第11位第12位第9位第10位,重新排序数字的16进制必须是13h的倍数
    50. ' (4)第4组:将注册码第12-16位重新排序,为第16位第15位第14位第13位,重新排序数字的16进制必须是1Fh的倍数
    复制代码

    [ 本帖最后由 ZHOU2X 于 2008-2-13 22:53 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-2-16 12:20:37 | 显示全部楼层
    好教材,谢谢楼上两位!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-2-17 08:56:51 | 显示全部楼层
    谢谢楼主,真的很好,下了个收藏!!!!!!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-6-5 10:47
  • 签到天数: 1623 天

    [LV.Master]伴坛终老

    发表于 2008-3-4 17:08:42 | 显示全部楼层
    http://www.winaso.com/
    下载地址/:017
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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