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);
} 来学习一下啊,谢谢楼主啊~! 这个程序不大 好象不是很难的 样子啊 学习了
页:
[1]