📄 crack40.htm
字号:
<html>
<head>
<title>看雪学苑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.p8 { font-size: 8pt}
.p9 { font-size: 9pt}
a:hover { color: #00FF00}
a { text-decoration: none}
.p12 { font-size: 12pt; font-weight: bold; color: #FF3333}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<p><a href="index.htm" tppabs="http://toye.dihou.org/index.htm"><span class="p9">首页</span></a><span class="p9">>><a href="crack.htm" tppabs="http://toye.dihou.org/crack.htm">破解心得</a></span>
</p>
<p align="center"><font face="宋体"><span class="p9">Windows优化大师v3.0-v3.4的注册机源代码</span></font>
</p>
<blockquote>
<p align="center"><span class="p9"><font face="宋体">时空幻影于2001年3月15日</font></span></p>
<p align="left"><span class="p9"><font face="宋体">我在《Windows优化大师》这个软件开始使用某种加密算法时就在破解时有点摸不着头脑,不知道这个算法是RSA加密算法。自从几个月前拜读了《论坛精华Ⅱ》中的《Windows优化大师v2.9+的注册码加密算法》一文后我就开始按照该文所讲的方法编写注册机,从此噩梦开始......</font></span></p>
<p align="left"><span class="p9"><font face="宋体">我先把n=0x0000000069AAA0E3进行因子分解求出p=0x80BD和q=0xD21F,于是就求得f=0x0000000069A53372,然后又按照第四条规则很辛苦地编程求出d=0x000000003E0877FD。至此我想应该可以顺利地编写出注册机了吧,然而作出来的注册机不但算出来的注册码不对,而且用加密算法算出来的结果不能用解密算法还原成原来输入的两个数值。这个问题一直弄得我头大,直到最近我从别人那弄的一个注册申请码和正确的注册码,我才算出解密密钥d不是0x000000003E0877FD,而是0x00000000002C86F9,于是我终于写成了注册机。</font></span></p>
<p align="left"><span class="p9"><font face="宋体">源代码如下:(C++ Builder 5.0编译通过)</font></span></p>
<p align="left"><span class="p9">//---------------------------------------------------------------------------</span></p>
<p><span class="p9">#include <vcl.h><br>
#pragma hdrstop</span></p>
<p><span class="p9">#include "Unit1.h"<br>
//---------------------------------------------------------------------------<br>
#pragma package(smart_init)<br>
#pragma resource "*.dfm"<br>
TForm1 *Form1;<br>
//---------------------------------------------------------------------------<br>
__fastcall TForm1::TForm1(TComponent* Owner)<br>
: TForm(Owner)<br>
{<br>
}<br>
//---------------------------------------------------------------------------</span></p>
<p><span class="p9">unsigned __int64 __fastcall Encrypt_Decrypt(unsigned __int64
m,unsigned __int64 e,unsigned __int64 n)<br>
{<br>
unsigned __int64 a,b,c;</span></p>
<p><span class="p9"> a=m;<br>
b=e;<br>
c=1;</span></p>
<p><span class="p9"> while(b)<br>
{<br>
if ((b%2)==0)<br>
{<br>
b=b/2;<br>
a=(a*a)%n;<br>
}<br>
else<br>
{<br>
b=b-1;<br>
c=(c*a)%n;<br>
}<br>
}<br>
return (c);<br>
}<br>
//---------------------------------------------------------------------------</span></p>
<p><span class="p9"><br>
void __fastcall TForm1::Button2Click(TObject *Sender)<br>
{<br>
Application->MessageBox("时空幻影于2001年3月12日,如有什么问题请E-MAIL:shikonghuanying@sina.com","关于",MB_OK);<br>
}<br>
//---------------------------------------------------------------------------</span></p>
<p></p>
<p><span class="p9">void __fastcall TForm1::Button1Click(TObject *Sender)<br>
{<br>
unsigned __int32 s[4]={0x20756f59,0x20657261,0x20676962,0x2e676970};//"You
are big pig."的内存表示<br>
unsigned __int32 t1=0,t2=0,esi=0x9e3779b9,temp;<br>
unsigned __int64 n=0x69aaa0e3,d=0x002c86f9,m1,m2,n1,n2,t;<br>
int i,j;<br>
AnsiString Buffer=Edit1->Text;<br>
if (Edit1->Text.IsEmpty())<br>
{<br>
Application->MessageBox("请输入注册申请码!","提示",MB_OK);<br>
return;<br>
}<br>
Buffer=Buffer+"1234567";<br>
Buffer.SetLength(8);<br>
i=4;<br>
while (i>0)<br>
{<br>
t1=0x100*t1+(StrToInt(Buffer[i])+0x30);<br>
i--;<br>
}<br>
i=8;<br>
while (i>4)<br>
{<br>
t2=0x100*t2+(StrToInt(Buffer[i])+0x30);<br>
i--;<br>
}<br>
for (j=0;j<32;j++)<br>
{<br>
temp=t2<<4;<br>
t1=t1+temp+(s[0]^t2);<br>
temp=t2>>5;<br>
t1=t1+(temp^esi)+s[1];<br>
temp=t1<<4;<br>
t2=t2+temp+(s[2]^t1);<br>
temp=t1>>5;<br>
t2=t2+(temp^esi)+s[3];<br>
esi=esi+0x9e3779b9;<br>
}<br>
t1=t1+2;<br>
i=0;<br>
j=0;<br>
temp=t1;<br>
if (t1>0x3fffffff)<br>
{<br>
temp=t1&0x0fffffff;<br>
s1:<br>
;<br>
if (temp<=0x3fffffff)<br>
{<br>
j=1;<br>
while (j<=4)<br>
{<br>
t=j*0x100000000+(temp<<2);<br>
if ((t>>2)%0x100000000==t1) goto s2;<br>
else j++;<br>
}<br>
i=i+0x10000000;<br>
temp=temp+0x10000000;<br>
if (i<0x40000000) goto s1;<br>
}<br>
}<br>
s2:<br>
;<br>
m1=temp;<br>
m2=(0x50|j)+2;<br>
n1=Encrypt_Decrypt(m1,d,n);<br>
n2=Encrypt_Decrypt(m2,d,n);<br>
Edit2->Text=IntToHex((__int64)n1,8);<br>
Edit3->Text=IntToHex((__int64)n2,8);<br>
}<br>
//---------------------------------------------------------------------------</span></p>
<p></p>
</blockquote>
<p> </p>
<p> </p>
<p> </p>
<a href="index.htm" tppabs="http://toye.dihou.org/index.htm"><span class="p9">首页</span></a><span class="p9">>><a href="crack.htm" tppabs="http://toye.dihou.org/crack.htm">破解心得</a></span>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -