【破解软件】One Click Ringtone Converter 1.4  
【下载地址】http://www.onlinedown.net/soft/46780.htm
【运行环境】Win9x/Me/NT/2000/XP/2003
【软件类别】国外软件/共享版/音频工具
【保护方式】注册码 
【作者声明】初学Crack,只是感兴趣,消遣业余时间,错误之处敬请诸位前辈不吝赐教。
【调试环境】Winxp、OllyDBD、PEiD
【软件介绍】一款手机铃声制作软件,只需要点一下鼠标就可以将所有的音乐变成你的手机和弦铃声。支持由WAV,MP3,WMA, OGG, APE, FLAC音频文件到WAV, MP3和MMF格式的压缩铃声的转换。可以整个文件或部分转换,支持批处理。

一、追码
   该软件安装后有4个EXE文件,其中unlock.exe是注册程序,PEiD检查无壳,是:Microsoft Visual C++ 7.0 Method2。OD载入查找字串参考,找到:“you registration data is incorrect.error”  双击来到代码窗口,向上在04046F3处下断,F9运行程序,弹出注册框填入用户名:wzwgp 组织:icbc  Unlock code: 12345678  点击“ok”     
    
004046F3  /$  55            PUSH EBP                                ;  断下   
004046F4  |.  8BEC          MOV EBP,ESP
004046F6  |.  81EC 34080000 SUB ESP,834
004046FC  |.  53            PUSH EBX
004046FD  |.  56            PUSH ESI
004046FE  |.  57            PUSH EDI
004046FF  |.  33DB          XOR EBX,EBX
00404701  |.  53            PUSH EBX
00404702  |.  8BF0          MOV ESI,EAX
00404704  |.  53            PUSH EBX
00404705  |.  6A 01         PUSH 1
00404707  |.  8D7E 20       LEA EDI,DWORD PTR DS:[ESI+20]            
0040470A  |.  8D46 28       LEA EAX,DWORD PTR DS:[ESI+28]            ;  用户名地址入EAX
0040470D  |.  68 EA030000   PUSH 3EA
00404712  |.  8BCF          MOV ECX,EDI
00404714  |.  E8 5DCCFFFF   CALL unlock.00401376
00404719  |.  85C0          TEST EAX,EAX
0040471B  |.  74 2A         JE SHORT unlock.00404747
0040471D  |.  53            PUSH EBX
0040471E  |.  53            PUSH EBX
0040471F  |.  6A 01         PUSH 1
00404721  |.  8D46 2C       LEA EAX,DWORD PTR DS:[ESI+2C]            ;  组织名地址入EAX
00404724  |.  68 EB030000   PUSH 3EB
00404729  |.  8BCF          MOV ECX,EDI
0040472B  |.  E8 46CCFFFF   CALL unlock.00401376
00404730  |.  85C0          TEST EAX,EAX
00404732  |.  74 13         JE SHORT unlock.00404747
00404734  |.  53            PUSH EBX
00404735  |.  53            PUSH EBX
00404736  |.  6A 01         PUSH 1
00404738  |.  8D46 30       LEA EAX,DWORD PTR DS:[ESI+30]            ;  假码地址入EAX
0040473B  |.  68 EC030000   PUSH 3EC
00404740  |.  8BCF          MOV ECX,EDI
00404742  |.  E8 2FCCFFFF   CALL unlock.00401376
00404747  |>  8D7E 30       LEA EDI,DWORD PTR DS:[ESI+30]            ;  假码地址入EDI
0040474A  |.  8BC7          MOV EAX,EDI
0040474C  |.  E8 2FCDFFFF   CALL unlock.00401480
00404751  |.  FF37          PUSH DWORD PTR DS:[EDI]                   
00404753  |.  FF15 CC514000 CALL NEAR DWORD PTR DS:[<&USER32.CharUpp>; 假码字符小写转大写
00404759  |.  8B46 28       MOV EAX,DWORD PTR DS:[ESI+28]
0040475C  |.  3958 F8       CMP DWORD PTR DS:[EAX-8],EBX
0040475F  |.  0F84 A2010000 JE unlock.00404907
00404765  |.  8B17          MOV EDX,DWORD PTR DS:[EDI]
00404767  |.  395A F8       CMP DWORD PTR DS:[EDX-8],EBX
0040476A  |.  0F84 97010000 JE unlock.00404907
00404770  |.  6A 07         PUSH 7
00404772  |.  59            POP ECX
00404773  |.  33C0          XOR EAX,EAX
00404775  |.  8D7D D0       LEA EDI,DWORD PTR SS:[EBP-30]
00404778  |.  895D CC       MOV DWORD PTR SS:[EBP-34],EBX
0040477B  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
0040477D  |.  B9 00010000   MOV ECX,100
00404782  |.  8DBD CCFBFFFF LEA EDI,DWORD PTR SS:[EBP-434]
00404788  |.  68 FF030000   PUSH 3FF                                 
0040478D  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]              
0040478F  |.  52            PUSH EDX                                 
00404790  |.  8D85 CCFBFFFF LEA EAX,DWORD PTR SS:[EBP-434]           
00404796  |.  50            PUSH EAX                                 
00404797  |.  FF15 64514000 CALL NEAR DWORD PTR DS:[<&MSVCR71._mbsnb>; 假码16进制数入堆栈
0040479D  |.  8D85 CCFBFFFF LEA EAX,DWORD PTR SS:[EBP-434]
004047A3  |.  E8 E6FEFFFF   CALL unlock.0040468E           ; 检查假码是否有R、T、U…有将被替换
004047A8  |.  8D85 CCFBFFFF LEA EAX,DWORD PTR SS:[EBP-434]
004047AE  |.  68 D8524000   PUSH unlock.004052D8                     ;  2D (-) 入栈
004047B3  |.  50            PUSH EAX
004047B4  |.  FF15 60514000 CALL NEAR DWORD PTR DS:[<&MSVCR71._mbsto>;  取检查后假码
004047BA  |.  83C4 14       ADD ESP,14
004047BD  |.  85C0          TEST EAX,EAX
004047BF  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
004047C2  |.  0F84 F1000000 JE unlock.004048B9                       ;  未输入注册码跳到注册失败提示窗
004047C8  |>  83FB 08       /CMP EBX,8                               ;  注册码取完没有?
004047CB  |.  0F83 B3000000 |JNB unlock.00404884
004047D1  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
004047D4  |.  8D50 01       |LEA EDX,DWORD PTR DS:[EAX+1]
004047D7  |>  8A08          |/MOV CL,BYTE PTR DS:[EAX]
004047D9  |.  40            ||INC EAX
004047DA  |.  84C9          ||TEST CL,CL
004047DC  |.^ 75 F9         |\JNZ SHORT unlock.004047D7
004047DE  |.  2BC2          |SUB EAX,EDX                             ;  计算每组注册码位数
004047E0  |.  83F8 06       |CMP EAX,6
004047E3  |.  77 12         |JA SHORT unlock.004047F7                ;  组注册码位数大于6跳到下面计算
004047E5  |.  6A 1A         |PUSH 1A                                 
004047E7  |.  6A 00         |PUSH 0                                 
004047E9  |.  FF75 FC       |PUSH DWORD PTR SS:[EBP-4]               
004047EC  |.  FF15 5C514000 |CALL NEAR DWORD PTR DS:[<&MSVCR71.strto>; 算法Call
004047F2  |.  83C4 0C       |ADD ESP,0C
004047F5  |.  EB 6E         |JMP SHORT unlock.00404865
004047F7  |>  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
004047FA  |.  8D50 01       |LEA EDX,DWORD PTR DS:[EAX+1]
004047FD  |>  8A08          |/MOV CL,BYTE PTR DS:[EAX]
004047FF  |.  40            ||INC EAX
00404800  |.  84C9          ||TEST CL,CL
00404802  |.^ 75 F9         |\JNZ SHORT unlock.004047FD
00404804  |.  2BC2          |SUB EAX,EDX
00404806  |.  83F8 08       |CMP EAX,8
00404809  |.  75 5F         |JNZ SHORT unlock.0040486A               ;  不等于8跳走
0040480B  |.  33C0          |XOR EAX,EAX
0040480D  |.  884D EC       |MOV BYTE PTR SS:[EBP-14],CL
00404810  |.  8D7D ED       |LEA EDI,DWORD PTR SS:[EBP-13]
00404813  |.  AB            |STOS DWORD PTR ES:[EDI]
00404814  |.  66:AB         |STOS WORD PTR ES:[EDI]
00404816  |.  AA            |STOS BYTE PTR ES:[EDI]
00404817  |.  33C0          |XOR EAX,EAX
00404819  |.  884D F4       |MOV BYTE PTR SS:[EBP-C],CL
0040481C  |.  8D7D F5       |LEA EDI,DWORD PTR SS:[EBP-B]
0040481F  |.  AB            |STOS DWORD PTR ES:[EDI]
00404820  |.  66:AB         |STOS WORD PTR ES:[EDI]
00404822  |.  6A 06         |PUSH 6                                  
00404824  |.  FF75 FC       |PUSH DWORD PTR SS:[EBP-4]               
00404827  |.  AA            |STOS BYTE PTR ES:[EDI]                  
00404828  |.  8B3D 64514000 |MOV EDI,DWORD PTR DS:[<&MSVCR71._mbsnbc>
0040482E  |.  8D45 EC       |LEA EAX,DWORD PTR SS:[EBP-14]           
00404831  |.  50            |PUSH EAX                                
00404832  |.  FFD7          |CALL NEAR EDI                           ; 取位数等于8的假码的前6位保存
00404834  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]            ; 取位数等于8的假码
00404837  |.  83C0 06       |ADD EAX,6
0040483A  |.  6A 02         |PUSH 2
0040483C  |.  50            |PUSH EAX                                ; 保存后2位
0040483D  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
00404840  |.  50            |PUSH EAX
00404841  |.  FFD7          |CALL NEAR EDI
00404843  |.  8B3D 5C514000 |MOV EDI,DWORD PTR DS:[<&MSVCR71.strtoul>  
00404849  |.  6A 1A         |PUSH 1A                                  
0040484B  |.  8D45 EC       |LEA EAX,DWORD PTR SS:[EBP-14]           ; 前6位地址入EAX
0040484E  |.  6A 00         |PUSH 0                                  
00404850  |.  50            |PUSH EAX                                
00404851  |.  FFD7          |CALL NEAR EDI                           ; 计算前6位
00404853  |.  89449D CC     |MOV DWORD PTR SS:[EBP+EBX*4-34],EAX   ; 保存前6位计算结果
00404857  |.  6A 1A         |PUSH 1A
00404859  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
0040485C  |.  6A 00         |PUSH 0
0040485E  |.  50            |PUSH EAX
0040485F  |.  43            |INC EBX                                 ; 计数器
00404860  |.  FFD7          |CALL NEAR EDI                           ; 计算后2位
00404862  |.  83C4 30       |ADD ESP,30
00404865  |>  89449D CC     |MOV DWORD PTR SS:[EBP+EBX*4-34],EAX     ; 保存计算结果(跳转来自 004047F5)
00404869  |.  43            |INC EBX                                 ; 计数器
0040486A  |>  68 D8524000   |PUSH unlock.004052D8                    ; 2D (-) 入栈
0040486F  |.  6A 00         |PUSH 0
00404871  |.  FF15 60514000 |CALL NEAR DWORD PTR DS:[<&MSVCR71._mbst>; 逐组取注册码
00404877  |.  85C0          |TEST EAX,EAX                            ; 是否取完?
00404879  |.  59            |POP ECX
0040487A  |.  59            |POP ECX
0040487B  |.  8945 FC       |MOV DWORD PTR SS:[EBP-4],EAX
0040487E  |.^ 0F85 44FFFFFF \JNZ unlock.004047C8                     ;  未取完循环
00404884  |>  83FB 07       CMP EBX,7                                ;  注册码是否是7组?
00404887  |.  75 30         JNZ SHORT unlock.004048B9                ;  注册码不是7组跳到注册失败提示窗
00404889  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]            ;  S7入EAX
0040488C  |.  2B45 D0       SUB EAX,DWORD PTR SS:[EBP-30]            ;  EAX=S7-S2
0040488F  |.  2B45 CC       SUB EAX,DWORD PTR SS:[EBP-34]            ;  EAX=S7-S2-S1
00404892  |.  3D 54B2D700   CMP EAX,0D7B254             ;  EAX=0D7B254 ?
00404897  |.  75 20         JNZ SHORT unlock.004048B9        ; 不相等注册失败
00404899  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]            ;  S6入EAX
0040489C  |.  8B4D DC       MOV ECX,DWORD PTR SS:[EBP-24]            ;  S5入ECX
0040489F  |.  03C1          ADD EAX,ECX                              ;  EAX=S6+S5
004048A1  |.  0345 D8       ADD EAX,DWORD PTR SS:[EBP-28]            ;  EAX=S6+S5+S4
004048A4  |.  0345 D4       ADD EAX,DWORD PTR SS:[EBP-2C]            ;  EAX=S6+S5+S4+S3
004048A7  |.  3D D74B4E30   CMP EAX,304E4BD7             ;  EAX=304E4BD7 ?
004048AC  |.  75 0B         JNZ SHORT unlock.004048B9        ; 不相等注册失败
004048AE  |.  8D46 24       LEA EAX,DWORD PTR DS:[ESI+24]
004048B1  |.  C700 01000000 MOV DWORD PTR DS:[EAX],1
004048B7  |.  EB 06         JMP SHORT unlock.004048BF
004048B9  |>  8D46 24       LEA EAX,DWORD PTR DS:[ESI+24]
004048BC  |.  8320 00       AND DWORD PTR DS:[EAX],0
004048BF  |>  8338 00       CMP DWORD PTR DS:[EAX],0
004048C2      75 1C         JNZ SHORT unlock.004048E0                
004048C4  |.  6A 10         PUSH 10
004048C6  |.  68 D0524000   PUSH unlock.004052D0                     ;  error
004048CB  |.  68 AC524000   PUSH unlock.004052AC                     ;  you registration data is incorrect.error
004048D0  |>  FF76 04       PUSH DWORD PTR DS:[ESI+4]                
004048D3  |.  FF15 D4514000 CALL NEAR DWORD PTR DS:[<&USER32.Message>;  MessageBoxA
004048D9  |.  6A 02         PUSH 2
004048DB  |.  FF76 04       PUSH DWORD PTR DS:[ESI+4]
004048DE  |.  EB 1F         JMP SHORT unlock.004048FF
004048E0  |>  E8 D8C9FFFF   CALL unlock.004012BD
004048E5  |.  85C0          TEST EAX,EAX
004048E7      75 0E         JNZ SHORT unlock.004048F7
004048E9  |.  6A 10         PUSH 10
004048EB  |.  68 D0524000   PUSH unlock.004052D0                     ;  error
004048F0  |.  68 7C524000   PUSH unlock.0040527C                     ;  error. unable to save registration             

                                                          information.you registration data is incorrect.error
004048F5  |.^ EB D9         JMP SHORT unlock.004048D0
004048F7  |>  0FB745 08     MOVZX EAX,WORD PTR SS:[EBP+8]



004047EC  00404851  00404860  处Call  F7来到下面:

7C35543D >  6A 01           PUSH 1
7C35543F    FF7424 10       PUSH DWORD PTR SS:[ESP+10]
7C355443    FF7424 10       PUSH DWORD PTR SS:[ESP+10]
7C355447    FF7424 10       PUSH DWORD PTR SS:[ESP+10]
7C35544B    E8 17FEFFFF     CALL MSVCR71.7C355267                    ; F7再进入
7C355450    83C4 10         ADD ESP,10
7C355453    C3              RETN

7C35544B 处Call  F7来到下面:

7C355267    55              PUSH EBP
7C355268    8BEC            MOV EBP,ESP
7C35526A    51              PUSH ECX
7C35526B    53              PUSH EBX
7C35526C    56              PUSH ESI
7C35526D    57              PUSH EDI
7C35526E    E8 C343FFFF     CALL MSVCR71.7C349636
7C355273    8B70 64         MOV ESI,DWORD PTR DS:[EAX+64]
7C355276    3B35 44EF387C   CMP ESI,DWORD PTR DS:[7C38EF44]      ; MSVCR71.7C38EF48
7C35527C    74 07           JE SHORT MSVCR71.7C355285
7C35527E    E8 E174FFFF     CALL MSVCR71.7C34C764
7C355283    8BF0            MOV ESI,EAX
7C355285    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]         ; 假码入ECX
7C355288    8365 FC 00      AND DWORD PTR SS:[EBP-4],0
7C35528C    8A19            MOV BL,BYTE PTR DS:[ECX]             ; 逐个取假码
7C35528E    8D79 01         LEA EDI,DWORD PTR DS:[ECX+1]
7C355291    837E 28 01      CMP DWORD PTR DS:[ESI+28],1
7C355295    0FB6C3          MOVZX EAX,BL
7C355298    7E 11           JLE SHORT MSVCR71.7C3552AB           ; 小于等于转移
7C35529A    6A 08           PUSH 8
7C35529C    50              PUSH EAX
7C35529D    56              PUSH ESI
7C35529E    E8 15D1FFFF     CALL MSVCR71.7C3523B8
7C3552A3    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
7C3552A6    83C4 0C         ADD ESP,0C
7C3552A9    EB 0A           JMP SHORT MSVCR71.7C3552B5
7C3552AB    8B56 48         MOV EDX,DWORD PTR DS:[ESI+48]
7C3552AE    0FB60442        MOVZX EAX,BYTE PTR DS:[EDX+EAX*2]    ; [EDX+EAX*2]=1
7C3552B2    83E0 08         AND EAX,8
7C3552B5    85C0            TEST EAX,EAX
7C3552B7    74 05           JE SHORT MSVCR71.7C3552BE
7C3552B9    8A1F            MOV BL,BYTE PTR DS:[EDI]
7C3552BB    47              INC EDI
7C3552BC  ^ EB D3           JMP SHORT MSVCR71.7C355291
7C3552BE    80FB 2D         CMP BL,2D                            ; 2D (-)
7C3552C1    75 06           JNZ SHORT MSVCR71.7C3552C9
7C3552C3    834D 14 02      OR DWORD PTR SS:[EBP+14],2
7C3552C7    EB 05           JMP SHORT MSVCR71.7C3552CE
7C3552C9    80FB 2B         CMP BL,2B                            ; 2B (+)
7C3552CC    75 03           JNZ SHORT MSVCR71.7C3552D1
7C3552CE    8A1F            MOV BL,BYTE PTR DS:[EDI]
7C3552D0    47              INC EDI
7C3552D1    8B45 10         MOV EAX,DWORD PTR SS:[EBP+10]        ; [EBP+10]=1A
7C3552D4    85C0            TEST EAX,EAX
7C3552D6    0F8C 3A010000   JL MSVCR71.7C355416
7C3552DC    83F8 01         CMP EAX,1
7C3552DF    0F84 31010000   JE MSVCR71.7C355416
7C3552E5    83F8 24         CMP EAX,24
7C3552E8    0F8F 28010000   JG MSVCR71.7C355416
7C3552EE    85C0            TEST EAX,EAX
7C3552F0    6A 10           PUSH 10
7C3552F2    59              POP ECX                              ; ECX=10
7C3552F3    75 24           JNZ SHORT MSVCR71.7C355319           ; 跳
7C3552F5    80FB 30         CMP BL,30
7C3552F8    74 09           JE SHORT MSVCR71.7C355303
7C3552FA    C745 10 0A00000>MOV DWORD PTR SS:[EBP+10],0A
7C355301    EB 2E           JMP SHORT MSVCR71.7C355331
7C355303    8A07            MOV AL,BYTE PTR DS:[EDI]
7C355305    3C 78           CMP AL,78
7C355307    74 0D           JE SHORT MSVCR71.7C355316
7C355309    3C 58           CMP AL,58
7C35530B    74 09           JE SHORT MSVCR71.7C355316
7C35530D    C745 10 0800000>MOV DWORD PTR SS:[EBP+10],8
7C355314    EB 1B           JMP SHORT MSVCR71.7C355331
7C355316    894D 10         MOV DWORD PTR SS:[EBP+10],ECX
7C355319    394D 10         CMP DWORD PTR SS:[EBP+10],ECX        ; 1A>10
7C35531C    75 13           JNZ SHORT MSVCR71.7C355331
7C35531E    80FB 30         CMP BL,30
7C355321    75 0E           JNZ SHORT MSVCR71.7C355331
7C355323    8A07            MOV AL,BYTE PTR DS:[EDI]
7C355325    3C 78           CMP AL,78
7C355327    74 04           JE SHORT MSVCR71.7C35532D
7C355329    3C 58           CMP AL,58
7C35532B    75 04           JNZ SHORT MSVCR71.7C355331
7C35532D    47              INC EDI
7C35532E    8A1F            MOV BL,BYTE PTR DS:[EDI]
7C355330    47              INC EDI
7C355331    83C8 FF         OR EAX,FFFFFFFF
7C355334    33D2            XOR EDX,EDX
7C355336    F775 10         DIV DWORD PTR SS:[EBP+10]            ; EAX=FFFFFFFF div 1A=09D89D89
7C355339    8B35 60B4387C   MOV ESI,DWORD PTR DS:[_pctype]       ; MSVCR71.7C37A4D8
7C35533F    0FB6CB          MOVZX ECX,BL
7C355342    66:8B0C4E       MOV CX,WORD PTR DS:[ESI+ECX*2]       ; [ESI+ECX*2]=1
7C355346    F6C1 04         TEST CL,4                            ; 1 and 4 =0
7C355349    74 08           JE SHORT MSVCR71.7C355353
7C35534B    0FBECB          MOVSX ECX,BL
7C35534E    83E9 30         SUB ECX,30                           ; 注册码是数字减30
7C355351    EB 1F           JMP SHORT MSVCR71.7C355372
7C355353    66:F7C1 0301    TEST CX,103                          ; 1 and 103 =1
7C355358    74 43           JE SHORT MSVCR71.7C35539D
7C35535A    80FB 61         CMP BL,61                            ; 61 (a)
7C35535D    7C 0D           JL SHORT MSVCR71.7C35536C
7C35535F    80FB 7A         CMP BL,7A                            ; 7A (z)
7C355362    7F 08           JG SHORT MSVCR71.7C35536C
7C355364    0FBECB          MOVSX ECX,BL
7C355367    83E9 20         SUB ECX,20
7C35536A    EB 03           JMP SHORT MSVCR71.7C35536F
7C35536C    0FBECB          MOVSX ECX,BL
7C35536F    83C1 C9         ADD ECX,-37                          ; 注册码是字符减37
7C355372    3B4D 10         CMP ECX,DWORD PTR SS:[EBP+10]        ; [EBP+10]=1A
7C355375    73 26           JNB SHORT MSVCR71.7C35539D      ; 注册码减37要小于1A
7C355377    834D 14 08      OR DWORD PTR SS:[EBP+14],8
7C35537B    3945 FC         CMP DWORD PTR SS:[EBP-4],EAX         ; [EBP-4]=计算结果 < EAX=9D89D89
7C35537E    72 0C           JB SHORT MSVCR71.7C35538C            
7C355380    75 04           JNZ SHORT MSVCR71.7C355386
7C355382    3BCA            CMP ECX,EDX
7C355384    76 06           JBE SHORT MSVCR71.7C35538C
7C355386    834D 14 04      OR DWORD PTR SS:[EBP+14],4
7C35538A    EB 0C           JMP SHORT MSVCR71.7C355398
7C35538C    8B75 FC         MOV ESI,DWORD PTR SS:[EBP-4]         ; [EBP-4] 计算结果
7C35538F    0FAF75 10       IMUL ESI,DWORD PTR SS:[EBP+10]       ; ESI=0*1A=0 
7C355393    03F1            ADD ESI,ECX                          ; ESI=0+s1+(-37)=s1+(-37)
7C355395    8975 FC         MOV DWORD PTR SS:[EBP-4],ESI         ; 保存ESI
7C355398    8A1F            MOV BL,BYTE PTR DS:[EDI]             ; 逐个取1组中的假码
7C35539A    47              INC EDI
7C35539B  ^ EB 9C           JMP SHORT MSVCR71.7C355339           ; 回跳到7C355339处
7C35539D    8B45 14         MOV EAX,DWORD PTR SS:[EBP+14]
7C3553A0    4F              DEC EDI
7C3553A1    A8 08           TEST AL,8
7C3553A3    75 0F           JNZ SHORT MSVCR71.7C3553B4
7C3553A5    837D 0C 00      CMP DWORD PTR SS:[EBP+C],0
7C3553A9    74 03           JE SHORT MSVCR71.7C3553AE
7C3553AB    8B7D 08         MOV EDI,DWORD PTR SS:[EBP+8]
7C3553AE    8365 FC 00      AND DWORD PTR SS:[EBP-4],0
7C3553B2    EB 4B           JMP SHORT MSVCR71.7C3553FF
7C3553B4    A8 04           TEST AL,4
7C3553B6    BE FFFFFF7F     MOV ESI,7FFFFFFF
7C3553BB    75 1B           JNZ SHORT MSVCR71.7C3553D8
7C3553BD    A8 01           TEST AL,1
7C3553BF    75 3E           JNZ SHORT MSVCR71.7C3553FF
7C3553C1    83E0 02         AND EAX,2
7C3553C4    74 09           JE SHORT MSVCR71.7C3553CF
7C3553C6    817D FC 0000008>CMP DWORD PTR SS:[EBP-4],80000000
7C3553CD    77 09           JA SHORT MSVCR71.7C3553D8
7C3553CF    85C0            TEST EAX,EAX
7C3553D1    75 2C           JNZ SHORT MSVCR71.7C3553FF
7C3553D3    3975 FC         CMP DWORD PTR SS:[EBP-4],ESI
7C3553D6    76 27           JBE SHORT MSVCR71.7C3553FF
7C3553D8    E8 F34AFFFF     CALL MSVCR71._errno
7C3553DD    F645 14 01      TEST BYTE PTR SS:[EBP+14],1
7C3553E1    C700 22000000   MOV DWORD PTR DS:[EAX],22
7C3553E7    74 06           JE SHORT MSVCR71.7C3553EF
7C3553E9    834D FC FF      OR DWORD PTR SS:[EBP-4],FFFFFFFF
7C3553ED    EB 10           JMP SHORT MSVCR71.7C3553FF
7C3553EF    8A45 14         MOV AL,BYTE PTR SS:[EBP+14]
7C3553F2    24 02           AND AL,2
7C3553F4    F6D8            NEG AL
7C3553F6    1BC0            SBB EAX,EAX
7C3553F8    F7D8            NEG EAX
7C3553FA    03C6            ADD EAX,ESI
7C3553FC    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
7C3553FF    8B45 0C         MOV EAX,DWORD PTR SS:[EBP+C]
7C355402    85C0            TEST EAX,EAX
7C355404    74 02           JE SHORT MSVCR71.7C355408
7C355406    8938            MOV DWORD PTR DS:[EAX],EDI
7C355408    F645 14 02      TEST BYTE PTR SS:[EBP+14],2
7C35540C    74 03           JE SHORT MSVCR71.7C355411
7C35540E    F75D FC         NEG DWORD PTR SS:[EBP-4]
7C355411    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
7C355414    EB 0B           JMP SHORT MSVCR71.7C355421
7C355416    8B45 0C         MOV EAX,DWORD PTR SS:[EBP+C]
7C355419    85C0            TEST EAX,EAX
7C35541B    74 02           JE SHORT MSVCR71.7C35541F
7C35541D    8908            MOV DWORD PTR DS:[EAX],ECX
7C35541F    33C0            XOR EAX,EAX
7C355421    5F              POP EDI                              ; 0012F958
7C355422    5E              POP ESI
7C355423    5B              POP EBX
7C355424    C9              LEAVE
7C355425    C3              RETN                 ; 返回到 7C355450 


004047A3 处 CALL unlock.0040468E 检查假码中如有以下字符将被替换。

0040468E  /$ /EB 39         JMP SHORT unlock.004046C9
00404690  |> |0FBE08        /MOVSX ECX,BYTE PTR DS:[EAX]
00404693  |. |83C1 AE       |ADD ECX,-52                             ;  Switch (cases 52..5A)
00404696  |. |83F9 08       |CMP ECX,8
00404699  |. |77 2D         |JA SHORT unlock.004046C8
0040469B  |. |FF248D CF4640>|JMP NEAR DWORD PTR DS:[ECX*4+4046CF]
004046A2  |> |C600 30       |MOV BYTE PTR DS:[EAX],30                ;  Case 52 ('R') of switch 00404693
004046A5  |. |EB 21         |JMP SHORT unlock.004046C8
004046A7  |> |C600 4F       |MOV BYTE PTR DS:[EAX],4F                ;  Case 54 ('T') of switch 00404693
004046AA  |. |EB 1C         |JMP SHORT unlock.004046C8
004046AC  |> |C600 31       |MOV BYTE PTR DS:[EAX],31                ;  Case 55 ('U') of switch 00404693
004046AF  |. |EB 17         |JMP SHORT unlock.004046C8
004046B1  |> |C600 49       |MOV BYTE PTR DS:[EAX],49                ;  Case 56 ('V') of switch 00404693
004046B4  |. |EB 12         |JMP SHORT unlock.004046C8
004046B6  |> |C600 4C       |MOV BYTE PTR DS:[EAX],4C                ;  Case 57 ('W') of switch 00404693
004046B9  |. |EB 0D         |JMP SHORT unlock.004046C8
004046BB  |> |C600 38       |MOV BYTE PTR DS:[EAX],38                ;  Case 58 ('X') of switch 00404693
004046BE  |. |EB 08         |JMP SHORT unlock.004046C8
004046C0  |> |C600 42       |MOV BYTE PTR DS:[EAX],42                ;  Case 59 ('Y') of switch 00404693
004046C3  |. |EB 03         |JMP SHORT unlock.004046C8
004046C5  |> |C600 35       |MOV BYTE PTR DS:[EAX],35                ;  Case 5A ('Z') of switch 00404693
004046C8  |> |40            |INC EAX                                 ;  Default case of switch 00404693
004046C9  |> \8038 00        CMP BYTE PTR DS:[EAX],0
004046CC  |.^ 75 C2         \JNZ SHORT unlock.00404690
004046CE  \.  C3            RETN

二、追码分析

1.注册码有7组(S1、S2、S3、S4、S5、S6、S7)ASSIC码(0-9、a-z)组成,如有R、T等将被替换(详见上),不被替换的
 字符S(53-37=1C>1A)、Q(51-37=1A)及其余ASSIC码组成的注册码与排在其后的该组字符将忽略不参与运算。
2.每组注册码可以是1-6位或8位,如是其他位数,该组注册码计算结果为0。8位组注册码将被分成前6位和后2位2组,
 产生2组计算结果。
3.每组注册码进行如下运算:S(s1…s6)
 (1) 0*1A+s1
  (2) (1)*1A+s2
  (3) (2)*1A+s3
  (4) (3)*1A+s4
  (5) (4)*1A+s5
  (6)S=(5)*1A+s6
4.如果满足下列等式:
  S7-S2-S1=0D7B254
  S6+S5+S4+S3=304E4BD7
 注册成功。

 注册码:2LB2J2A4-N47F8D-1B8LIA-KOBLH4-MHA5CE-409A5A

注册信息保存在HKEY_CURRENT_USER\Software\Streamware Development\ringconv,重启时验证注册信息。