送段代码你瞧瞧!可以获得各种计算机信息!加密最好用硬件!
ogram Project1;
uses
; windows,
; messages,
; registry;
const
; ID_BIT=$200000;
type
; TCPUID=array[1..4] of Longint;
; TVendor=array[0..11] of char;
var
; ;WinClass:TWndClassA;
; ;inst,handle,button1,label1,edit1:integer;
; ;Msg:TMsg;
; ;hFont:integer;
; ;CPUID:TCPUID;
; ;V:AnsiString;
; ;S:TVendor;
; ;str
char;
; ;user
Char;
; ;{procedure checkpassword;
; ;function isCPUID_Avalible:Boolean;
; ;function getcpuid:Tcpuid;
; ;function getcpuvendor:tvendor;
; ;function getwindowproductid:string;
; ;function getusername:ansistring;
; function WindowProc(hWnd,uMsg,wParam,lParam:integer):integer; }
;function iscpuid_avalible:boolean;register;
asm
; pushfd
; POP EAX
; MOV EDX,EAX
; XOR EAX,ID_BIT
; PUSH EAX
; POPFD
; PUSHFD
; POP EAX
; XOR EAX,EDX
; JZ @EXIT
; MOV AL,TRUE
; @exit:
end;
function getcpuid:TCPUID;assembler;register;
asm
; PUSH EBX
; PUSH EDI
; MOV EDI,EAX
; MOV EAX,1
; DW $A20F
; STOSD
; MOV EAX,EBX
; STOSD
; MOV EAX,ECX
; STOSD
; MOV EAX,EDX;
; STOSD
; POP EDI
; POP EBX
END;
FUNCTION GETCPUVENDOR:TVendor;assembler;register;
ASM
; PUSH EBX
; PUSH EDI
; MOV EDI,EAX
; MOV EAX,0
; DW $A20F
; MOV EAX,EBX
; XCHG EBX,ECX
; MOV ECX,4
@1:
; STOSB
; SHR EAX,8
; LOOP @1
; MOV EAX,EDX
; MOV ECX,4
@2:
; STOSB
; SHR EAX,8
; LOOP @2
; MOV EAX,EDX
; MOV ECX,4
@3:
; STOSB
; SHR EAX,8
; LOOP @3
; POP EDI
; POP EBX
END;
function getwindowsproductid:string;
var
;reg:TRegistry;
begin
;Result:='';
;reg:=TRegistry.Create;
;with reg do
; begin
; ;rootkey:=HKEY_LOCAL_MACHINE;
; ;OpenKey('Software/Microsoft/windows/currentvwesion',false);
; ;result:=readstring('productid');
; end;
;reg.free;
end;
function getusername:ansistring;
var
; lpUserName
AnsiChar;
; lpnLength
WORD;
begin
; result:='';
; lpnlength:=0;
; wnetgetuser(nil,nil,lpnlength);
; if lpnlength>0 then
; ;begin
; ; getmem(lpusername,lpnlength);
; ; if wnetgetuser(nil,lpusername,lpnlength)= NO_ERROR then
; ; result:=lpusername;
; ; freemem(lpusername,lpnlength);
; ;end;
;end;
procedure CheckPassWord;
; var
; ; TextLength:integer;
; ; text
char;
; begin
; ; TextLength:=GetWindowTextLength(Edit1);
; ; if textlength=6 then
; ; ;begin
; ; ; ;getmem(text,textlength+1);
; ; ; ;getwindowtext(edit1,text,textlength+1);
; ; ; ;if text='winapi' then
; ; ; ;begin
; ; ; ; ;MessageBoxA(Handle,'Password is Correct.','password check',MB_OK);
; ; ; ;if isCPUID_Avalible then
; ; ; ; ;begin
; ; ; ; ; ;CPUID:=GetCPUID;
; ; ; ; ; ;S:=GetCpuVendor;
; ; ; ; ; ;V:=GetUserName;
; ; ; ; ; ;user:=Pchar(V);
; ; ; ; ; ;setwindowtext(label1,s);
; ; ; ; ; ;str:=PChar(GetWindowsProductId+' '+user);
; ; ; ; ; ;setwindowtext(edit1,str);
; ; ; ; ; end;
; ; ; ; freeMem(text,textlength+1);
; ; ; ; exit;
; ; ; end;
; ; ;end;
; ; ;messageboxa(handle,'password is incorrect.','password check',MB_OK);
; ; ;end;
;Function WindowProc(hWnd,uMsg,wParam,lParam:integer):integer;stdcall;
; ;begin
; ; ;result:=DefWindowProc(hWnd,uMsg,wParam,lParam);
; ; ;if (lParam=button1) and (uMsg=WM_COMMAND) then
; ; ; ;CheckPassWord;
; ; ;if uMsg=WM_DESTROY then
; ; ; ; Halt;
; ;end;
//以下是程序主体
begin
; inst:=hinstance;
; with winclass do
; begin
; ; style:=CS_CLASSDC or CS_PARENTDC;
; ; lpfnwndproc:=@WindowProc; //回调函数
; ; hinstance:=inst;
; ; hbrBackGround:=color_btnface+1;
; ; lpszCLassname:='AG_TESTWINDOW';
; ; hCursor:=loadCursor(0,IDC_ARROW);
; ;end;
; ;RegisterClass(WinClass);
; ;//创建窗体
; ;Handle:=CreateWindowEx(WS_EX_WINDOWEDGE,'AG_TESTWINDOW','Window API',WS_VISIBLE or
; ; ; WS_SIZEBOX OR WS_CAPTION OR WS_SYSMENU,150,200,380,65,0,0,inst,nil);
; ;Button1:=CreateWindow('button','OK',WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
; ; ; 316,8,50,20,handle,0,inst,nil);
; ;label1:=CreateWindow('Static','',WS_VISIBLE or WS_CHILD or SS_LEFT,8,12,76
; ; ; ,13,handle,0,inst,nil);
; ;edit1:=createwindowEx(WS_EX_CLIENTEDGE,'Edit','',WS_CHILD or WS_VISIBLE or WS_BORDER,
; ; ; 88,8,220,21,handle,0,inst,nil);
; ;hFont:=CreateFont(-11,0,0,0,400,0,0,0,
; ; ; DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
; ; ; DEFAULT_PITCH OR FF_DONTCARE,'MS SANS SERIF');
; ;if hfont<>0 then
; ; ; begin
; ; ; ; SendMessage(Button1,WM_SETFONT,hFont,0);
; ; ; ; SendMessage(label1,WM_SETFONT,hFont,0);
; ; ; ; SendMessage(edit1,WM_SETFONT,hFont,0);
; ; ; end;
; ;setwindowtext(label1,'enter password:');
; ;setfocus(edit1);
; ;updatewindow(handle);
; ;while(getmessage(Msg,handle,0,0)) do
; ; ; begin
; ; ; ; TranslateMessage(msg);
; ; ; ; DispatchMessage(msg);
; ; ; end;
;end.