⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit6.pas

📁 安全芯加密狗 安全芯加密狗
💻 PAS
字号:
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, MyUtils, sChip;

type
  TForm6 = class(TForm)
	Label1: TLabel;
	Label2: TLabel;
	C1:     TEdit;
	C2:     TEdit;
	C3:     TEdit;
	C4:     TEdit;
	C5:     TEdit;
	C6:     TEdit;
	C7:     TEdit;
	C8:     TEdit;
	R1:     TEdit;
	R2:     TEdit;
	R3:     TEdit;
	R4:     TEdit;
	R5:     TEdit;
	R6:     TEdit;
	R7:     TEdit;
	R8:     TEdit;
	Button1: TButton;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    hKey: THandle;
    { Public declarations }
  end;

var
  Form6: TForm6;

implementation

{$R *.dfm}

procedure TForm6.FormActivate(Sender: TObject);
begin
    C1.Text := IntToHex(0, 2);
    C2.Text := C1.Text;
    C3.Text := C1.Text;
    C4.Text := C1.Text;
    C5.Text := C1.Text;
    C6.Text := C1.Text;
    C7.Text := C1.Text;
    C8.Text := C1.Text;

    R1.Text := C1.Text;
    R2.Text := C1.Text;
    R3.Text := C1.Text;
    R4.Text := C1.Text;
    R5.Text := C1.Text;
    R6.Text := C1.Text;
    R7.Text := C1.Text;
    R8.Text := C1.Text;
end;

procedure TForm6.Button1Click(Sender: TObject);
var
    i: Integer;
    rc: Boolean;
    data: QueryData;
begin
    data.cbSize := 8;

    i := Str2Char(C1.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 1', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[0] := Byte(i);

    i := Str2Char(C2.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 2', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[1] := Byte(i);

    i := Str2Char(C3.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 3', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[2] := Byte(i);

    i := Str2Char(C4.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 4', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[3] := Byte(i);

    i := Str2Char(C5.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 5', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[4] := Byte(i);

    i := Str2Char(C6.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 6', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[5] := Byte(i);

    i := Str2Char(C7.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 7', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[6] := Byte(i);

    i := Str2Char(C8.Text);
    if(i = -1) then
    begin
        MessageBox(Handle, 'Bad format in challenge byte 8', 'Query data error', MB_OK);
        Exit;
    end;
    data.Challenge[7] := Byte(i);;

    rc := QuerysChip(hKey, @data);
    if(not rc) then
    begin
        MessageBox(Handle, 'Query failed.', 'Query error', MB_OK);
        Exit;
    end;

    R1.Text := IntToHex(Integer(data.Response[0]), 2);
    R2.Text := IntToHex(Integer(data.Response[1]), 2);
    R3.Text := IntToHex(Integer(data.Response[2]), 2);
    R4.Text := IntToHex(Integer(data.Response[3]), 2);
    R5.Text := IntToHex(Integer(data.Response[4]), 2);
    R6.Text := IntToHex(Integer(data.Response[5]), 2);
    R7.Text := IntToHex(Integer(data.Response[6]), 2);
    R8.Text := IntToHex(Integer(data.Response[7]), 2);
  
end;

end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -