飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4096|回复: 2

[原创] 4U WMA MP3 Converter 6.2.6算法分析

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

    [LV.1]初来乍到

    发表于 2008-7-9 16:49:27 | 显示全部楼层 |阅读模式
    【破文标题】4U WMA MP3 Converter 6.2.6算法分析
    【破文作者】tianxj
    【作者邮箱】[email protected]
    【作者主页】WwW.ChiNaPYG.CoM
    破解工具】PEiD,OD
    【破解平台】Windows XP
    【软件名称】4U WMA MP3 Converter 6.2.6
    【软件大小】6217KB
    【软件类别】国外软件/音频处理  
    【软件授权】共享版
    【软件语言】英文
    【运行环境】Win9x/Me/NT/2000/XP/2003
    【更新时间】2008-4-21
    【原版下载】华军软件园
    【保护方式】注册码
    【软件简介】是一套具有强大功能的音乐格式转换工具,能在MP3、WAV、WMA、OGG 及VOX音乐格式之间互相转换,还能将MPC, AVI, MP1, MP2, MPEG, MPG, MPA, g721, g726, g723 or RAW格式转换成MP3, WAV, WMA, OGG, or VOX 格式。其他功能包括显示/编辑ID3卷标,播放MP3, WMA, WAV, OGG, VOX, MPC, AVI, MP1, MP2, MPEG, MPG, MPA, g721, g726, g723 or RAW等。而且非常容易操作,轻松透过鼠标右键就可以完成所有动作。
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    初学破解与编程,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------
    【破解内容】
    --------------------------------------------------------------
    **************************************************************
    一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
    "Invalid Registration Code! Please enter an available Registration Code."
    **************************************************************
    二、用PEiD对WMAMP3Converter.exe查壳,为 Borland Delphi 6.0 - 7.0
    **************************************************************
    三、运行OD,打开WMAMP3Converter.exe,右键—超级字串参考—查找ASCII.
    发现"Invalid Registration Code! Please enter an available Registration Code."
    ==============================================================
    1. 0048DA60  /$  55            PUSH EBP
    2. 0048DA61  |.  8BEC          MOV EBP,ESP
    3. 0048DA63  |.  6A 00         PUSH 0
    4. 0048DA65  |.  6A 00         PUSH 0
    5. 0048DA67  |.  6A 00         PUSH 0
    6. 0048DA69  |.  6A 00         PUSH 0
    7. 0048DA6B  |.  6A 00         PUSH 0
    8. 0048DA6D  |.  53            PUSH EBX
    9. 0048DA6E  |.  56            PUSH ESI
    10. 0048DA6F  |.  894D F8       MOV DWORD PTR SS:[EBP-8],ECX             ;  //试练码
    11. 0048DA72  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX             ;  //用户名
    12. 0048DA75  |.  8BF0          MOV ESI,EAX
    13. 0048DA77  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //用户名
    14. 0048DA7A  |.  E8 0171F7FF   CALL WMAMP3Co.00404B80
    15. 0048DA7F  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //试练码
    16. 0048DA82  |.  E8 F970F7FF   CALL WMAMP3Co.00404B80
    17. 0048DA87  |.  33C0          XOR EAX,EAX
    18. 0048DA89  |.  55            PUSH EBP
    19. 0048DA8A  |.  68 57DB4800   PUSH WMAMP3Co.0048DB57
    20. 0048DA8F  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    21. 0048DA92  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    22. 0048DA95  |.  33DB          XOR EBX,EBX
    23. 0048DA97  |.  33D2          XOR EDX,EDX
    24. 0048DA99  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //用户名
    25. 0048DA9C  |.  E8 3372F7FF   CALL WMAMP3Co.00404CD4
    26. 0048DAA1  |.  85C0          TEST EAX,EAX
    27. 0048DAA3  |.  7E 0B         JLE SHORT WMAMP3Co.0048DAB0
    28. 0048DAA5  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    29. 0048DAA8  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
    30. 0048DAAB  |.  E8 C86CF7FF   CALL WMAMP3Co.00404778
    31. 0048DAB0  |>  8D4D F4       LEA ECX,DWORD PTR SS:[EBP-C]
    32. 0048DAB3  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]             ;  //用户名
    33. 0048DAB6  |.  8BC6          MOV EAX,ESI
    34. 0048DAB8  |.  E8 2F010000   CALL WMAMP3Co.0048DBEC                   ;  //算法CALL
    35. 0048DABD  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  //真码
    36. 0048DAC0  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //试练码
    37. 0048DAC3  |.  E8 DCAFF7FF   CALL WMAMP3Co.00408AA4                   ;  //比较CALL
    38. 0048DAC8  |.  85C0          TEST EAX,EAX
    39. 0048DACA  |.  75 41         JNZ SHORT WMAMP3Co.0048DB0D              ;  //关键跳转
    40. 0048DACC  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
    41. 0048DACF  |.  8BC6          MOV EAX,ESI
    42. 0048DAD1  |.  E8 DAF3FFFF   CALL WMAMP3Co.0048CEB0
    43. 0048DAD6  |.  84C0          TEST AL,AL
    44. 0048DAD8  |.  74 62         JE SHORT WMAMP3Co.0048DB3C
    45. 0048DADA  |.  B3 01         MOV BL,1
    46. 0048DADC  |.  6A 40         PUSH 40
    47. 0048DADE  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
    48. 0048DAE1  |.  A1 ECEF4B00   MOV EAX,DWORD PTR DS:[4BEFEC]
    49. 0048DAE6  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    50. 0048DAE8  |.  E8 0B97FDFF   CALL WMAMP3Co.004671F8
    51. 0048DAED  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    52. 0048DAF0  |.  E8 9B70F7FF   CALL WMAMP3Co.00404B90
    53. 0048DAF5  |.  50            PUSH EAX                                 ; |Title
    54. 0048DAF6  |.  68 68DB4800   PUSH WMAMP3Co.0048DB68                   ; |registered successfully, thanks for your registration.
    55. 0048DAFB  |.  A1 ECEF4B00   MOV EAX,DWORD PTR DS:[4BEFEC]            ; |
    56. 0048DB00  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]               ; |
    57. 0048DB02  |.  8B40 30       MOV EAX,DWORD PTR DS:[EAX+30]            ; |
    58. 0048DB05  |.  50            PUSH EAX                                 ; |hOwner
    59. 0048DB06  |.  E8 4D9BF7FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    60. 0048DB0B  |.  EB 2F         JMP SHORT WMAMP3Co.0048DB3C
    61. 0048DB0D  |>  6A 10         PUSH 10
    62. 0048DB0F  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
    63. 0048DB12  |.  A1 ECEF4B00   MOV EAX,DWORD PTR DS:[4BEFEC]
    64. 0048DB17  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    65. 0048DB19  |.  E8 DA96FDFF   CALL WMAMP3Co.004671F8
    66. 0048DB1E  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
    67. 0048DB21  |.  E8 6A70F7FF   CALL WMAMP3Co.00404B90
    68. 0048DB26  |.  50            PUSH EAX                                 ; |Title
    69. 0048DB27  |.  68 A0DB4800   PUSH WMAMP3Co.0048DBA0                   ; |invalid registration code! \n\nplease enter an available registration code.
    70. 0048DB2C  |.  A1 ECEF4B00   MOV EAX,DWORD PTR DS:[4BEFEC]            ; |
    71. 0048DB31  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]               ; |
    72. 0048DB33  |.  8B40 30       MOV EAX,DWORD PTR DS:[EAX+30]            ; |
    73. 0048DB36  |.  50            PUSH EAX                                 ; |hOwner
    74. 0048DB37  |.  E8 1C9BF7FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    75. 0048DB3C  |>  33C0          XOR EAX,EAX
    76. 0048DB3E  |.  5A            POP EDX
    77. 0048DB3F  |.  59            POP ECX
    78. 0048DB40  |.  59            POP ECX
    79. 0048DB41  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    80. 0048DB44  |.  68 5EDB4800   PUSH WMAMP3Co.0048DB5E
    81. 0048DB49  |>  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
    82. 0048DB4C  |.  BA 05000000   MOV EDX,5
    83. 0048DB51  |.  E8 AE6BF7FF   CALL WMAMP3Co.00404704
    84. 0048DB56  \.  C3            RETN
    85. 0048DB57   .^ E9 0865F7FF   JMP WMAMP3Co.00404064
    86. 0048DB5C   .^ EB EB         JMP SHORT WMAMP3Co.0048DB49
    87. 0048DB5E   .  8BC3          MOV EAX,EBX
    88. 0048DB60   .  5E            POP ESI
    89. 0048DB61   .  5B            POP EBX
    90. 0048DB62   .  8BE5          MOV ESP,EBP
    91. 0048DB64   .  5D            POP EBP
    92. 0048DB65   .  C3            RETN
    93. ==============================================================
    94. 0048DBEC  /$  55            PUSH EBP
    95. 0048DBED  |.  8BEC          MOV EBP,ESP
    96. 0048DBEF  |.  6A 00         PUSH 0
    97. 0048DBF1  |.  6A 00         PUSH 0
    98. 0048DBF3  |.  6A 00         PUSH 0
    99. 0048DBF5  |.  6A 00         PUSH 0
    100. 0048DBF7  |.  6A 00         PUSH 0
    101. 0048DBF9  |.  6A 00         PUSH 0
    102. 0048DBFB  |.  6A 00         PUSH 0
    103. 0048DBFD  |.  6A 00         PUSH 0
    104. 0048DBFF  |.  53            PUSH EBX
    105. 0048DC00  |.  56            PUSH ESI
    106. 0048DC01  |.  57            PUSH EDI
    107. 0048DC02  |.  8BD9          MOV EBX,ECX
    108. 0048DC04  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX             ;  //用户名
    109. 0048DC07  |.  8BF8          MOV EDI,EAX
    110. 0048DC09  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //用户名
    111. 0048DC0C  |.  E8 6F6FF7FF   CALL WMAMP3Co.00404B80
    112. 0048DC11  |.  33C0          XOR EAX,EAX
    113. 0048DC13  |.  55            PUSH EBP
    114. 0048DC14  |.  68 47DD4800   PUSH WMAMP3Co.0048DD47
    115. 0048DC19  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    116. 0048DC1C  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    117. 0048DC1F  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    118. 0048DC22  |.  BA 60DD4800   MOV EDX,WMAMP3Co.0048DD60                ;  lb)a6fcw9k9
    119. 0048DC27  |.  E8 746DF7FF   CALL WMAMP3Co.004049A0                   ;  //用户名与"Lb)a6Fcw9K9"相连
    120. 0048DC2C  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //相连字符串
    121. 0048DC2F  |.  E8 646DF7FF   CALL WMAMP3Co.00404998                   ;  //取相连字符串长度
    122. 0048DC34  |.  8BF0          MOV ESI,EAX                              ;  //ESI=EAX=相连字符串长度
    123. 0048DC36  |.  D1FE          SAR ESI,1                                ;  //ESI右移一位
    124. 0048DC38  |.  79 03         JNS SHORT WMAMP3Co.0048DC3D
    125. 0048DC3A  |.  83D6 00       ADC ESI,0
    126. 0048DC3D  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    127. 0048DC40  |.  50            PUSH EAX
    128. 0048DC41  |.  8BCE          MOV ECX,ESI                              ;  //ECX=ESI
    129. 0048DC43  |.  BA 01000000   MOV EDX,1                                ;  //EDX=1
    130. 0048DC48  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //相连字符串
    131. 0048DC4B  |.  E8 A06FF7FF   CALL WMAMP3Co.00404BF0                   ;  //取相连字符串左边ECX位
    132. 0048DC50  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  //相连字符串左边ECX位,设为X1
    133. 0048DC53  |.  50            PUSH EAX
    134. 0048DC54  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
    135. 0048DC57  |.  50            PUSH EAX
    136. 0048DC58  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //相连字符串
    137. 0048DC5B  |.  E8 386DF7FF   CALL WMAMP3Co.00404998                   ;  //取相连字符串长度
    138. 0048DC60  |.  8BC8          MOV ECX,EAX                              ;  //ECX=EAX=相连字符串长度
    139. 0048DC62  |.  8D56 01       LEA EDX,DWORD PTR DS:[ESI+1]
    140. 0048DC65  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //相连字符串
    141. 0048DC68  |.  E8 836FF7FF   CALL WMAMP3Co.00404BF0                   ;  //取相连字符串余下位数
    142. 0048DC6D  |.  8B55 EC       MOV EDX,DWORD PTR SS:[EBP-14]            ;  //相连字符串余下位数,设为X2
    143. 0048DC70  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    144. 0048DC73  |.  59            POP ECX                                  ;  //字符串X1
    145. 0048DC74  |.  E8 6B6DF7FF   CALL WMAMP3Co.004049E4                   ;  //取字符串X1长度
    146. 0048DC79  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    147. 0048DC7C  |.  50            PUSH EAX
    148. 0048DC7D  |.  B9 0A000000   MOV ECX,0A                               ;  //ECX=0A
    149. 0048DC82  |.  BA 01000000   MOV EDX,1                                ;  //EDX=1
    150. 0048DC87  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //字符串X2+字符串X1,设为X3
    151. 0048DC8A  |.  E8 616FF7FF   CALL WMAMP3Co.00404BF0                   ;  //取字符串X3左边10位,设为X4
    152. 0048DC8F  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
    153. 0048DC92  |.  50            PUSH EAX
    154. 0048DC93  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //字符串X3
    155. 0048DC96  |.  E8 FD6CF7FF   CALL WMAMP3Co.00404998                   ;  //取字符串X3长度
    156. 0048DC9B  |.  8BC8          MOV ECX,EAX                              ;  //ECX=EAX=字符串X3长度
    157. 0048DC9D  |.  BA 06000000   MOV EDX,6                                ;  //EDX=6
    158. 0048DCA2  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //字符串X3
    159. 0048DCA5  |.  E8 466FF7FF   CALL WMAMP3Co.00404BF0                   ;  //取字符串X3的第6位以后的字符,设为X5
    160. 0048DCAA  |.  837D F4 00    CMP DWORD PTR SS:[EBP-C],0
    161. 0048DCAE  |.  75 10         JNZ SHORT WMAMP3Co.0048DCC0              ;  //字符串X5不为空则跳
    162. 0048DCB0  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
    163. 0048DCB3  |.  BA 60DD4800   MOV EDX,WMAMP3Co.0048DD60                ;  lb)a6fcw9k9
    164. 0048DCB8  |.  8B4D F8       MOV ECX,DWORD PTR SS:[EBP-8]
    165. 0048DCBB  |.  E8 246DF7FF   CALL WMAMP3Co.004049E4
    166. 0048DCC0  |>  53            PUSH EBX
    167. 0048DCC1  |.  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]             ;  //字符串X5
    168. 0048DCC4  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]             ;  //字符串X4
    169. 0048DCC7  |.  8BC7          MOV EAX,EDI
    170. 0048DCC9  |.  E8 92F0FFFF   CALL WMAMP3Co.0048CD60                   ;  //又一个算法CALL
    171. 0048DCCE  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
    172. 0048DCD1  |.  50            PUSH EAX
    173. 0048DCD2  |.  8B03          MOV EAX,DWORD PTR DS:[EBX]               ;  //字符串Y1
    174. 0048DCD4  |.  B9 05000000   MOV ECX,5
    175. 0048DCD9  |.  BA 01000000   MOV EDX,1
    176. 0048DCDE  |.  E8 0D6FF7FF   CALL WMAMP3Co.00404BF0
    177. 0048DCE3  |.  FF75 E8       PUSH DWORD PTR SS:[EBP-18]               ;  //字符串Y1的1-5位
    178. 0048DCE6  |.  68 74DD4800   PUSH WMAMP3Co.0048DD74                   ;  -
    179. 0048DCEB  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
    180. 0048DCEE  |.  50            PUSH EAX
    181. 0048DCEF  |.  8B03          MOV EAX,DWORD PTR DS:[EBX]               ;  //字符串Y1
    182. 0048DCF1  |.  B9 05000000   MOV ECX,5
    183. 0048DCF6  |.  BA 06000000   MOV EDX,6
    184. 0048DCFB  |.  E8 F06EF7FF   CALL WMAMP3Co.00404BF0
    185. 0048DD00  |.  FF75 E4       PUSH DWORD PTR SS:[EBP-1C]               ;  //字符串Y1的6-10位
    186. 0048DD03  |.  68 74DD4800   PUSH WMAMP3Co.0048DD74                   ;  -
    187. 0048DD08  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    188. 0048DD0B  |.  50            PUSH EAX
    189. 0048DD0C  |.  8B03          MOV EAX,DWORD PTR DS:[EBX]               ;  //字符串Y1
    190. 0048DD0E  |.  B9 05000000   MOV ECX,5
    191. 0048DD13  |.  BA 0B000000   MOV EDX,0B
    192. 0048DD18  |.  E8 D36EF7FF   CALL WMAMP3Co.00404BF0
    193. 0048DD1D  |.  FF75 E0       PUSH DWORD PTR SS:[EBP-20]               ;  //字符串Y1的11-15位
    194. 0048DD20  |.  8BC3          MOV EAX,EBX
    195. 0048DD22  |.  BA 05000000   MOV EDX,5
    196. 0048DD27  |.  E8 2C6DF7FF   CALL WMAMP3Co.00404A58
    197. 0048DD2C  |.  33C0          XOR EAX,EAX
    198. 0048DD2E  |.  5A            POP EDX
    199. 0048DD2F  |.  59            POP ECX
    200. 0048DD30  |.  59            POP ECX
    201. 0048DD31  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    202. 0048DD34  |.  68 4EDD4800   PUSH WMAMP3Co.0048DD4E
    203. 0048DD39  |>  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    204. 0048DD3C  |.  BA 08000000   MOV EDX,8
    205. 0048DD41  |.  E8 BE69F7FF   CALL WMAMP3Co.00404704
    206. 0048DD46  \.  C3            RETN
    207. 0048DD47   .^ E9 1863F7FF   JMP WMAMP3Co.00404064
    208. 0048DD4C   .^ EB EB         JMP SHORT WMAMP3Co.0048DD39
    209. 0048DD4E   .  5F            POP EDI
    210. 0048DD4F   .  5E            POP ESI
    211. 0048DD50   .  5B            POP EBX
    212. 0048DD51   .  8BE5          MOV ESP,EBP
    213. 0048DD53   .  5D            POP EBP
    214. 0048DD54   .  C3            RETN
    215. ==============================================================
    216. 0048CD60  /$  55            PUSH EBP
    217. 0048CD61  |.  8BEC          MOV EBP,ESP
    218. 0048CD63  |.  83C4 E0       ADD ESP,-20
    219. 0048CD66  |.  53            PUSH EBX
    220. 0048CD67  |.  56            PUSH ESI
    221. 0048CD68  |.  57            PUSH EDI
    222. 0048CD69  |.  33DB          XOR EBX,EBX
    223. 0048CD6B  |.  895D E0       MOV DWORD PTR SS:[EBP-20],EBX
    224. 0048CD6E  |.  895D F0       MOV DWORD PTR SS:[EBP-10],EBX
    225. 0048CD71  |.  894D F8       MOV DWORD PTR SS:[EBP-8],ECX
    226. 0048CD74  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX
    227. 0048CD77  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //字符串X4
    228. 0048CD7A  |.  E8 017EF7FF   CALL WMAMP3Co.00404B80
    229. 0048CD7F  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //字符串X5
    230. 0048CD82  |.  E8 F97DF7FF   CALL WMAMP3Co.00404B80
    231. 0048CD87  |.  33C0          XOR EAX,EAX
    232. 0048CD89  |.  55            PUSH EBP
    233. 0048CD8A  |.  68 7CCE4800   PUSH WMAMP3Co.0048CE7C
    234. 0048CD8F  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    235. 0048CD92  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    236. 0048CD95  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //字符串X5
    237. 0048CD98  |.  E8 FB7BF7FF   CALL WMAMP3Co.00404998                   ;  //取字符串X5长度
    238. 0048CD9D  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX             ;  //[EBP-C]=EAX=字符串X5长度
    239. 0048CDA0  |.  837D F4 00    CMP DWORD PTR SS:[EBP-C],0
    240. 0048CDA4  |.  75 0D         JNZ SHORT WMAMP3Co.0048CDB3              ;  //字符串X5长度不为0则跳
    241. 0048CDA6  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    242. 0048CDA9  |.  BA 94CE4800   MOV EDX,WMAMP3Co.0048CE94                ;  think space
    243. 0048CDAE  |.  E8 C579F7FF   CALL WMAMP3Co.00404778
    244. 0048CDB3  |>  33F6          XOR ESI,ESI
    245. 0048CDB5  |.  BB 00010000   MOV EBX,100                              ;  //EBX=100
    246. 0048CDBA  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    247. 0048CDBD  |.  50            PUSH EAX                                 ; /Arg1
    248. 0048CDBE  |.  C745 E4 00010>MOV DWORD PTR SS:[EBP-1C],100            ; |
    249. 0048CDC5  |.  C645 E8 00    MOV BYTE PTR SS:[EBP-18],0               ; |
    250. 0048CDC9  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]            ; |
    251. 0048CDCC  |.  33C9          XOR ECX,ECX                              ; |//ECX=0
    252. 0048CDCE  |.  B8 A8CE4800   MOV EAX,WMAMP3Co.0048CEA8                ; |%1.2x
    253. 0048CDD3  |.  E8 30CFF7FF   CALL WMAMP3Co.00409D08                   ; \WMAMP3Co.00409D08
    254. 0048CDD8  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //字符串X4
    255. 0048CDDB  |.  E8 B87BF7FF   CALL WMAMP3Co.00404998                   ;  //取字符串X4长度
    256. 0048CDE0  |.  8BF8          MOV EDI,EAX                              ;  //EDI=EAX=字符串X4长度
    257. 0048CDE2  |.  85FF          TEST EDI,EDI
    258. 0048CDE4  |.  7E 60         JLE SHORT WMAMP3Co.0048CE46
    259. 0048CDE6  |.  C745 EC 01000>MOV DWORD PTR SS:[EBP-14],1              ;  //[EBP-14]=1
    260. 0048CDED  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4]            ;  //字符串X4
    261. 0048CDF0  |.  8B55 EC       |MOV EDX,DWORD PTR SS:[EBP-14]           ;  //EDX=[EBP-14]
    262. 0048CDF3  |.  0FB64410 FF   |MOVZX EAX,BYTE PTR DS:[EAX+EDX-1]       ;  //逐位取字符串X4的ASC值
    263. 0048CDF8  |.  03C3          |ADD EAX,EBX                             ;  //EAX=EAX+EBX
    264. 0048CDFA  |.  B9 FF000000   |MOV ECX,0FF                             ;  //ECX=0FF
    265. 0048CDFF  |.  99            |CDQ
    266. 0048CE00  |.  F7F9          |IDIV ECX                                ;  //EAX/ECX,商送EAX,余送EDX
    267. 0048CE02  |.  8BDA          |MOV EBX,EDX                             ;  //EBX=EDX
    268. 0048CE04  |.  3B75 F4       |CMP ESI,DWORD PTR SS:[EBP-C]            ;  //ESI与[EBP-C]比较
    269. 0048CE07  |.  7D 03         |JGE SHORT WMAMP3Co.0048CE0C             ;  //若大于则跳
    270. 0048CE09  |.  46            |INC ESI                                 ;  //ESI=ESI+1
    271. 0048CE0A  |.  EB 05         |JMP SHORT WMAMP3Co.0048CE11
    272. 0048CE0C  |>  BE 01000000   |MOV ESI,1                               ;  //ESI=1
    273. 0048CE11  |>  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]            ;  //字符串X5
    274. 0048CE14  |.  0FB64430 FF   |MOVZX EAX,BYTE PTR DS:[EAX+ESI-1]       ;  //逐位取字符串X5的ASC值
    275. 0048CE19  |.  33D8          |XOR EBX,EAX                             ;  //EBX=EBX xor EAX
    276. 0048CE1B  |.  8D45 E0       |LEA EAX,DWORD PTR SS:[EBP-20]
    277. 0048CE1E  |.  50            |PUSH EAX                                ; /Arg1
    278. 0048CE1F  |.  895D E4       |MOV DWORD PTR SS:[EBP-1C],EBX           ; |//[EBP-1C]=EBX
    279. 0048CE22  |.  C645 E8 00    |MOV BYTE PTR SS:[EBP-18],0              ; |
    280. 0048CE26  |.  8D55 E4       |LEA EDX,DWORD PTR SS:[EBP-1C]           ; |
    281. 0048CE29  |.  33C9          |XOR ECX,ECX                             ; |//ECX=0
    282. 0048CE2B  |.  B8 A8CE4800   |MOV EAX,WMAMP3Co.0048CEA8               ; |%1.2x
    283. 0048CE30  |.  E8 D3CEF7FF   |CALL WMAMP3Co.00409D08                  ; \//将EBX转为字符形式
    284. 0048CE35  |.  8B55 E0       |MOV EDX,DWORD PTR SS:[EBP-20]           ;  //EBX的字符形式
    285. 0048CE38  |.  8D45 F0       |LEA EAX,DWORD PTR SS:[EBP-10]
    286. 0048CE3B  |.  E8 607BF7FF   |CALL WMAMP3Co.004049A0                  ;  //相连
    287. 0048CE40  |.  FF45 EC       |INC DWORD PTR SS:[EBP-14]               ;  //[EBP-14]=[EBP-14]+1
    288. 0048CE43  |.  4F            |DEC EDI                                 ;  //EDI=EDI-1
    289. 0048CE44  |.^ 75 A7         \JNZ SHORT WMAMP3Co.0048CDED             ;  //循环
    290. 0048CE46  |>  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
    291. 0048CE49  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]            ;  //相连的字符串,设为Y1
    292. 0048CE4C  |.  E8 E378F7FF   CALL WMAMP3Co.00404734
    293. 0048CE51  |.  33C0          XOR EAX,EAX
    294. 0048CE53  |.  5A            POP EDX
    295. 0048CE54  |.  59            POP ECX
    296. 0048CE55  |.  59            POP ECX
    297. 0048CE56  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    298. 0048CE59  |.  68 83CE4800   PUSH WMAMP3Co.0048CE83
    299. 0048CE5E  |>  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    300. 0048CE61  |.  E8 7A78F7FF   CALL WMAMP3Co.004046E0
    301. 0048CE66  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    302. 0048CE69  |.  E8 7278F7FF   CALL WMAMP3Co.004046E0
    303. 0048CE6E  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    304. 0048CE71  |.  BA 02000000   MOV EDX,2
    305. 0048CE76  |.  E8 8978F7FF   CALL WMAMP3Co.00404704
    306. 0048CE7B  \.  C3            RETN
    307. 0048CE7C   .^ E9 E371F7FF   JMP WMAMP3Co.00404064
    308. 0048CE81   .^ EB DB         JMP SHORT WMAMP3Co.0048CE5E
    309. 0048CE83   .  5F            POP EDI
    310. 0048CE84   .  5E            POP ESI
    311. 0048CE85   .  5B            POP EBX
    312. 0048CE86   .  8BE5          MOV ESP,EBP
    313. 0048CE88   .  5D            POP EBP
    314. 0048CE89   .  C2 0400       RETN 4
    复制代码
    **************************************************************  
    【破解总结】
    --------------------------------------------------------------
    【算法总结】
    将用户名变形,分成两部分计算,最后将计算结果1-5位,6-10位,11-15位用"-"相连即是注册码
    --------------------------------------------------------------
    【算法注册机
    〖VB代码〗
    Private Sub Command1_Click()
    If Len(Text1.Text) = 0 Then
       Text2.Text = "请输入用户名!"
    Else  
      A = Text1.Text
      B = "Lb)a6Fcw9K9"
      C = A & B
      D = Len(C) \ 2
      X1 = Left(C, D)
      X2 = Right(C, Len(C) - D)
      X3 = X2 & X1
      X4 = Left(X3, 10)
      X5 = Mid(X3, 6, Len(C) - 5)
      E = 256
      Y = Hex(E)
      j = 0
       For i = 1 To (Len(X4))
       F = Asc(Mid(X4, i, 1))
       F = F + E
       F = F Mod 255
       If j >= Len(X5) Then
       j = 1
       Else
       j = j + 1
       End If
       G = Asc(Mid(X5, j, 1))
       E = F Xor G
       H = Hex(E)
       For k = 1 To (2 - Len(H))
       H = "0" & H
       Next
       Y = Y & H
       Next
       Text2.Text = Mid(Y, 1, 5) & "-" & Mid(Y, 6, 5) & "-" & Mid(Y, 11, 5)
    End If
    End Sub
    --------------------------------------------------------------
    【内存注册机】
    中断地址 0048DAC3
    中断次数 1
    第一字节 E8
    指令长度 5

    内存方式-寄存器-EDX
    --------------------------------------------------------------
    【注册信息】
    用户名:abcdef
    注册码:1005D-87F60-4061F
    --------------------------------------------------------------
    感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
    --------------------------------------------------------------
    【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    评分

    参与人数 1威望 +80 飘云币 +80 收起 理由
    hj2008mt + 80 + 80 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-7-9 20:03:02 | 显示全部楼层
    还没有看懂,保存下来认真看,看完再谈体会。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-7-10 13:59:03 | 显示全部楼层
    注释排版有点不爽...不过还是支持一下..辛苦了~~
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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