绝恋de烦神 发表于 2007-8-21 16:33:40

破解AudioVideo To Wav Converter 1.0.3.0305

【文章标题】: 破解AudioVideo To Wav Converter 1.0.3.0305
【文章作者】: ioukenzo/絕戀de煩神
【作者邮箱】: [email protected]
【作者主页】: 暂时还没有
【作者QQ号】: 250771765
【软件名称】: AudioVideo To Wav Converter
【下载地址】: http://www.newhua.com/soft/32395.htm
【加壳方式】: 無壳
【使用工具】: Peid,OD
【操作平台】: WinXp SP2
【软件介绍】: wav文件转换器是一个非常易用的,可把各种各样音视频文件转换成wav文件的工具.使用内

建的多媒体播放器,你能预览这些文件,无损的转换各种音频文件.主要可转换的视频文件有AVI-WAV,VCD

-WAV,MPEG-WAV,WMV-WAV,ASF-WAV,OGM-WAV,DIVX-WAV,DAT-WAVD.可转换的音频文件有MP3-

WAV,WMA-WAV,AC3-WAV,OGG-WAV,MPA-WAV,MP3- WAV,AU-WAV,AIF-WAV,SND-WAV
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一:運行程序就要求注册了。那我们就隨便注冊一下吧。看有沒有錯誤提示!

二:用PEID查一下壳。

三:用OD载入,追出真码。

=============================================

=========

(1)载入OD后搜索一下注册失败时的错误指示-->Registration failed!   找到后双击来到以下地方:

=============================================

=========
00404A84   .5E            POP ESI
00404A85   .5D            POP EBP
00404A86   .83C4 0C       ADD ESP,0C
00404A89   .E9 82E80100   JMP AV2Wav.00423310
00404A8E   >6A 00         PUSH 0
00404A90   .6A 00         PUSH 0
00404A92   .68 E8E24200   PUSH AV2Wav.0042E2E8   ;Registration failed! ;双击错误提示之后OD停

在这里。
                                                                              向上找合适的地方下断。
00404A97   .E8 401D0200   CALL AV2Wav.004267DC
00404A9C   .5B            POP EBX
00404A9D   .5F            POP EDI
00404A9E   .5E            POP ESI
00404A9F   .5D            POP EBP
00404AA0   .83C4 0C       ADD ESP,0C
00404AA3   .C3            RETN
=============================================

=========

(2)下断慢慢分析。

=============================================

=========
004047D3   .55            PUSH EBP                                 ;来到这里按F2下断。
004047D4   .56            PUSH ESI
004047D5   .57            PUSH EDI
004047D6   .BF 01000000   MOV EDI,1
004047DB   .57            PUSH EDI
004047DC   .8BF1          MOV ESI,ECX
004047DE   .E8 C3AA0100   CALL AV2Wav.0041F2A6
004047E3   .8B46 70       MOV EAX,DWORD PTR DS:            ;把用戶名傳給EAX
004047E6   .8B68 F4       MOV EBP,DWORD PTR DS:             ;把用戶名的長度傳給EBP
004047E9   .83FD 02       CMP EBP,2                              ;用戶名的長度和2比較
004047EC   .7D 15         JGE SHORT AV2Wav.00404803
004047EE   .6A 00         PUSH 0
004047F0   .6A 00         PUSH 0
004047F2   .68 44E34200   PUSH AV2Wav.0042E344                     ;Please input correct User Name!
004047F7   .E8 E01F0200   CALL AV2Wav.004267DC
004047FC   .5F            POP EDI
004047FD   .5E            POP ESI
004047FE   .5D            POP EBP
004047FF   .83C4 0C       ADD ESP,0C
00404802   .C3            RETN
00404803   >8B4E 74       MOV ECX,DWORD PTR DS:            ;把假碼傳給ECX
00404806   .8379 F4 08    CMP DWORD PTR DS:,8               ;假碼的長度和8比較
0040480A   .7D 15         JGE SHORT AV2Wav.00404821
0040480C   .6A 00         PUSH 0
0040480E   .6A 00         PUSH 0
00404810   .68 1CE34200   PUSH AV2Wav.0042E31C            ;Please input correct Registration Code!
00404815   .E8 C21F0200   CALL AV2Wav.004267DC
0040481A   .5F            POP EDI
0040481B   .5E            POP ESI
0040481C   .5D            POP EBP
0040481D   .83C4 0C       ADD ESP,0C
00404820   .C3            RETN
00404821   >8B46 70       MOV EAX,DWORD PTR DS:            ;把用戶名傳給EAX
00404824   .8B48 F4       MOV ECX,DWORD PTR DS:             ;把用戶名的長度傳給ECX
00404827   .85C9          TEST ECX,ECX
00404829   .7D 0A         JGE SHORT AV2Wav.00404835
0040482B   .68 57000780   PUSH 80070057
00404830   .E8 1BC9FFFF   CALL AV2Wav.00401150
00404835   >8A10          MOV DL,BYTE PTR DS:               ;取用戶名的第一位字符的ASCII值給DL
00404837   .8B46 70       MOV EAX,DWORD PTR DS:            ;把用戶名傳給EAX
0040483A   .3978 F4       CMP DWORD PTR DS:,EDI             ;用戶名的長度和EDI的值比較
0040483D   .7D 0A         JGE SHORT AV2Wav.00404849
0040483F   .68 57000780   PUSH 80070057
00404844   .E8 07C9FFFF   CALL AV2Wav.00401150
00404849   >8A40 01       MOV AL,BYTE PTR DS:               ;取用戶名第二位字符的ASCII值給AL
0040484C   .884424 0E   MOV BYTE PTR SS:,AL               ;=AL=用戶名第二位字符的

ASCII值
00404850   .8B46 70       MOV EAX,DWORD PTR DS:            ;把用戶名傳給EAX
00404853   .8B48 F4       MOV ECX,DWORD PTR DS:             ;把用戶名的長度傳給ECX
00404856   .85C9          TEST ECX,ECX
00404858   .7D 0A         JGE SHORT AV2Wav.00404864
0040485A   .68 57000780   PUSH 80070057
0040485F   .E8 ECC8FFFF   CALL AV2Wav.00401150
00404864   >8B4E 70       MOV ECX,DWORD PTR DS:            ;把用戶名傳給ECX
00404867   .53            PUSH EBX
00404868   .8A18          MOV BL,BYTE PTR DS:               ;取用戶名第一位字符的ASCII值給BL
0040486A   .3979 F4       CMP DWORD PTR DS:,EDI             ;用戶名的長度和EDI的值比較
0040486D   .7D 0A         JGE SHORT AV2Wav.00404879
0040486F   .68 57000780   PUSH 80070057
00404874   .E8 D7C8FFFF   CALL AV2Wav.00401150
00404879   >0FB6C2      MOVZX EAX,DL                           ;逐位取用戶名的ASCII值給EAX
0040487C   .83C8 46       OR EAX,46                              ;EAX和46異域
0040487F   .99            CDQ
00404880   .BF 0A000000   MOV EDI,0A                               ;把0A傳給EDI
00404885   .F7FF          IDIV EDI
00404887   .0FB64424 12   MOVZX EAX,BYTE PTR SS:         ;取用戶名第二位字符的ASCII值

給EAX
0040488C   .83C8 42       OR EAX,42                              ;EAX和42異域
0040488F   .885424 16   MOV BYTE PTR SS:,DL            ;=DL=01
00404893   .99            CDQ
00404894   .F7FF          IDIV EDI
00404896   .0FB6C3      MOVZX EAX,BL                           ;取用戶名第一位字符的ASCII值給EAX
00404899   .83C8 43       OR EAX,43                              ;EAX和43異域
0040489C   .885424 12   MOV BYTE PTR SS:,DL            ;=DL=01
004048A0   .99            CDQ
004048A1   .F7FF          IDIV EDI
004048A3   .0FB641 01   MOVZX EAX,BYTE PTR DS:            ;取用戶名第二位字符的ASCII值給

EAX
004048A7   .83C8 44       OR EAX,44                              ;EAX和44異域
004048AA   .8BCF          MOV ECX,EDI                              ;ECX=EDI=0A
004048AC   .885424 17   MOV BYTE PTR SS:,DL            ;=DL=07
004048B0   .99            CDQ
004048B1   .F7F9          IDIV ECX
004048B3   .33C0          XOR EAX,EAX                              ;EAX清零
004048B5   .33C9          XOR ECX,ECX                              ;ECX清零
004048B7   .85ED          TEST EBP,EBP
004048B9   .885424 18   MOV BYTE PTR SS:,DL            ;=DL=01
004048BD   .7E 20         JLE SHORT AV2Wav.004048DF
004048BF   .90            NOP
004048C0   >85C9          TEST ECX,ECX
004048C2   .0F8C D2000000 JL AV2Wav.0040499A
004048C8   .8B7E 70       MOV EDI,DWORD PTR DS:            ;把用戶名傳給EDI
004048CB   .3B4F F4       CMP ECX,DWORD PTR DS:
004048CE   .0F8F C6000000 JG AV2Wav.0040499A
004048D4   .0FB6140F      MOVZX EDX,BYTE PTR DS:          ;逐位取用戶名的ASCII值給EDX
004048D8   .03C2          ADD EAX,EDX                              ;EAX=EAX+EDX
004048DA   .41            INC ECX                                  ;ECX自加一
004048DB   .3BCD          CMP ECX,EBP                              ;ECX和EBP比較
004048DD   .^ 7C E1         JL SHORT AV2Wav.004048C0               ;循环
004048DF   >8B4E 74       MOV ECX,DWORD PTR DS:            ;把假碼傳給ECX
004048E2   .8B51 F4       MOV EDX,DWORD PTR DS:             ;把假碼的長度傳給EDX
004048E5   .85D2          TEST EDX,EDX
004048E7   .7D 0A         JGE SHORT AV2Wav.004048F3
004048E9   .68 57000780   PUSH 80070057
004048EE   .E8 5DC8FFFF   CALL AV2Wav.00401150
004048F3   >8A11          MOV DL,BYTE PTR DS:               ;取假碼第一位的ASCII值給DL
004048F5   .8B4E 74       MOV ECX,DWORD PTR DS:            ;把假碼傳給ECX
004048F8   .8379 F4 01    CMP DWORD PTR DS:,1               ;假碼的長度和1比較
004048FC   .885424 19   MOV BYTE PTR SS:,DL            ;=DL=假碼第一位的ASCII


00404900   .7D 0A         JGE SHORT AV2Wav.0040490C
00404902   .68 57000780   PUSH 80070057
00404907   .E8 44C8FFFF   CALL AV2Wav.00401150
0040490C   >8A49 01       MOV CL,BYTE PTR DS:               ;取假碼第二位的ASCII值給CL
0040490F   .8B7E 74       MOV EDI,DWORD PTR DS:            ;把假碼傳給EDI
00404912   .884C24 13   MOV BYTE PTR SS:,CL            ;=CL=假碼第二位的ASCII


00404916   .837F F4 02    CMP DWORD PTR DS:,2               ;假碼的長度和2比較
0040491A   .7D 0A         JGE SHORT AV2Wav.00404926
0040491C   .68 57000780   PUSH 80070057
00404921   .E8 2AC8FFFF   CALL AV2Wav.00401150
00404926   >8A4F 02       MOV CL,BYTE PTR DS:                ;取假碼第三位的ASCII值給CL
00404929   .8B7E 74       MOV EDI,DWORD PTR DS:             ;把假碼傳給EDI
0040492C   .884C24 14   MOV BYTE PTR SS:,CL               ;=CL=假碼第三位的ASCII


00404930   .837F F4 03    CMP DWORD PTR DS:,3                ;假碼的長度和3比較
00404934   .7D 0A         JGE SHORT AV2Wav.00404940
00404936   .68 57000780   PUSH 80070057
0040493B   .E8 10C8FFFF   CALL AV2Wav.00401150
00404940   >8A4F 03       MOV CL,BYTE PTR DS:                ;取假碼第四位的ASCII值給CL
00404943   .8B7E 74       MOV EDI,DWORD PTR DS:             ;把假碼傳給EDI
00404946   .884C24 15   MOV BYTE PTR SS:,CL               ;=CL=假碼第四位的ASCII


0040494A   .837F F4 04    CMP DWORD PTR DS:,4                ;假碼的長度和4比較
0040494E   .7D 0A         JGE SHORT AV2Wav.0040495A
00404950   .68 57000780   PUSH 80070057
00404955   .E8 F6C7FFFF   CALL AV2Wav.00401150
0040495A   >8A4F 04       MOV CL,BYTE PTR DS:                ;取假碼第五位的ASCII值給CL
0040495D   .8B7E 74       MOV EDI,DWORD PTR DS:             ;把假碼傳給EDI
00404960   .837F F4 05    CMP DWORD PTR DS:,5                ;假碼的長度和5比較
00404964   .7D 0A         JGE SHORT AV2Wav.00404970
00404966   .68 57000780   PUSH 80070057
0040496B   .E8 E0C7FFFF   CALL AV2Wav.00401150
00404970   >8A5F 05       MOV BL,BYTE PTR DS:                ;取假碼第六位的ASCII值給CL
00404973   .8B7E 74       MOV EDI,DWORD PTR DS:             ;把假碼傳給EDI
00404976   .885C24 1A   MOV BYTE PTR SS:,BL               ;=BL=假碼第六位的ASCII


0040497A   .837F F4 06    CMP DWORD PTR DS:,6                ;假碼的長度和6比較
0040497E   .7D 0A         JGE SHORT AV2Wav.0040498A
00404980   .68 57000780   PUSH 80070057
00404985   .E8 C6C7FFFF   CALL AV2Wav.00401150
0040498A   >8A5F 06       MOV BL,BYTE PTR DS:                ;取假碼第七位的ASCII值給BL
0040498D   .8B7E 74       MOV EDI,DWORD PTR DS:             ;把假碼傳給EDI
00404990   .885C24 1B   MOV BYTE PTR SS:,BL               ;=BL=假碼第七位的ASCII


00404994   .837F F4 07    CMP DWORD PTR DS:,7                ;假碼的長度和7比較
00404998   .7D 0A         JGE SHORT AV2Wav.004049A4
0040499A   >68 57000780   PUSH 80070057
0040499F   .E8 ACC7FFFF   CALL AV2Wav.00401150
004049A4   >8A5F 07       MOV BL,BYTE PTR DS:                ;取假碼第八位的ASCII值給BL
004049A7   .0FB67C24 16   MOVZX EDI,BYTE PTR SS:            ;EDI==01
004049AC   .0FB6D2      MOVZX EDX,DL                              ;取假碼第一位的ASCII值給EDX
004049AF   .83EA 30       SUB EDX,30                              ;EDX=EDX-30
004049B2   .3BFA          CMP EDI,EDX                               ;EDI和EDX比較
004049B4   .75 48         JNZ SHORT AV2Wav.004049FE
004049B6   .0FB65424 13   MOVZX EDX,BYTE PTR SS:
004049BB   .0FB67C24 12   MOVZX EDI,BYTE PTR SS:
004049C0   .83EA 30       SUB EDX,30
004049C3   .3BFA          CMP EDI,EDX
004049C5   .75 37         JNZ SHORT AV2Wav.004049FE
004049C7   .0FB65424 14   MOVZX EDX,BYTE PTR SS:
004049CC   .0FB67C24 17   MOVZX EDI,BYTE PTR SS:
004049D1   .83EA 30       SUB EDX,30
004049D4   .3BFA          CMP EDI,EDX
004049D6   .75 26         JNZ SHORT AV2Wav.004049FE
004049D8   .0FB65424 15   MOVZX EDX,BYTE PTR SS:
004049DD   .0FB67C24 18   MOVZX EDI,BYTE PTR SS:
004049E2   .83EA 30       SUB EDX,30
004049E5   .3BFA          CMP EDI,EDX
004049E7   .75 15         JNZ SHORT AV2Wav.004049FE
004049E9   .99            CDQ
004049EA   .BF 0A000000   MOV EDI,0A
004049EF   .F7FF          IDIV EDI
004049F1   .0FB6C2      MOVZX EAX,DL
004049F4   .0FB6D1      MOVZX EDX,CL
004049F7   .83EA 30       SUB EDX,30
004049FA   .3BC2          CMP EAX,EDX
004049FC   .74 3A         JE SHORT AV2Wav.00404A38
004049FE   >807C24 19 38CMP BYTE PTR SS:,38            ;假碼第一位的ASCII值和38比較
00404A03   .0F85 85000000 JNZ AV2Wav.00404A8E
00404A09   .807C24 13 33CMP BYTE PTR SS:,33            ;假碼第二位的ASCII值和33比較
00404A0E   .75 7E         JNZ SHORT AV2Wav.00404A8E
00404A10   .807C24 14 39CMP BYTE PTR SS:,39            ;假碼第三位的ASCII值和39比較
00404A15   .75 77         JNZ SHORT AV2Wav.00404A8E
00404A17   .8A5424 15   MOV DL,BYTE PTR SS:            ;把假碼第四位的ASCII值傳給DL
00404A1B   .B0 31         MOV AL,31                              ;AL=31
00404A1D   .3AD0          CMP DL,AL                              ;假碼第四位的ASCII值和AL的值比較
00404A1F   .75 6D         JNZ SHORT AV2Wav.00404A8E
00404A21   .80F9 36       CMP CL,36                              ;假碼第五位的ASCII值和36比較
00404A24   .75 68         JNZ SHORT AV2Wav.00404A8E
00404A26   .384424 1A   CMP BYTE PTR SS:,AL            ;假碼第六位的ASCII值和AL的值比較
00404A2A   .75 62         JNZ SHORT AV2Wav.00404A8E
00404A2C   .807C24 1B 34CMP BYTE PTR SS:,34            ;假碼第七位的ASCII值和34比較
00404A31   .75 5B         JNZ SHORT AV2Wav.00404A8E
00404A33   .80FB 36       CMP BL,36                              ;假碼第八位的ASCII值和36比較
00404A36   .75 56         JNZ SHORT AV2Wav.00404A8E                  
00404A38   >6A 00         PUSH 0
00404A3A   .6A 00         PUSH 0
00404A3C   .68 00E34200   PUSH AV2Wav.0042E300                     ;Registration has succeeded!
00404A41   .E8 961D0200   CALL AV2Wav.004267DC
00404A46   .8B7E 70       MOV EDI,DWORD PTR DS:
00404A49   .E8 96340200   CALL AV2Wav.00427EE4
00404A4E   .8B40 04       MOV EAX,DWORD PTR DS:
00404A51   .57            PUSH EDI                                 ; /Arg3
00404A52   .68 80E04200   PUSH AV2Wav.0042E080                     ; |username
00404A57   .68 FCDB4200   PUSH AV2Wav.0042DBFC                     ; |Option
00404A5C   .8BC8          MOV ECX,EAX                              ; |
00404A5E   .E8 901E0200   CALL AV2Wav.004268F3                     ; \AV2Wav.004268F3
00404A63   .8B7E 74       MOV EDI,DWORD PTR DS:
00404A66   .E8 79340200   CALL AV2Wav.00427EE4
00404A6B   .8B40 04       MOV EAX,DWORD PTR DS:
00404A6E   .57            PUSH EDI                                 ; /Arg3
00404A6F   .68 6CE04200   PUSH AV2Wav.0042E06C                     ; |registration_code
00404A74   .68 FCDB4200   PUSH AV2Wav.0042DBFC                     ; |Option
00404A79   .8BC8          MOV ECX,EAX                              ; |
00404A7B   .E8 731E0200   CALL AV2Wav.004268F3                     ; \AV2Wav.004268F3
00404A80   .5B            POP EBX
00404A81   .5F            POP EDI
00404A82   .8BCE          MOV ECX,ESI
00404A84   .5E            POP ESI
00404A85   .5D            POP EBP
00404A86   .83C4 0C       ADD ESP,0C
00404A89   .E9 82E80100   JMP AV2Wav.00423310
00404A8E   >6A 00         PUSH 0
00404A90   .6A 00         PUSH 0
00404A92   .68 E8E24200   PUSH AV2Wav.0042E2E8       ;Registration failed!;双击错误提示之后OD

停在这里。
00404A97   .E8 401D0200   CALL AV2Wav.004267DC
00404A9C   .5B            POP EBX
00404A9D   .5F            POP EDI
00404A9E   .5E            POP ESI
00404A9F   .5D            POP EBP
00404AA0   .83C4 0C       ADD ESP,0C
00404AA3   .C3            RETN

--------------------------------------------------------------------------------
【经验总结】
四:总结
这款软件算是明码比较的。用户名没有参与运算。但要大于2位。注册码是固定的。要大于或者等于8

位,而且前8位是固定
的。
真码是:83916146

--------------------------------------------------------------------------------
【版权声明】: 本文原创于ioukenzo/絕戀de煩神, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年08月21日 PM 04:12:31
页: [1]
查看完整版本: 破解AudioVideo To Wav Converter 1.0.3.0305