{$R *.dfm}
////////////////////////////////////////////////
//一些无用的ANTI,网络上早已泛滥,充场面,哈哈//
////////////////////////////////////////////////
Procedure Anti_DeDe();//检测DEDE反编译器
var
DeDeHandle:THandle;
i:integer;
begin
DeDeHandle:=FindWindow(nil,chr($64)+chr($65)+chr($64)+chr($65));
if DeDeHandle<>0 then
begin
For i:=1 to 4500 do SendMessage(DeDeHandle,WM_CLOSE,0,0);
end;
end;
Function ABC42():Boolean; //检测调试器;
var
YInt,NInt:Integer;
begin
asm
mov eax,fs:[30h]
movzx eax,byte ptr[eax+2h]
or al,al
jz @No
jnz @Yes
@No:
mov NInt,1
@Yes:
Mov YInt,1
end;
if YInt=1 then
Result:=True;
if NInt=1 then
Result:=False;
end;
//Anti-Monitor
Function ABC39: Boolean; //检测Dump;
var
hFile: Thandle;
Begin
Result:= false;
hFile := FindWindow(nil,'ProcDump32 (C) 1998, 1999, 2000 G-RoM, Lorian & Stone');
if( hFile <> 0 ) then
begin
Result:= TRUE;
end;
End;
Function ABC40: Boolean; //检测RegMON;
var
hFile: Thandle;
Begin
Result:= false;
hFile:= FindWindow(nil,'Registry Monitor - Sysinternals: www.sysinternals.com');
if( hFile <> 0 ) then
begin
Result:=TRUE;
end;
End;
Function ABC41: Boolean;stdcall; //检测FileMON;
var
hFile:Thandle;
Begin
Result:=false;
hFile:=FindWindow(nil,'File Monitor - Sysinternals: www.sysinternals.com');
if( hFile <> 0 ) then
begin
Result:=TRUE;
end;
End;
procedure TForm1.tmr1Timer(Sender: TObject);
begin
if Random(8)= 1 then
Water.Blob(-1,-1,Random(1)+1,Random(500)+50);
Water.Render(Bmp,img1.Picture.Bitmap);
with img1.Canvas do
begin
Brush.Style:=bsClear;
font.size:=12;
font.color:=$FFFFFF; TextOut((Bmp.Width - TextWidth('Musoft'))div 2+2,
10,'Musoft');
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Bmp.Free;
Water.Free;
end;
procedure TForm1.RibbonButton2Click(Sender: TObject);
begin
close
end;
//////////////////////////////////////////////
//很蹩脚又很简单的算法,开始忽悠ING,嘿嘿 。//
//////////////////////////////////////////////
function Musoft(X,Y:string):string;
begin
Result:=IntToHex((StrToInt('$'+X) xor StrToInt('$'+Y)),1);
end;
procedure TForm1.RibbonButton1Click(Sender: TObject);
var
i:integer;
S1,S2,S3,S4,A,B,C,D,E,F,G:string;
InputStr:array [1..2] of string;
OutputStr,XORStr:string;
strTmp:string;
begin
S3:= Trim(GetIdeDiskSerialNumber()); //取得硬盘ID,并去掉空格,将16进制连成字符串
S4:=StringReplace ( S3, ' ', '', [rfReplaceAll] );
S1:=S4;
S2:='';
for i:=1 to length(S1) do
begin
S2:=S2+IntToHex(Ord(S1[i]),2);
end;
if length(edit1.Text)>=6 then //用户名不小于6位
Begin
for i:=1 to length(Edit1.Text) do
C:=C+IntToHex(Ord(Edit1.Text[i]),2); //用户名转换成16进制并连接
B:=copy(c,1,2); //取用户名前两位16进制
InputStr[1]:='';
InputStr[2]:='';
OutputStr:='';
XORStr:=B;
for i:=1 to length(S2) div 2 do //异或运算
begin
InputStr[1]:=copy(S2,2*i-1,1);
InputStr[2]:=copy(S2,2*i,1);
InputStr[1]:=Musoft(InputStr[1],XORStr[1]);
InputStr[2]:=Musoft(InputStr[2],XORStr[2]);
OutputStr:=OutputStr+InputStr[1]+InputStr[2];
end;
D:=''+ UpperCase(MD5Print(MD5String(OutputStr))); //上面的结果进行MD5
E:=copy(D,5,1) //取第5位
end;
begin
if length(edit2.Text)>=6 then
for i:=1 to length(Edit2.Text) do //注册码16进制连接
F:=F+IntToHex(Ord(Edit2.Text[i]),2);
G:=copy(F,4,1) //取第4位
end;
begin
if (length(e)<>0) and (E=G) then //比较
Edit2.Text:='RegisteD By:'+edit1.Text
end;
end;
end.