-
-
键盘乐器2.2 算法分析
-
发表于: 2005-2-5 18:44 3215
-
破文作者: ZabShow[DFCG][CZG]
破解平台: WinXP
软件名称: 键盘乐器
软件版本: v2.2
适用平台: Win9x, Win2000
相关网页:http://www.softreg.com.cn/shareware_view.asp?id=/28F92430-E7C2-43F0-9D3E-373CB4D5C593/
用C++编写的,所以直接用OD载入
运行下BP GetDlgItemInt 断在
假注册码为:123456
00406888 . FF15 DCE14000 call dword ptr ds:[<&USER32.GetDlg>; \GetDlgItemInt
0040688E . 8B35 74334100 mov esi,dword ptr ds:[413374] <----机器码:456320
<----Eax为假注册码:123456
00406894 . B9 20000000 mov ecx,20
00406899 . 83E6 1F and esi,1F
0040689C . 8BD0 mov edx,eax
0040689E . 2BCE sub ecx,esi
004068A0 . BD 15D30800 mov ebp,8D315
004068A5 . D3E8 shr eax,cl
004068A7 . 8BCE mov ecx,esi
004068A9 . BE 0F000000 mov esi,0F
004068AE . D3E2 shl edx,cl
004068B0 . 0BC2 or eax,edx
004068B2 . 2D 78DAEC00 sub eax,0ECDA78
004068B7 . 99 cdq
004068B8 . 83E2 03 and edx,3
004068BB . 03C2 add eax,edx
004068BD . 8BC8 mov ecx,eax
004068BF . 8BC7 mov eax,edi
004068C1 . 99 cdq
004068C2 . F7FE idiv esi
004068C4 . 8BC7 mov eax,edi
004068C6 . C1F9 02 sar ecx,2
004068C9 . 81F1 FE0F0F0F xor ecx,0F0F0FFE
004068CF . 8BF2 mov esi,edx
004068D1 . 99 cdq
004068D2 . 69F6 60A49A04 imul esi,esi,49AA460
004068D8 . F7FD idiv ebp
004068DA . 2BF2 sub esi,edx
004068DC . 03F7 add esi,edi
004068DE . 81F6 6F3D6400 xor esi,643D6F
004068E4 . F7D6 not esi
004068E6 . 81E6 FFFFFF0F and esi,0FFFFFFF
004068EC . 3BF1 cmp esi,ecx
004068EE . 75 35 jnz short 键盘乐器.00406925 <----跳转则玩完!
004068F0 . 6A 40 push 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004068F2 . 68 0C1A4100 push 键盘乐器.00411A0C ; |Title = "欢迎使用!"
004068F7 . 68 E4194100 push 键盘乐器.004119E4 ; |Text = "注册成功!谢谢您对国产共享软件的支持。"
004068FC . 53 push ebx ; |hOwner
004068FD . C705 70334100 010>mov dword ptr ds:[413370],1 ; |
00406907 . FF15 BCE14000 call dword ptr ds:[<&USER32.Messag>; \MessageBoxA
综上此软件的注册码为非明码比较:
机器码= 456302
以下简称mc
a=mc and 31(1F)
b=32(20) -a
c=key shr b
d=key shl a
e=c or d
******
f=e - 15522424(ECDA78)
g=0(f>0) or g=-1(f<0)
g=g and 3
h=f + g
i=mc mod 15
j=h /4
j=j xor 252645374
********
k=i * 77243488(49aa460)
l=mc mod 578325(8d315)
k=k-l
k=k+mc
k=k xor 6569327(643d6f)
not k
k=k and fffffff(268435455)
********
比较 k和 j 不相等则玩完!
注册机代码如下(Delphi):
a:=mc and 31;<--------mc为机器码!
b:=32-a;
i:=mc mod 15;
l:=mc mod 578325;
k:=i *77243488;
k:=k-l;
k:=k+mc;
k:=k xor 6569327;
k:=not k;
k:=k and 268435455;
j:=k;
j:=j xor 252645374;
h:=j*4;
f:=h;
e:=f+15522424;
tmp1:=e shr a;
tmp2:=e shl b;
key:=tmp1 or tmp2 <----key为所求注册码!
破解平台: WinXP
软件名称: 键盘乐器
软件版本: v2.2
适用平台: Win9x, Win2000
相关网页:http://www.softreg.com.cn/shareware_view.asp?id=/28F92430-E7C2-43F0-9D3E-373CB4D5C593/
用C++编写的,所以直接用OD载入
运行下BP GetDlgItemInt 断在
假注册码为:123456
00406888 . FF15 DCE14000 call dword ptr ds:[<&USER32.GetDlg>; \GetDlgItemInt
0040688E . 8B35 74334100 mov esi,dword ptr ds:[413374] <----机器码:456320
<----Eax为假注册码:123456
00406894 . B9 20000000 mov ecx,20
00406899 . 83E6 1F and esi,1F
0040689C . 8BD0 mov edx,eax
0040689E . 2BCE sub ecx,esi
004068A0 . BD 15D30800 mov ebp,8D315
004068A5 . D3E8 shr eax,cl
004068A7 . 8BCE mov ecx,esi
004068A9 . BE 0F000000 mov esi,0F
004068AE . D3E2 shl edx,cl
004068B0 . 0BC2 or eax,edx
004068B2 . 2D 78DAEC00 sub eax,0ECDA78
004068B7 . 99 cdq
004068B8 . 83E2 03 and edx,3
004068BB . 03C2 add eax,edx
004068BD . 8BC8 mov ecx,eax
004068BF . 8BC7 mov eax,edi
004068C1 . 99 cdq
004068C2 . F7FE idiv esi
004068C4 . 8BC7 mov eax,edi
004068C6 . C1F9 02 sar ecx,2
004068C9 . 81F1 FE0F0F0F xor ecx,0F0F0FFE
004068CF . 8BF2 mov esi,edx
004068D1 . 99 cdq
004068D2 . 69F6 60A49A04 imul esi,esi,49AA460
004068D8 . F7FD idiv ebp
004068DA . 2BF2 sub esi,edx
004068DC . 03F7 add esi,edi
004068DE . 81F6 6F3D6400 xor esi,643D6F
004068E4 . F7D6 not esi
004068E6 . 81E6 FFFFFF0F and esi,0FFFFFFF
004068EC . 3BF1 cmp esi,ecx
004068EE . 75 35 jnz short 键盘乐器.00406925 <----跳转则玩完!
004068F0 . 6A 40 push 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004068F2 . 68 0C1A4100 push 键盘乐器.00411A0C ; |Title = "欢迎使用!"
004068F7 . 68 E4194100 push 键盘乐器.004119E4 ; |Text = "注册成功!谢谢您对国产共享软件的支持。"
004068FC . 53 push ebx ; |hOwner
004068FD . C705 70334100 010>mov dword ptr ds:[413370],1 ; |
00406907 . FF15 BCE14000 call dword ptr ds:[<&USER32.Messag>; \MessageBoxA
综上此软件的注册码为非明码比较:
机器码= 456302
以下简称mc
a=mc and 31(1F)
b=32(20) -a
c=key shr b
d=key shl a
e=c or d
******
f=e - 15522424(ECDA78)
g=0(f>0) or g=-1(f<0)
g=g and 3
h=f + g
i=mc mod 15
j=h /4
j=j xor 252645374
********
k=i * 77243488(49aa460)
l=mc mod 578325(8d315)
k=k-l
k=k+mc
k=k xor 6569327(643d6f)
not k
k=k and fffffff(268435455)
********
比较 k和 j 不相等则玩完!
注册机代码如下(Delphi):
a:=mc and 31;<--------mc为机器码!
b:=32-a;
i:=mc mod 15;
l:=mc mod 578325;
k:=i *77243488;
k:=k-l;
k:=k+mc;
k:=k xor 6569327;
k:=not k;
k:=k and 268435455;
j:=k;
j:=j xor 252645374;
h:=j*4;
f:=h;
e:=f+15522424;
tmp1:=e shr a;
tmp2:=e shl b;
key:=tmp1 or tmp2 <----key为所求注册码!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- 求一DriverStudio 3.2 的下载地址(最好是HTTP或FTP的) 4902
- 键盘乐器2.2 算法分析 3216
- [求助]请会delphi的兄弟帮帮忙! 5403
- 请问:这样的算法可以通过逆向来求出注册码吗? 4649
看原图
赞赏
雪币:
留言: