gino 发表于 2007-11-7 23:11:01

MP3 WMA Cutter2.0破解全攻略

【破文标题】MP3 WMA Cutter2.0破解全攻略
【破文作者】秋风下的落叶
【作者邮箱】[email protected]
【作者主页】http://it.ee044.com
【破解工具】od、peid
【破解平台】xp sp2
【软件名称】MP3 WMA Cutter
【原版下载】http://www.newhua.com/soft/60426.htm
【软件大小】2.63mb
【保护方式】Borland Delphi 6.0-7.0
【软件简介】MP3 WMA Cutter 支持对 MP3, WAV, WMA 和 OGG 音频文件进行批处理方式剪辑,你可以从大尺寸的音频文件剪切出片段并且可以将其转换成 MP3、WAV、WMA、OGG 音频文件,MP3 WMA Cutter 内置了小巧的ID3-TAG 编辑器,这样你可以对建立的文件编辑其标题、艺术家、专辑、时间、音轨、流派和评论信息
------------------------------------------------------------------------------------------------
【破解声明】我是一个小菜
------------------------------------------------------------------------------------------------
【破解过程】
一、用peid查壳,delphi程序,没有壳。运行程序,输入用户名和注册码

注册,错误提示"invalid register code! please retry!"

二、用od载入程序,查找字符串“invalid register code! please retry!”,有三四个地方,我们在第一个地方双击,来到
004AE270|.B8 78E44A00MOV EAX,MP3_WMA_.004AE478                ; |invalid register code! please retry!

向上滚动一下,在004AE248按f2下断点,然后按f9运行程序,输入用户名跟注册码,注册,程序被成功断了下来
***************************************************************************************************
004AE248|.55            PUSH EBP
004AE249|.68 5DE44A00PUSH MP3_WMA_.004AE45D
004AE24E|.64:FF30      PUSH DWORD PTR FS:
004AE251|.64:8920      MOV DWORD PTR FS:,ESP
004AE254|.B3 01      MOV BL,1
004AE256|.FF05 38EE4C00 INC DWORD PTR DS:
004AE25C|.833D 38EE4C00>CMP DWORD PTR DS:,3      ;注册码小于三位则出错
004AE263|.7E 1D      JLE SHORT MP3_WMA_.004AE282
004AE265|.6A 00      PUSH 0                              ; /Arg1 = 00000000
004AE267|.66:8B0D 6CE44>MOV CX,WORD PTR DS:      ; |
004AE26E|.B2 02      MOV DL,2                            ; |
004AE270|.B8 78E44A00MOV EAX,MP3_WMA_.004AE478          ; |invalid register code! please retry!
004AE275|.E8 727DF8FFCALL MP3_WMA_.00435FEC            ; \MP3_WMA_.00435FEC
004AE27A|.8B45 FC      MOV EAX,DWORD PTR SS:
004AE27D|.E8 F26EFDFFCALL MP3_WMA_.00485174
004AE282|>8D55 F0      LEA EDX,DWORD PTR SS:
004AE285|.8B45 FC      MOV EAX,DWORD PTR SS:
004AE288|.8B80 10030000 MOV EAX,DWORD PTR DS:
004AE28E|.E8 11A7FBFFCALL MP3_WMA_.004689A4
004AE293|.8B45 F0      MOV EAX,DWORD PTR SS:      ;用户名位数进eax
004AE296|.8D55 F8      LEA EDX,DWORD PTR SS:      ;用户名进eax
004AE299|.E8 56A6F5FFCALL MP3_WMA_.004088F4
004AE29E|.8D55 EC      LEA EDX,DWORD PTR SS:
004AE2A1|.8B45 F8      MOV EAX,DWORD PTR SS:
004AE2A4|.E8 7FA6F5FFCALL MP3_WMA_.00408928
004AE2A9|.8B55 EC      MOV EDX,DWORD PTR SS:
004AE2AC|.8D45 F8      LEA EAX,DWORD PTR SS:
004AE2AF|.E8 2C60F5FFCALL MP3_WMA_.004042E0
004AE2B4|.BF 15000000MOV EDI,15
004AE2B9|.BE D8CB4C00MOV ESI,MP3_WMA_.004CCBD8          ;edi等于21,准备循环21次
004AE2BE|>8B45 F8      /MOV EAX,DWORD PTR SS:
004AE2C1|.8B16          |MOV EDX,DWORD PTR DS:      ;对比用户名
004AE2C3|.E8 8C63F5FF|CALL MP3_WMA_.00404654            ;对比用户名(超级重要的地方)
004AE2C8|.75 04      |JNZ SHORT MP3_WMA_.004AE2CE      ;如果我们输入的用户名与软件内置的用户名不同则跳
004AE2CA|.33DB          |XOR EBX,EBX
004AE2CC|.EB 06      |JMP SHORT MP3_WMA_.004AE2D4
004AE2CE|>83C6 04      |ADD ESI,4
004AE2D1|.4F            |DEC EDI
004AE2D2|.^ 75 EA      \JNZ SHORT MP3_WMA_.004AE2BE      ;循环21次,软件内置了21个用户名
004AE2D4|>84DB          TEST BL,BL
004AE2D6      74 1A      JE SHORT MP3_WMA_.004AE2F2          ;输入的用户名如果与软件内置的用户名相同则跳,不跳则错误
004AE2D8|.6A 00      PUSH 0                              ; /Arg1 = 00000000
004AE2DA|.66:8B0D 6CE44>MOV CX,WORD PTR DS:      ; |
004AE2E1|.B2 02      MOV DL,2                            ; |
004AE2E3|.B8 78E44A00MOV EAX,MP3_WMA_.004AE478          ; |invalid register code! please retry!
004AE2E8|.E8 FF7CF8FFCALL MP3_WMA_.00435FEC            ; \MP3_WMA_.00435FEC
004AE2ED|.E9 30010000JMP MP3_WMA_.004AE422
004AE2F2|>8D55 E8      LEA EDX,DWORD PTR SS:
004AE2F5|.8B45 FC      MOV EAX,DWORD PTR SS:
004AE2F8|.8B80 14030000 MOV EAX,DWORD PTR DS:
004AE2FE|.E8 A1A6FBFFCALL MP3_WMA_.004689A4
004AE303|.8B45 E8      MOV EAX,DWORD PTR SS:
004AE306|.8D55 F4      LEA EDX,DWORD PTR SS:
004AE309|.E8 E6A5F5FFCALL MP3_WMA_.004088F4
004AE30E|.8D55 E4      LEA EDX,DWORD PTR SS:
004AE311|.8B45 F4      MOV EAX,DWORD PTR SS:
004AE314|.E8 0FA6F5FFCALL MP3_WMA_.00408928
004AE319|.8B55 E4      MOV EDX,DWORD PTR SS:
004AE31C|.8D45 F4      LEA EAX,DWORD PTR SS:
004AE31F|.E8 BC5FF5FFCALL MP3_WMA_.004042E0
004AE324|.837D F8 00    CMP DWORD PTR SS:,0
004AE328|.0F84 F4000000 JE MP3_WMA_.004AE422
004AE32E|.837D F4 00    CMP DWORD PTR SS:,0
004AE332|.0F84 EA000000 JE MP3_WMA_.004AE422
004AE338|.8B45 F4      MOV EAX,DWORD PTR SS:
004AE33B|.E8 C861F5FFCALL MP3_WMA_.00404508
004AE340|.85C0          TEST EAX,EAX
004AE342|.7E 35      JLE SHORT MP3_WMA_.004AE379
004AE344|.BA 01000000MOV EDX,1
004AE349|>8B4D F4      /MOV ECX,DWORD PTR SS:
004AE34C|.0FB64C11 FF|MOVZX ECX,BYTE PTR DS:
004AE351|.83F9 30      |CMP ECX,30                        ;0
004AE354|.7C 05      |JL SHORT MP3_WMA_.004AE35B      ;小于则跳
004AE356|.83F9 39      |CMP ECX,39                        ;9
004AE359|.7E 1A      |JLE SHORT MP3_WMA_.004AE375      ;小于则跳
004AE35B|>6A 00      |PUSH 0                            ; /Arg1 = 00000000
004AE35D|.66:8B0D 6CE44>|MOV CX,WORD PTR DS:      ; |
004AE364|.B2 02      |MOV DL,2                        ; |
004AE366|.B8 78E44A00|MOV EAX,MP3_WMA_.004AE478          ; |invalid register code! please retry!
004AE36B|.E8 7C7CF8FF|CALL MP3_WMA_.00435FEC            ; \MP3_WMA_.00435FEC
004AE370|.E9 AD000000|JMP MP3_WMA_.004AE422
004AE375|>42            |INC EDX
004AE376|.48            |DEC EAX
004AE377|.^ 75 D0      \JNZ SHORT MP3_WMA_.004AE349
004AE379|>33DB          XOR EBX,EBX
004AE37B|.8B45 F8      MOV EAX,DWORD PTR SS:
004AE37E|.E8 8561F5FFCALL MP3_WMA_.00404508
004AE383|.85C0          TEST EAX,EAX
004AE385|.7E 13      JLE SHORT MP3_WMA_.004AE39A
004AE387|.BF 01000000MOV EDI,1
004AE38C|>8B55 F8      /MOV EDX,DWORD PTR SS:
004AE38F|.0FB6543A FF|MOVZX EDX,BYTE PTR DS:
004AE394|.03DA          |ADD EBX,EDX                        ;用户名的ascii相加并将结果放到ebx中
004AE396|.47            |INC EDI                            ;edi自加1
004AE397|.48            |DEC EAX                            ;eax自减1
004AE398|.^ 75 F2      \JNZ SHORT MP3_WMA_.004AE38C      ;循环,逐位取用户名的ascii
004AE39A|>69C3 26C11B00 IMUL EAX,EBX,1BC126                ;用户名ascii相加的结果乘以10进制的1818918并放到eax中
004AE3A0|.05 53220000ADD EAX,2253                        ;eax加上10进制的8787
004AE3A5|.D1F8          SAR EAX,1                        ;eax的结果右移一位(即除以2的1次方)
004AE3A7|.79 03      JNS SHORT MP3_WMA_.004AE3AC
004AE3A9|.83D0 00      ADC EAX,0
004AE3AC|>8BD8          MOV EBX,EAX                        ;将eax的内容放到ebx中
004AE3AE|.8B45 F4      MOV EAX,DWORD PTR SS:      ;假码
004AE3B1|.E8 FAA8F5FFCALL MP3_WMA_.00408CB0            ;假码进eax
004AE3B6|.3BD8          CMP EBX,EAX                        ;比较eax跟ebx的内容(真假注册码比较)
004AE3B8      75 53      JNZ SHORT MP3_WMA_.004AE40D      ;不相同则跳,跳则死
004AE3BA|.6A 00      PUSH 0                              ; /Arg1 = 00000000
004AE3BC|.66:8B0D 6CE44>MOV CX,WORD PTR DS:      ; |
004AE3C3|.B2 02      MOV DL,2                            ; |
004AE3C5|.B8 A8E44A00MOV EAX,MP3_WMA_.004AE4A8          ; |congratuation! you have successfully registered!
004AE3CA|.E8 1D7CF8FFCALL MP3_WMA_.00435FEC            ; \注册成功提示
004AE3CF|.A1 48D24C00MOV EAX,DWORD PTR DS:
004AE3D4|.C600 01      MOV BYTE PTR DS:,1
004AE3D7|.A1 5CD34C00MOV EAX,DWORD PTR DS:
004AE3DC|.8B00          MOV EAX,DWORD PTR DS:
004AE3DE|.33C9          XOR ECX,ECX
004AE3E0|.BA 04000000MOV EDX,4
004AE3E5|.8B18          MOV EBX,DWORD PTR DS:
004AE3E7|.FF53 14      CALL DWORD PTR DS:
004AE3EA|.8B15 48D24C00 MOV EDX,DWORD PTR DS:      ;MP3_WMA_.004CEEB6
004AE3F0|.A1 5CD34C00MOV EAX,DWORD PTR DS:
004AE3F5|.8B00          MOV EAX,DWORD PTR DS:
004AE3F7|.B9 01000000MOV ECX,1
004AE3FC|.E8 6B0AF7FFCALL MP3_WMA_.0041EE6C
004AE401|.A1 34EE4C00MOV EAX,DWORD PTR DS:
004AE406|.E8 696DFDFFCALL MP3_WMA_.00485174
004AE40B|.EB 15      JMP SHORT MP3_WMA_.004AE422
004AE40D|>6A 00      PUSH 0                              ; /Arg1 = 00000000
004AE40F|.66:8B0D 6CE44>MOV CX,WORD PTR DS:      ; |
004AE416|.B2 02      MOV DL,2                            ; |
004AE418|.B8 78E44A00MOV EAX,MP3_WMA_.004AE478          ; |invalid register code! please retry!
004AE41D|.E8 CA7BF8FFCALL MP3_WMA_.00435FEC            ; \注册失败提示
004AE422|>33C0          XOR EAX,EAX
004AE424|.5A            POP EDX
004AE425|.59            POP ECX
004AE426|.59            POP ECX
------------------------------------------------------------------------------------------------
【破解总结】该软件需要用软件内置的用户名才能注册
软件内置的用户名总共有21个,其中一个用户名无法注册(DUISlT6-tqewV1)。其余20组用户名及对应的注册码如下
用户名                注册码
VYULy99-VI3486      898549885
POLJt7J-T8yt86      987676867
S1R8t98-SYrw76      962212015
TDRe997-S1eeP6      924924196
OP1rAD6-LVreU1      968578228
TDR6q99-S7eqT1      950389048
TJY6rp6-ZV1ynN      1054976833
BMVCwp6-VQvdB1      1024055227
B8TqDfA-VKmaB1      983129572
BSf6***-VAwkKB      1026783604
OsrfC98-AKzu47      1019507932
Ofg6l88-KO1vf1      977672818
ESrAbK6-VKdiO1      997680916
IUrg6p6-VEyvU1      1062252505
IJUwDT6-BBsrX1      1000409293
S1IeIT6-DVlf99      945841753
SNhMDS6-AKlp41      957664720
SNWxSQ6-TTgjN1      1032240358
SNErWS6-MIbnN3      1000409293
TDVeZS6-M9opN3      997680916


爆破:
004AE2D6|. /74 1A      JE SHORT MP3_WMA_.004AE2F2      je改jmp
004AE3B8|. /75 53      JNZ SHORT MP3_WMA_.004AE40D      nop掉这一行


算法:(用户名必须是软件内置的)
1、逐位取用户名ascii,然后相加,结果记作A
2、用A乘以10进制的1818918,结果记作B
3、用B加上10进制的8787,结果记作C
4、用C除以2的1次方,结果记作D
5、D就是注册码


易语言算法注册机源代码

.版本 2

.子程序 _按钮1_被单击
.局部变量 i, 整数型
.局部变量 sn, 整数型

.如果 (删全部空 (编辑框1.内容) ≠ “”)
    .计次循环首 (取文本长度 (编辑框1.内容), i)
      sn = sn + 到数值 (取代码 (取文本中间 (编辑框1.内容, i, 1), ))
    .计次循环尾 ()
    sn = sn × 1818918
    sn = sn + 8787
    sn = sn \ 2
    编辑框2.内容 = 到文本 (sn)

.否则
    信息框 (“请先输入用户名!”, #错误图标, “错误”)


VB6.0算法注册机源代码

Private Sub Command1_Click()
Dim i As Integer, sn As Long
If Len(Trim(Text1.Text)) > 0 Then
For i = 1 To Len(Text1.Text)
sn = sn + Asc(Mid(Text1.Text, i, 1))
Next
sn = sn * 1818918
sn = sn + 8787
sn = sn \ 2
Text2.Text = sn
Else
MsgBox "请先输入用户名!", vbCritical, "错误"
End If
End Sub


Delphi 7.0算法注册机代码

procedure TForm1.Button1Click(Sender: TObject);
var i,sn:integer;
begin
sn:=0;
if length(trim(edit1.text))>0 then
begin
for i:=1 to length(edit1.text) do
sn:= sn + ord(edit1.text);
sn:=sn*1818918;
sn:=sn+8787;
sn:=sn div 2;
edit2.text:=inttostr(sn);
end
else
messagebox(0,'请先输入用户名!','提示',16);
end;


C语言算法注册机源代码

      #include "stdio.h"
main()
{
    char a;
int sn=0;
printf("用户名:");
while(1)
{
a=getchar();
    if(a!='\n')
{
sn=sn+(int)a;
}else
{
break;
}
}
    sn=sn*1818918;
sn=sn+8787;
          sn=sn / 2;
printf("注册码:%d\n",sn);
      }

dongzhihuo 发表于 2007-11-8 22:02:29

来学习一下啊,谢谢楼主啊~!

hackercc 发表于 2007-12-1 19:53:17

这个程序不大 好象不是很难的 样子啊 学习了
页: [1]
查看完整版本: MP3 WMA Cutter2.0破解全攻略