- UID
- 2446
注册时间2005-7-21
阅读权限30
最后登录1970-1-1
龙战于野
该用户从未签到
|
文章标题:LRC歌词文件转换器 V2.3 算法分析
破解作者:风球[PYG]
软件下载:http://www.skycn.com/soft/25513.html
软件介绍:从网上下载音乐、电影时,常常有歌词、字幕文件与之相伴。而有些歌词文件的制作者为了减小文件大小,就在歌词文件的一行内加入多个时间标识。于是,要按实际顺序输出歌词便成了难题。本软件能将LRC文件内的歌词重新排序,像显示歌词的软件一样按实际顺序将歌词输出。并且可以完成LRC、KSC、SRT、TXT文件的互相转换。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
简单的破解过程:
0045435B 68 08544200 push LRC_Tool.00425408 ; UNICODE "reg.ini"
00454360 6A 01 push 1
00454362 6A FF push -1
00454364 6A 01 push 1
00454366 FF15 14114000 call dword ptr ds:[<&msvbvm60.__vbaFile>; msvbvm60.__vbaFileOpen
0045436C 8D4D C8 lea ecx,dword ptr ss:[ebp-38]
0045436F 51 push ecx
00454370 6A 01 push 1
00454372 68 1C544200 push LRC_Tool.0042541C
00454377 8B3D E4104000 mov edi,dword ptr ds:[<&msvbvm60.__vbaI>; msvbvm60.__vbaInputFile
0045437D FFD7 call edi
0045437F 8D55 C8 lea edx,dword ptr ss:[ebp-38]
00454382 52 push edx
00454383 6A 01 push 1
00454385 68 1C544200 push LRC_Tool.0042541C
0045438A FFD7 call edi
0045438C 83C4 18 add esp,18
0045438F C785 7CFFFFFF 0>mov dword ptr ss:[ebp-84],80020004
00454399 C785 74FFFFFF 0>mov dword ptr ss:[ebp-8C],0A
004543A3 8D85 74FFFFFF lea eax,dword ptr ss:[ebp-8C]
004543A9 50 push eax
004543AA 6A 0A push 0A
004543AC 8B4D C8 mov ecx,dword ptr ss:[ebp-38] ; 用户名(UNICODE "Username=feng")
004543AF 51 push ecx
004543B0 FF15 88104000 call dword ptr ds:[<&msvbvm60.rtcMidCha>; msvbvm60.rtcMidCharBstr
004543B6 8BD0 mov edx,eax
004543B8 8D4D C0 lea ecx,dword ptr ss:[ebp-40]
004543BB FFD6 call esi
004543BD 8D8D 74FFFFFF lea ecx,dword ptr ss:[ebp-8C]
004543C3 8B1D 14104000 mov ebx,dword ptr ds:[<&msvbvm60.__vbaF>; msvbvm60.__vbaFreeVar
004543C9 FFD3 call ebx
004543CB 8D55 C8 lea edx,dword ptr ss:[ebp-38]
004543CE 52 push edx
004543CF 6A 01 push 1
004543D1 68 1C544200 push LRC_Tool.0042541C
004543D6 FFD7 call edi
004543D8 83C4 0C add esp,0C
004543DB C785 7CFFFFFF 0>mov dword ptr ss:[ebp-84],80020004
004543E5 C785 74FFFFFF 0>mov dword ptr ss:[ebp-8C],0A
004543EF 8D85 74FFFFFF lea eax,dword ptr ss:[ebp-8C]
004543F5 50 push eax
004543F6 6A 09 push 9
004543F8 8B4D C8 mov ecx,dword ptr ss:[ebp-38]
004543FB 51 push ecx ; 假码(UNICODE "Regcode=123654789")
004543FC FF15 88104000 call dword ptr ds:[<&msvbvm60.rtcMidCha>; msvbvm60.rtcMidCharBstr
00454402 8BD0 mov edx,eax
00454404 8D4D CC lea ecx,dword ptr ss:[ebp-34]
00454407 FFD6 call esi
00454409 8D8D 74FFFFFF lea ecx,dword ptr ss:[ebp-8C]
0045440F FFD3 call ebx
00454411 6A 01 push 1
00454413 FF15 94104000 call dword ptr ds:[<&msvbvm60.__vbaFile>; msvbvm60.__vbaFileClose
00454419 8B55 C0 mov edx,dword ptr ss:[ebp-40]
0045441C 52 push edx ; (UNICODE "feng")
0045441D FF15 20104000 call dword ptr ds:[<&msvbvm60.__vbaLenB>; msvbvm60.__vbaLenBstr
00454423 83F8 03 cmp eax,3
00454426 0F8C A6040000 jl LRC_Tool.004548D2 ; 用户名长度小于3则出错
0045442C C785 3CFFFFFF 0>mov dword ptr ss:[ebp-C4],1
00454436 BF 02000000 mov edi,2
0045443B 89BD 34FFFFFF mov dword ptr ss:[ebp-CC],edi
00454441 8B45 C0 mov eax,dword ptr ss:[ebp-40]
00454444 50 push eax
00454445 FF15 20104000 call dword ptr ds:[<&msvbvm60.__vbaLenB>; msvbvm60.__vbaLenBstr
0045444B 8985 2CFFFFFF mov dword ptr ss:[ebp-D4],eax
00454451 C785 24FFFFFF 0>mov dword ptr ss:[ebp-DC],3
0045445B C785 1CFFFFFF 0>mov dword ptr ss:[ebp-E4],1
00454465 89BD 14FFFFFF mov dword ptr ss:[ebp-EC],edi
0045446B 8D8D 34FFFFFF lea ecx,dword ptr ss:[ebp-CC]
00454471 51 push ecx
00454472 8D95 24FFFFFF lea edx,dword ptr ss:[ebp-DC]
00454478 52 push edx
00454479 8D85 14FFFFFF lea eax,dword ptr ss:[ebp-EC]
0045447F 50 push eax
00454480 8D8D DCFEFFFF lea ecx,dword ptr ss:[ebp-124]
00454486 51 push ecx
00454487 8D95 ECFEFFFF lea edx,dword ptr ss:[ebp-114]
0045448D 52 push edx
0045448E 8D45 D4 lea eax,dword ptr ss:[ebp-2C]
00454491 50 push eax
00454492 FF15 5C104000 call dword ptr ds:[<&msvbvm60.__vbaVarF>; msvbvm60.__vbaVarForInit
00454498 85C0 test eax,eax
0045449A 0F84 FA000000 je LRC_Tool.0045459A
004544A0 C785 7CFFFFFF 0>mov dword ptr ss:[ebp-84],1
004544AA 89BD 74FFFFFF mov dword ptr ss:[ebp-8C],edi
004544B0 8D8D 74FFFFFF lea ecx,dword ptr ss:[ebp-8C]
004544B6 51 push ecx
004544B7 8D55 D4 lea edx,dword ptr ss:[ebp-2C]
004544BA 52 push edx
004544BB FF15 4C114000 call dword ptr ds:[<&msvbvm60.__vbaI4Va>; msvbvm60.__vbaI4Var
004544C1 50 push eax ; 取用户名第N位字符 (N为参数1)
004544C2 8B45 C0 mov eax,dword ptr ss:[ebp-40]
004544C5 50 push eax
004544C6 FF15 88104000 call dword ptr ds:[<&msvbvm60.rtcMidCha>; msvbvm60.rtcMidCharBstr
004544CC 8BD0 mov edx,eax
004544CE 8D4D D0 lea ecx,dword ptr ss:[ebp-30]
004544D1 FFD6 call esi
004544D3 8D8D 74FFFFFF lea ecx,dword ptr ss:[ebp-8C]
004544D9 FFD3 call ebx
004544DB 8B4D C4 mov ecx,dword ptr ss:[ebp-3C]
004544DE 898D 1CFFFFFF mov dword ptr ss:[ebp-E4],ecx
004544E4 C785 14FFFFFF 0>mov dword ptr ss:[ebp-EC],8
004544EE 8B55 D0 mov edx,dword ptr ss:[ebp-30]
004544F1 52 push edx
004544F2 FF15 3C104000 call dword ptr ds:[<&msvbvm60.rtcAnsiVa>; msvbvm60.rtcAnsiValueBstr
004544F8 66:8985 2CFFFFF>mov word ptr ss:[ebp-D4],ax ; 逐位取用户名的ASCII
004544FF 89BD 24FFFFFF mov dword ptr ss:[ebp-DC],edi
00454505 C785 3CFFFFFF 0>mov dword ptr ss:[ebp-C4],5 ; 5(参数2)
0045450F 89BD 34FFFFFF mov dword ptr ss:[ebp-CC],edi
00454515 8D85 14FFFFFF lea eax,dword ptr ss:[ebp-EC] ; ASCII值
0045451B 50 push eax
0045451C 8D8D 24FFFFFF lea ecx,dword ptr ss:[ebp-DC]
00454522 51 push ecx
00454523 8D55 D4 lea edx,dword ptr ss:[ebp-2C]
00454526 52 push edx
00454527 8D85 34FFFFFF lea eax,dword ptr ss:[ebp-CC]
0045452D 50 push eax
0045452E 8D8D 74FFFFFF lea ecx,dword ptr ss:[ebp-8C]
00454534 51 push ecx
00454535 FF15 58114000 call dword ptr ds:[<&msvbvm60.__vbaVarA>; 相加__vbaVarAdd
0045453B 50 push eax
0045453C 8D95 64FFFFFF lea edx,dword ptr ss:[ebp-9C]
00454542 52 push edx
00454543 FF15 D8104000 call dword ptr ds:[<&msvbvm60.__vbaVarM>; 相乘__vbaVarMul
00454549 50 push eax
0045454A 8D85 54FFFFFF lea eax,dword ptr ss:[ebp-AC]
00454550 50 push eax
00454551 FF15 F8104000 call dword ptr ds:[<&msvbvm60.__vbaVarC>; 连接__vbaVarCat
00454557 50 push eax
00454558 FF15 24104000 call dword ptr ds:[<&msvbvm60.__vbaStrV>; msvbvm60.__vbaStrVarMove
0045455E 8BD0 mov edx,eax ; 十进制连起来
00454560 8D4D C4 lea ecx,dword ptr ss:[ebp-3C]
00454563 FFD6 call esi
00454565 8D8D 54FFFFFF lea ecx,dword ptr ss:[ebp-AC]
0045456B 51 push ecx
0045456C 8D95 74FFFFFF lea edx,dword ptr ss:[ebp-8C]
00454572 52 push edx
00454573 57 push edi
00454574 FF15 2C104000 call dword ptr ds:[<&msvbvm60.__vbaFree>; msvbvm60.__vbaFreeVarList
0045457A 83C4 0C add esp,0C
0045457D 8D85 DCFEFFFF lea eax,dword ptr ss:[ebp-124]
00454583 50 push eax
00454584 8D8D ECFEFFFF lea ecx,dword ptr ss:[ebp-114]
0045458A 51 push ecx
0045458B 8D55 D4 lea edx,dword ptr ss:[ebp-2C]
0045458E 52 push edx
0045458F FF15 90114000 call dword ptr ds:[<&msvbvm60.__vbaVarF>; 下一位__vbaVarForNext
00454595 ^ E9 FEFEFFFF jmp LRC_Tool.00454498 ; 循环取
0045459A 8B45 C4 mov eax,dword ptr ss:[ebp-3C] ; 得到真码(UNICODE "612707880927")
0045459D 50 push eax
0045459E 8B4D CC mov ecx,dword ptr ss:[ebp-34]
004545A1 51 push ecx
004545A2 FF15 A4104000 call dword ptr ds:[<&msvbvm60.__vbaStrC>; 真假码比较,EAX显真码
004545A8 85C0 test eax,eax
004545AA 0F85 B4000000 jnz LRC_Tool.00454664 ; 跳则OVER,爆破NOP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
总结:用户名:feng
注册码:612707880927
明码比较的,算法也很简单。
算法不总结了,贴出个粗糙的VB算法注册机源码,希望大家能看得明白吧```哈```
'****** LRC歌词文件转换器 V2.3 算法注册机 ******
Private Sub Command1_Click()
Dim Name, Code As String
Dim temp1, temp2, temp3 As Double
Name = Text1.Text
If Len(Name) < 3 Then
Text2.Text = "注意:用户名长度不得小于3,请重新输入!"
Else
For i = 1 To Len(Name)
temp1 = Asc(Mid(Name, i))
temp2 = i + 5
temp3 = temp1 * temp2
Code = Code & temp3
Next i
Text2.Text = Code
End If
End Sub
Private Sub Command2_Click()
End
End Sub
'***********************************************
[ 本帖最后由 风球 于 2006-2-22 07:45 编辑 ] |
|