xinldy 发表于 2009-8-23 12:56:03

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 编辑 ]

wan 发表于 2009-8-23 15:18:48

算法没有点出来...这个东东算法一直没变~~~MD5的简单应用

kcr 发表于 2009-8-24 10:17:29

学习一下。

ella 发表于 2009-8-24 13:31:59

这算法简单分析,简单过了吧,核心的算法米看到~~~~~~~~~~!/:L

Luckly 发表于 2009-8-24 16:40:30

3a53 是常量吗?

cjteam 发表于 2009-8-24 18:29:22

3a53是万能码的一部分吧/:good

wan 发表于 2009-8-24 18:43:03

3a53啥都不是/
注册码后四位为 MD5(前6位) 得到字符串中抽出来的字符。

xinldy 发表于 2009-8-24 21:53:10

因为我的电脑出了一些问题没有时间再调试,等忙过我一定要继续分析一下!感谢大家提出的意见,谢谢!

感谢wan,luckly!

[ 本帖最后由 xinldy 于 2009-8-25 16:40 编辑 ]
页: [1]
查看完整版本: MP3超强铃声转换器 6.0算法简单分析