首页
社区
课程
招聘
[旧帖] HiFi MP3 WMA Converter 3.00 算法分析 0.00雪花
发表于: 2008-5-2 00:18 3480

[旧帖] HiFi MP3 WMA Converter 3.00 算法分析 0.00雪花

2008-5-2 00:18
3480
1
2
3
4
5
6
7
8
9
10
11
12
13
[ 破文标题 ] HiFi MP3 WMA Converter 3.00 算法分析
[ 破文作者 ] 絕戀de煩神
[ 作者邮箱 ] [email]sos_ftp@yahoo.com.cn[/email]
[ 作者主页 ] [url]http://hi.baidu.com/[/url]天蝎型男
[ 破解工具 ] Peid,OllyDBG
[ 破解平台 ] WinXp SP2
[ 软件名称 ] HiFi MP3 WMA Converter 3.00
[ 软件大小 ] 2481KB
[ 原版下载 ] [url]http://www.newhua.com/soft/25824.htm[/url]
[ 保护方式 ] 用户名+注册码
[ 软件简介 ] 一款简单实用的MP3和WMA的转换工具, 在转换的过程中,你可以进行重新采样,也可以重新选择音频的比特率和频率,支持VBR和CBR。 如果有大量的音乐需要转换,你可以选择适用它的批量转换功能。
[ 破解声明 ] 小菜鳥一只,興趣所至,若有錯誤之處,請老鳥們多加指點。
-----------------------------------------------------

[ 破解过程 ]-----------------------------------------
1
2
3
4
5
首先咱们来运行一下程序,假注册一下。发现有错误提示:Invalid register code! Please retry!
 
再来用PEID来查一下壳,发现程序没加壳:Borland Delphi 6.0 - 7.0 幸运啊。嘻嘻
 
最后,就到我们的主角出场了。嘻嘻。。用OD载入分析:先来查找错误提示-Invalid register code! Please retry! 一共找到4处。我们来双击最上面的那一个错误提示字符串。就会来到下面的代码段了。在段首这里按F2下断后F9运行程序,假注册一下后就会停在这里,就可以继续往下分析了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
00495918  |.  55            PUSH EBP                                 ;F2下断,F9运行
00495919  |.  68 2B5B4900   PUSH HiFi_MP3.00495B2B
0049591E  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00495921  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00495924  |.  B3 01         MOV BL,1
00495926  |.  FF05 8CCD4A00 INC DWORD PTR DS:[4ACD8C]
0049592C  |.  833D 8CCD4A00>CMP DWORD PTR DS:[4ACD8C],3
00495933  |.  7E 1D         JLE SHORT HiFi_MP3.00495952
00495935  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
00495937  |.  66:8B0D 3C5B4>MOV CX,WORD PTR DS:[495B3C]              ; |
0049593E  |.  B2 02         MOV DL,2                                 ; |
00495940  |.  B8 485B4900   MOV EAX,HiFi_MP3.00495B48                ; |Invalid register code! Please retry!
00495945  |.  E8 0AF6F9FF   CALL HiFi_MP3.00434F54                   ; \HiFi_MP3.00434F54
0049594A  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0049594D  |.  E8 BA79FEFF   CALL HiFi_MP3.0047D30C
00495952  |>  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
00495955  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00495958  |.  8B80 10030000 MOV EAX,DWORD PTR DS:[EAX+310]
0049595E  |.  E8 41B2FCFF   CALL HiFi_MP3.00460BA4                   ;  取用户名长度
00495963  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  把用户名送给EAX
00495966  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
00495969  |.  E8 DE2EF7FF   CALL HiFi_MP3.0040884C
0049596E  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
00495971  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  把用户名送给EAX
00495974  |.  E8 072FF7FF   CALL HiFi_MP3.00408880
00495979  |.  8B55 EC       MOV EDX,DWORD PTR SS:[EBP-14]            ;  把用户名送给EDX
0049597C  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
0049597F  |.  E8 04E9F6FF   CALL HiFi_MP3.00404288
00495984  |.  BF 15000000   MOV EDI,15                               ;  --------------------------
00495989  |.  BE C8A74A00   MOV ESI,HiFi_MP3.004AA7C8                ;  TDVDS6-MBN3
0049598E  |>  8B45 F8       /MOV EAX,DWORD PTR SS:[EBP-8]            ;  把用户名送给EAX
00495991  |.  8B16          |MOV EDX,DWORD PTR DS:[ESI]              ;  把固定的用户名送给EDX
00495993  |.  E8 64ECF6FF   |CALL HiFi_MP3.004045FC                  ;  這里真假用户名比较
00495998  |.  75 04         |JNZ SHORT HiFi_MP3.0049599E             ;  不相等就跳
0049599A  |.  33DB          |XOR EBX,EBX                             ;  EBX清零
0049599C  |.  EB 06         |JMP SHORT HiFi_MP3.004959A4
0049599E  |>  83C6 04       |ADD ESI,4                               ;  ESI+4
004959A1  |.  4F            |DEC EDI                                 ;  EDI-1
004959A2  |.^ 75 EA         \JNZ SHORT HiFi_MP3.0049598E             ;  --------循环比较---------
004959A4  |>  84DB          TEST BL,BL
004959A6      74 1A         JE SHORT HiFi_MP3.004959C2
004959A8  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
004959AA  |.  66:8B0D 3C5B4>MOV CX,WORD PTR DS:[495B3C]              ; |
004959B1  |.  B2 02         MOV DL,2                                 ; |
004959B3  |.  B8 485B4900   MOV EAX,HiFi_MP3.00495B48                ; |Invalid register code! Please retry!
004959B8  |.  E8 97F5F9FF   CALL HiFi_MP3.00434F54                   ; \HiFi_MP3.00434F54
004959BD  |.  E9 2E010000   JMP HiFi_MP3.00495AF0
004959C2  |>  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
004959C5  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004959C8  |.  8B80 14030000 MOV EAX,DWORD PTR DS:[EAX+314]
004959CE  |.  E8 D1B1FCFF   CALL HiFi_MP3.00460BA4                   ;  取假码长度
004959D3  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]            ;  把假码送给EAX
004959D6  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
004959D9  |.  E8 6E2EF7FF   CALL HiFi_MP3.0040884C
004959DE  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
004959E1  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  把假码送给EAX
004959E4  |.  E8 972EF7FF   CALL HiFi_MP3.00408880
004959E9  |.  8B55 E4       MOV EDX,DWORD PTR SS:[EBP-1C]            ;  把假码送给EDX
004959EC  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
004959EF  |.  E8 94E8F6FF   CALL HiFi_MP3.00404288
004959F4  |.  837D F8 00    CMP DWORD PTR SS:[EBP-8],0               ;  用户名和0比较
004959F8  |.  0F84 F2000000 JE HiFi_MP3.00495AF0
004959FE  |.  837D F4 00    CMP DWORD PTR SS:[EBP-C],0               ;  假码和0比较
00495A02  |.  0F84 E8000000 JE HiFi_MP3.00495AF0
00495A08  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  把假码送给EAX
00495A0B  |.  E8 A0EAF6FF   CALL HiFi_MP3.004044B0                   ;  取假码长度
00495A10  |.  85C0          TEST EAX,EAX                             ;  看有没有输入注册码
00495A12  |.  7E 35         JLE SHORT HiFi_MP3.00495A49              ;  没有输入就跳
00495A14  |.  BA 01000000   MOV EDX,1                                ;  EDX=1
00495A19  |>  8B4D F4       /MOV ECX,DWORD PTR SS:[EBP-C]            ;  把假码送给ECX
00495A1C  |.  0FB64C11 FF   |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1]       ;  逐位取假码的ASCII值给ECX
00495A21  |.  83F9 30       |CMP ECX,30                              ;  和16进制的30比较
00495A24  |.  7C 05         |JL SHORT HiFi_MP3.00495A2B              ;  小于就跳
00495A26  |.  83F9 39       |CMP ECX,39                              ;  和16进制的39比较
00495A29  |.  7E 1A         |JLE SHORT HiFi_MP3.00495A45             ;  小于或者等于就跳
00495A2B  |>  6A 00         |PUSH 0                                  ; /Arg1 = 00000000
00495A2D  |.  66:8B0D 3C5B4>|MOV CX,WORD PTR DS:[495B3C]             ; |
00495A34  |.  B2 02         |MOV DL,2                                ; |
00495A36  |.  B8 485B4900   |MOV EAX,HiFi_MP3.00495B48               ; |Invalid register code! Please retry!
00495A3B  |.  E8 14F5F9FF   |CALL HiFi_MP3.00434F54                  ; \HiFi_MP3.00434F54
00495A40  |.  E9 AB000000   |JMP HiFi_MP3.00495AF0
00495A45  |>  42            |INC EDX                                 ;  EDX+1
00495A46  |.  48            |DEC EAX                                 ;  EAX-1
00495A47  |.^ 75 D0         \JNZ SHORT HiFi_MP3.00495A19             ;  开始循环,验证注册码是否为纯数字
00495A49  |>  33DB          XOR EBX,EBX                              ;  EBX清零
00495A4B  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  把用户名送给EAX
00495A4E  |.  E8 5DEAF6FF   CALL HiFi_MP3.004044B0                   ;  取用户名长度
00495A53  |.  85C0          TEST EAX,EAX                             ;  看有没有输入用户名
00495A55  |.  7E 13         JLE SHORT HiFi_MP3.00495A6A              ;  没有输入就跳
00495A57  |.  BF 01000000   MOV EDI,1                                ;  EDI=1
00495A5C  |>  8B55 F8       /MOV EDX,DWORD PTR SS:[EBP-8]            ;  把用户名送给EDX
00495A5F  |.  0FB6543A FF   |MOVZX EDX,BYTE PTR DS:[EDX+EDI-1]       ;  逐位取用户名的ASCII值给EDX
00495A64  |.  03DA          |ADD EBX,EDX                             ;  EBX=EBX+EDX
00495A66  |.  47            |INC EDI                                 ;  EDI+1
00495A67  |.  48            |DEC EAX                                 ;  EAX-1
00495A68  |.^ 75 F2         \JNZ SHORT HiFi_MP3.00495A5C             ;  开始循环, 累加用户名的ASCII值
00495A6A  |>  69C3 F38B0B00 IMUL EAX,EBX,0B8BF3                      ;  EBX的值乘以固定值0B8BF3,结果存放在EAX里
00495A70  |.  83C0 57       ADD EAX,57                               ;  EAX+57
00495A73  |.  D1F8          SAR EAX,1                                ;  EAX算术右移一位
00495A75  |.  79 03         JNS SHORT HiFi_MP3.00495A7A              ;  符号位为0时就跳
00495A77  |.  83D0 00       ADC EAX,0
00495A7A  |>  8BD8          MOV EBX,EAX                              ;  把右移一位后的结果送给EBX
00495A7C  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  把假码送给EAX
00495A7F  |.  E8 8431F7FF   CALL HiFi_MP3.00408C08                   ;  关键CALL,F7跟進
00495A84  |.  3BD8          CMP EBX,EAX                              ;  EBX跟EAX比较
00495A86  |.  75 53         JNZ SHORT HiFi_MP3.00495ADB              ;  不相等就GAME OVER!
00495A88  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
00495A8A  |.  66:8B0D 3C5B4>MOV CX,WORD PTR DS:[495B3C]              ; |
00495A91  |.  B2 02         MOV DL,2                                 ; |
00495A93  |.  B8 785B4900   MOV EAX,HiFi_MP3.00495B78                ; |Congratuation! You have successfully registered!
00495A98  |.  E8 B7F4F9FF   CALL HiFi_MP3.00434F54                   ; \HiFi_MP3.00434F54
00495A9D  |.  A1 24AE4A00   MOV EAX,DWORD PTR DS:[4AAE24]
00495AA2  |.  C600 01       MOV BYTE PTR DS:[EAX],1
00495AA5  |.  A1 30AF4A00   MOV EAX,DWORD PTR DS:[4AAF30]
00495AAA  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
00495AAC  |.  33C9          XOR ECX,ECX
00495AAE  |.  BA 04000000   MOV EDX,4
00495AB3  |.  8B18          MOV EBX,DWORD PTR DS:[EAX]
00495AB5  |.  FF53 14       CALL DWORD PTR DS:[EBX+14]
00495AB8  |.  8B15 24AE4A00 MOV EDX,DWORD PTR DS:[4AAE24]            ;  HiFi_MP3.004ACDFB
00495ABE  |.  A1 30AF4A00   MOV EAX,DWORD PTR DS:[4AAF30]
00495AC3  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
00495AC5  |.  B9 01000000   MOV ECX,1
00495ACA  |.  E8 1591F8FF   CALL HiFi_MP3.0041EBE4
00495ACF  |.  A1 88CD4A00   MOV EAX,DWORD PTR DS:[4ACD88]
00495AD4  |.  E8 3378FEFF   CALL HiFi_MP3.0047D30C
00495AD9  |.  EB 15         JMP SHORT HiFi_MP3.00495AF0
00495ADB  |>  6A 00         PUSH 0                                   ; /Arg1 = 00000000
00495ADD  |.  66:8B0D 3C5B4>MOV CX,WORD PTR DS:[495B3C]              ; |
00495AE4  |.  B2 02         MOV DL,2                                 ; |
00495AE6  |.  B8 485B4900   MOV EAX,HiFi_MP3.00495B48                ; |Invalid register code! Please retry!
00495AEB  |.  E8 64F4F9FF   CALL HiFi_MP3.00434F54                   ; \HiFi_MP3.00434F54
00495AF0  |>  33C0          XOR EAX,EAX
00495AF2  |.  5A            POP EDX
00495AF3  |.  59            POP ECX
00495AF4  |.  59            POP ECX
00495AF5  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
00495AF8  |.  68 325B4900   PUSH HiFi_MP3.00495B32
00495AFD  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
00495B00  |.  E8 EBE6F6FF   CALL HiFi_MP3.004041F0
00495B05  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
00495B08  |.  E8 E3E6F6FF   CALL HiFi_MP3.004041F0
00495B0D  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
00495B10  |.  E8 DBE6F6FF   CALL HiFi_MP3.004041F0
00495B15  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
00495B18  |.  E8 D3E6F6FF   CALL HiFi_MP3.004041F0
00495B1D  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
00495B20  |.  BA 02000000   MOV EDX,2
00495B25  |.  E8 EAE6F6FF   CALL HiFi_MP3.00404214
00495B2A  \.  C3            RETN

第一个关键CALL跟进后来到这里:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
00408C08  /$  53            PUSH EBX                                 ;  把EBX压入栈
00408C09  |.  56            PUSH ESI                                 ;  把ESI压入栈
00408C0A  |.  83C4 F4       ADD ESP,-0C                              ;  ESP-0C
00408C0D  |.  8BD8          MOV EBX,EAX                              ;  把假码送给EBX
00408C0F  |.  8BD4          MOV EDX,ESP                              ;  EDX=ESP
00408C11  |.  8BC3          MOV EAX,EBX                              ;  把假码送给EAX
00408C13  |.  E8 BCA1FFFF   CALL HiFi_MP3.00402DD4                   ;  关键CALL,F7跟进
00408C18  |.  8BF0          MOV ESI,EAX                              ;  把EAX的值送给ESI
00408C1A  |.  833C24 00     CMP DWORD PTR SS:[ESP],0                 ;  此时的[ESP]为0
00408C1E  |.  74 19         JE SHORT HiFi_MP3.00408C39               ;  相等就跳
00408C20  |.  895C24 04     MOV DWORD PTR SS:[ESP+4],EBX
00408C24  |.  C64424 08 0B  MOV BYTE PTR SS:[ESP+8],0B
00408C29  |.  8D5424 04     LEA EDX,DWORD PTR SS:[ESP+4]
00408C2D  |.  A1 4CAD4A00   MOV EAX,DWORD PTR DS:[4AAD4C]
00408C32  |.  33C9          XOR ECX,ECX
00408C34  |.  E8 CBF8FFFF   CALL HiFi_MP3.00408504
00408C39  |>  8BC6          MOV EAX,ESI                              ;  把ESI的值送给EAX
00408C3B  |.  83C4 0C       ADD ESP,0C                               ;  ESP+0C
00408C3E  |.  5E            POP ESI                                  ;  ESI出栈
00408C3F  |.  5B            POP EBX                                  ;  EBX出栈
00408C40  \.  C3            RETN

第二个关键CALL跟进后来到这里:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
00402DD4  /$  53            PUSH EBX
00402DD5  |.  56            PUSH ESI
00402DD6  |.  57            PUSH EDI
00402DD7  |.  89C6          MOV ESI,EAX                              ;  把假码送给ESI
00402DD9  |.  50            PUSH EAX                                 ;  假码入栈
00402DDA  |.  85C0          TEST EAX,EAX                             ;  看EAX是否为0
00402DDC  |.  74 6C         JE SHORT HiFi_MP3.00402E4A               ;  EAX=0就跳
00402DDE  |.  31C0          XOR EAX,EAX                              ;  EAX清零
00402DE0  |.  31DB          XOR EBX,EBX                              ;  EBX清零
00402DE2  |.  BF CCCCCC0C   MOV EDI,0CCCCCCC                         ;  把固定值0CCCCCCC送给EDI
00402DE7  |>  8A1E          /MOV BL,BYTE PTR DS:[ESI]                ;  取假码第一位的ASCII值给BL
00402DE9  |.  46            |INC ESI                                 ;  ESI+1
00402DEA  |.  80FB 20       |CMP BL,20                               ;  BL的值和20比较
00402DED  |.^ 74 F8         \JE SHORT HiFi_MP3.00402DE7              ;  相等就跳
00402DEF  |.  B5 00         MOV CH,0                                 ;  CH=0
00402DF1  |.  80FB 2D       CMP BL,2D                                ;  BL的值和2D比较
00402DF4  |.  74 62         JE SHORT HiFi_MP3.00402E58               ;  相等就跳
00402DF6  |.  80FB 2B       CMP BL,2B                                ;  BL的值和2B比较
00402DF9  |.  74 5F         JE SHORT HiFi_MP3.00402E5A               ;  相等就跳
00402DFB  |>  80FB 24       CMP BL,24                                ;  BL的值和24比较
00402DFE  |.  74 5F         JE SHORT HiFi_MP3.00402E5F               ;  相等就跳
00402E00  |.  80FB 78       CMP BL,78                                ;  BL的值和78比较
00402E03  |.  74 5A         JE SHORT HiFi_MP3.00402E5F               ;  相等就跳
00402E05  |.  80FB 58       CMP BL,58                                ;  BL的值和58比较
00402E08  |.  74 55         JE SHORT HiFi_MP3.00402E5F               ;  相等就跳
00402E0A  |.  80FB 30       CMP BL,30                                ;  BL的值和30比较
00402E0D  |.  75 13         JNZ SHORT HiFi_MP3.00402E22              ;  不相等就跳
00402E0F  |.  8A1E          MOV BL,BYTE PTR DS:[ESI]
00402E11  |.  46            INC ESI
00402E12  |.  80FB 78       CMP BL,78
00402E15  |.  74 48         JE SHORT HiFi_MP3.00402E5F
00402E17  |.  80FB 58       CMP BL,58
00402E1A  |.  74 43         JE SHORT HiFi_MP3.00402E5F
00402E1C  |.  84DB          TEST BL,BL
00402E1E  |.  74 20         JE SHORT HiFi_MP3.00402E40
00402E20  |.  EB 04         JMP SHORT HiFi_MP3.00402E26
00402E22  |>  84DB          TEST BL,BL                               ;  BL是否为0
00402E24  |.  74 2D         JE SHORT HiFi_MP3.00402E53               ;  BL=0就跳
00402E26  |>  80EB 30       /SUB BL,30                               ;  BL-30
00402E29  |.  80FB 09       |CMP BL,9                                ;  减后的结果和9比较
00402E2C  |.  77 25         |JA SHORT HiFi_MP3.00402E53              ;  不小于就跳
00402E2E  |.  39F8          |CMP EAX,EDI                             ;  EAX跟EDI比较
00402E30  |.  77 21         |JA SHORT HiFi_MP3.00402E53              ;  不小于就跳
00402E32  |.  8D0480        |LEA EAX,DWORD PTR DS:[EAX+EAX*4]        ;  EAX=EAX+(EAX*4)
00402E35  |.  01C0          |ADD EAX,EAX                             ;  EAX=EAX+EAX (或者说是EAX的值乘以2)
00402E37  |.  01D8          |ADD EAX,EBX                             ;  EAX=EAX+EBX
00402E39  |.  8A1E          |MOV BL,BYTE PTR DS:[ESI]                ;  把假码第二位的ASCII值送给BL
00402E3B  |.  46            |INC ESI                                 ;  ESI+1
00402E3C  |.  84DB          |TEST BL,BL                              ;  BL是否为0
00402E3E  |.^ 75 E6         \JNZ SHORT HiFi_MP3.00402E26             ;  不等于0就跳,开始循环计算
00402E40  |>  FECD          DEC CH                                   ;  CH-1
00402E42  |.  74 09         JE SHORT HiFi_MP3.00402E4D
00402E44  |.  85C0          TEST EAX,EAX
00402E46  |.  7D 54         JGE SHORT HiFi_MP3.00402E9C              ;  这里跳转实现了,结束运算

[ 破解总结 ]-----------------------------------------

注册码是根据用户名来计算的,与注册码无关。跟进那两个CALL只是想分析一下他的计算过程而已,貌似不重要的。因为真码在没到关键CALL的时候已经计算出来了。嘻嘻。

算法总结:
1
2
3
4
5
1.累加用户名的ASCII值
2.累加后的结果IMUL(乘以)0B8BF3
3.得到的结果加上57
4.结果SAR 1
5.把上面得到的结果转换为10进制就是真码。

-----------------------------------------------------
[ 版权声明 ] 版权所有:絕戀de煩神  未经本人同意请勿转载   嘻嘻
-----------------------------------------------------

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (1)
雪    币: 192
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
今天碰巧也搞了这个软件,不过我没楼主这么高手,我是爆破的,呵呵.
2008-5-2 01:21
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册