- UID
- 37793
注册时间2007-12-1
阅读权限30
最后登录1970-1-1
龙战于野
该用户从未签到
|
软件下载地址:
http://www.onlinedown.net/soft/46970.htm
运行软件注册
用户名:xinldy
注册码:123456789
下面的代码是还原出用户名:
00402CEB . /7E 16 jle short 00402D03
00402CED > |8A9404 DC0B00>mov dl, byte ptr [esp+eax+BDC]
00402CF4 . |80F2 64 xor dl, 64
00402CF7 . |889404 DC0B00>mov byte ptr [esp+eax+BDC], 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 [esp+eax+C5C]
00402D3A . |80F2 64 xor dl, 64
00402D3D . |889404 5C0C00>mov byte ptr [esp+eax+C5C], 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 [esp+C]
00381D0B 899424 88010000 mov dword ptr [esp+188], edx
00381D12 E8 19F3FFFF call 00381030
00381D17 33C0 xor eax, eax
00381D19 E9 01010000 jmp 00381E1F
00381D1E 807D 06 2D cmp byte ptr [ebp+6],2D 将第七位与"-"比较
00381D22 74 17 je short 00381D3B
00381D24 8D4C24 0C lea ecx, dword ptr [esp+C]
00381D28 899424 88010000 mov dword ptr [esp+188], edx
00381D2F E8 FCF2FFFF call 00381030
00381D9F E8 2CFEFFFF call 00381BD0 加密(不知道是什么加密)
00381DA4 8DBC24 20010000 lea edi, dword ptr [esp+120] "ead34b5ab5e5ff83"
...
下面的代码是抽取加密后得到的字符串"ead34b5ab5e5ff83"中的第4,8,12,16位得到"3a53"
00381DBE /7E 13 jle short 00381DD3
00381DC0 |8A8C04 03010000 mov cl, byte ptr [esp+eax+103]
00381DC7 |83C0 04 add eax, 4
00381DCA |884C14 28 mov byte ptr [esp+edx+28], 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 [edx+ebp+7]
00381DF0 |8A4C14 28 mov cl, byte ptr [esp+edx+28]
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 [esp+84], 2
0040942C . 8D4C24 08 lea ecx, dword ptr [esp+8]
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 编辑 ] |
|