MP3超强铃声转换器 6.0算法简单分析
软件下载地址:http://www.onlinedown.net/soft/46970.htm
运行软件注册
用户名:xinldy
注册码:123456789
下面的代码是还原出用户名:
00402CEB . /7E 16 jle short 00402D03
00402CED > |8A9404 DC0B00>mov dl, byte ptr
00402CF4 . |80F2 64 xor dl, 64
00402CF7 . |889404 DC0B00>mov byte ptr , dl
00402CFE . |40 inc eax
00402CFF . |3BC1 cmp eax, ecx
00402D01 .^|7C EA jl short 00402CED
下面的代码是还原出注册码:
00402D31 . /7E 16 jle short 00402D49
00402D33 > |8A9404 5C0C00>mov dl, byte ptr
00402D3A . |80F2 64 xor dl, 64
00402D3D . |889404 5C0C00>mov byte ptr , dl
00402D44 . |40 inc eax
00402D45 . |3BC1 cmp eax, ecx
00402D47 .^|7C EA jl short 00402D33
00402DDA.FF15 5C764700 call dword pt[<&player.CPlayer::stop>]关键
00402DE0 .85C0 test eax, eax
00402DE2 .74 0A je short 00402DEE
进入00402DDA的call:
00381D02 83F9 08 cmp ecx, 8
00381D05 7D 17 jge short 00381D1E
00381D07 8D4C24 0C lea ecx, dword ptr
00381D0B 899424 88010000 mov dword ptr , edx
00381D12 E8 19F3FFFF call 00381030
00381D17 33C0 xor eax, eax
00381D19 E9 01010000 jmp 00381E1F
00381D1E 807D 06 2D cmp byte ptr ,2D 将第七位与"-"比较
00381D22 74 17 je short 00381D3B
00381D24 8D4C24 0C lea ecx, dword ptr
00381D28 899424 88010000 mov dword ptr , edx
00381D2F E8 FCF2FFFF call 00381030
00381D9F E8 2CFEFFFF call 00381BD0 加密(不知道是什么加密)
00381DA4 8DBC24 20010000 lea edi, dword ptr "ead34b5ab5e5ff83"
...
下面的代码是抽取加密后得到的字符串"ead34b5ab5e5ff83"中的第4,8,12,16位得到"3a53"
00381DBE /7E 13 jle short 00381DD3
00381DC0 |8A8C04 03010000 mov cl, byte ptr
00381DC7 |83C0 04 add eax, 4
00381DCA |884C14 28 mov byte ptr , cl
00381DCE |42 inc edx
00381DCF |3BC6 cmp eax, esi
00381DD1^|7C ED jl short 00381DC0
...
...
下面的代码是将注册码的第七位以后的内容与抽出的"3a53"做比较:
00381DEA /74 1E je short 00381E0A
00381DEC |8A442A 07 mov al, byte ptr
00381DF0 |8A4C14 28 mov cl, byte ptr
00381DF4 |3AC1 cmp al, cl
00381DF6 |75 41 jnz short 00381E39
继续F8来到:
00409416 .FF15 5C764700 call dword ptr[<&player.CPlayer::stop>] 关键
0040941C .85C0 test eax, eax
0040941E 0F85 88000000 jnz 004094AC
00409424 .C68424 840000>mov byte ptr , 2
0040942C .8D4C24 08 lea ecx, dword ptr
00409430 >E8 40970500 call 00462B75
00409435 .B8 84784A00 mov eax, 004A7884 试用版 6.0 未注册!
...
...
004094D6 .B8 70784A00 mov eax, 004A7870 完整版 6.0 已注册!
004094DB .^ E9 5AFFFFFF jmp 0040943A
00409416处调用的call与00402DDA处的call是一样的
注册码的形式应该是:xxxxxx-yyyy
其中yyyy是xxxxxx加密后得到的字符串中抽取的第4,8,12,16位组成的字符串
一个可用的注册码:123456-3a53,注册码保存的位置:key.dat
文中不对之处望大家指正!
[ 本帖最后由 xinldy 于 2009-8-25 00:26 编辑 ] 算法没有点出来...这个东东算法一直没变~~~MD5的简单应用 学习一下。 这算法简单分析,简单过了吧,核心的算法米看到~~~~~~~~~~!/:L 3a53 是常量吗? 3a53是万能码的一部分吧/:good 3a53啥都不是/
注册码后四位为 MD5(前6位) 得到字符串中抽出来的字符。 因为我的电脑出了一些问题没有时间再调试,等忙过我一定要继续分析一下!感谢大家提出的意见,谢谢!
感谢wan,luckly!
[ 本帖最后由 xinldy 于 2009-8-25 16:40 编辑 ]
页:
[1]