Windows优化大师注册机源码

2008-04-09 04:27:38来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

Windows优化大师注册机源码
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Registry, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
GetKeySpeedButton: TSpeedButton;
CheckBox1: TCheckBox;
Label4: TLabel;
procedure GetKeySpeedButtonClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Family, Model, Stepping: Byte;

implementation

{$R *.dfm}

//获得CPU信息的过程,用汇编代码写的
procedure GetCpuID;
asm
PUSH EAX
MOV EAX, 1
DW $A20F //汇编指令CPUID的机器代码
MOV Stepping, AL
AND Stepping, 0FH //取得CPU STEPPING数送入到变量Stepping中
AND AL, 0F0H
SHR AL, 4
MOV Model, AL //取得CPU MODEL数送入到变量Model中
SHR AX, 8
AND AL, 0FH
MOV Family, AL //取得CPU FAMILYG数送入到变量Family中
POP EAX
end;

//RSA的加密和解密函数,等价于(m^e) mod n(即m的e次幂对n求余)
function Encrypt_Decrypt(m: Int64; e: Int64=$2C86F9; n: Int64=$69AAA0E3): Int64;
var
a, b, c: Int64;
begin
a:=m;
b:=e;
c:=1;
while b<>0 do
if (b mod 2)=0
then begin
b:=b div 2;
a:=(a * a) mod n;
end
else begin
b:=b - 1;
c:=(a * c) mod n;
end;
Result:=c;
end;

procedure TForm1.GetKeySpeedButtonClick(Sender: TObject);
var
ID, UserName, CpuVer: String;
s: Array [1..4] of Cardinal;
temp, Num1, Num2: Cardinal;
Code1, Code2: Int64;
i, ascii: Byte;
Reg: TRegistry;
begin
if (Edit1.Text='''''''') and (CheckBox1.Checked=False)
then Application.MessageBox(''''请输入注册申请码!'''', ''''警告'''', MB_OK);
if (Edit1.Text='''''''') and (CheckBox1.Checked=True)
then Application.MessageBox(''''请输入注册者姓名!'''', ''''警告'''', MB_OK);
if (CheckBox1.Checked=true) and (Edit1.Text<>'''''''')
then begin
UserName:=Edit1.Text; //从Edit1.Text中取得用户名
GetCpuID; //调用过程GetCpuID
CpuVer:=''''Level '''' IntToStr(Family) '''' Rev. '''' IntToStr(Model) ''''.'''' IntToStr(Stepping);
temp:=1;
i:=1;
while UserName[i]<>#0 do begin
ascii:=ord(UserName[i]); //函数ord()的作用为取得字符的ASCII码
temp:=(temp*ascii $D0878) mod $F4240;
inc(i);
end;
i:=1;
while CpuVer[i]<>#0 do begin
ascii:=ord(CpuVer[i]);
temp:=(temp*ascii $2597D) mod $F4240;
inc(i);
end;
ID:=IntToStr(temp);
end;
if (CheckBox1.Checked=false) and (Edit1.Text<>'''''''')
then ID:=Edit1.Text;
ID:=ID ''''1234567'''';
SetLength(ID, 8); //把字符串ID长度变为8个,并把后面的字符截掉

//下面四行语句是把字符串''''You are big pig.''''的内存数据送到变量s中
s[1]:=$20756f59;
s[2]:=$20657261;
s[3]:=$20676962;
s[4]:=$2e676970;
Num1:=0;
for i:=4 downto 2 do
Num1:=(Num1 ord(ID[i])) shl 8;
Num1:=Num1 ord(ID[1]);
Num2:=0;
for i:=8 downto 6 do
Num2:=(Num2 ord(ID[i])) shl 8;
Num2:=Num2 ord(ID[5]);
temp:=0;
for i:=1 to 32 do begin
temp:=temp $9E3779B9;
Num1:=Num1 (Num2 shl 4) (s[1] xor Num2) ((Num2 shr 5) xor temp) s[2];
Num2:=Num2 (Num1 shl 4) (s[3] xor Num1) ((Num1 shr 5) xor temp) s[4];
end;

Code1:=(Num1 mod $40000000) 2;
Code2:=($93E0014 shl 2) Num1 div $40000000 2;
Code1:=Encrypt_Decrypt(Code1);
code2:=Encrypt_Decrypt(Code2);
if (CheckBox1.Checked=False) and (Edit1.Text<>'''''''')
then begin
Edit2.Text:=IntToHex(Code1, 8);
Edit3.Text:=IntToHex(Code2, 8);
end;
if (CheckBox1.Checked=True) and (Edit1.Text<>'''''''')
then begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKey(''''Software\Wom'''', True)
then begin
Reg.DeleteValue(''''Masters'''');
Reg.WriteString(''''Register'''', UserName);
Reg.WriteString(''''Register_1'''', IntToHex(Code1, 8));
Reg.WriteString(''''Register_2'''', IntToHex(Code2, 8));
end;
Reg.Free;
Application.MessageBox(''''自动注册完成!'''', ''''信息'''', MB_OK);
end;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked=true
then begin
GetKeySpeedButton.Caption:=''''自动注册'''';
Label1.Caption:=''''注册者姓名'''';
Edit1.MaxLength:=0;
Label2.Visible:=false;
Label3.Visible:=false;
Edit2.Visible:=false;
Edit3.Visible:=false;
end
else begin
GetKeySpeedButton.Caption:=''''取得注册码'''';
Label1.Caption:=''''注册申请码'''';
Edit1.MaxLength:=8;
Label2.Visible:=true;
Label3.Visible:=true;
Edit2.Visible:=true;
Edit3.Visible:=true;
end;
end;

end.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Decal SDL-Delphi的范型类库-通用数据结构与算法类库(一)

下一篇:Delphi 对象流式管理---窗体文件(*.dfm)的转换