Windows优化大师注册机源码

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航