?? main.pas
字號:
unit main;
interface
uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls ;
type
TForm1 = class(TForm)
List: TListBox;
Button4: TButton;
Button1: TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FromClose(Sender: TObject; var Action: TCloseAction);
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hRY2: THandle;
implementation
uses head; //包含接口和常量的定義
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
str :string;
retcode :integer;
begin
List.Items.Clear();
hRY2:=Loadlibrary('Rockey2.dll');
if hRY2 = 0 then
begin
List.Items.Add('訪問狗驅動文件失敗!');
exit;
end;
RY2_Find := GetProcAddress(hRY2, 'RY2_Find');
RY2_Open := GetProcAddress(hRY2, 'RY2_Open');
RY2_Close := GetProcAddress(hRY2, 'RY2_Close');
RY2_GenUID := GetProcAddress(hRY2,'RY2_GenUID');
RY2_Write := GetProcAddress(hRY2,'RY2_Write');
RY2_Read:= GetProcAddress(hRY2,'RY2_Read');
end;
procedure TForm1.FromClose(Sender: TObject; var Action: TCloseAction);
begin
Freelibrary(hRY2);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
retcode ,handle,block_index:integer;
uid,hid:cardinal;
buffer :array [0..512]of char;
str:string;
pchars :PChar;
blocknum:integer;
tempstr:integer;
temp:integer;
SysTime: TsystemTime;
mytime: TDateTime;
begin
list.Items.Clear ;
list.Items.Add('極域電子教室軟件加密狗數據讀取工具 V1.0');
list.Items.Add('制作:又見春風[359235708]');
list.Items.Add('申明:本工具僅供私人學習使用,嚴禁非法散布和用于商業用途。');
list.Items.Add('違者造成的所有責任作者概不負責,由散布者自行承擔。');
list.Items.Add('數據讀取如下:');
// 用指定的 UID 來讀加密鎖
retcode := RY2_Find();
if (retcode < 0) then
begin
FmtStr(str,'錯誤編號: %x;', [retcode]);
List.Items.Add(str);
exit;
end;
if (retcode = 0) then
begin
List.Items.Add('發生錯誤: 訪問狗驅動文件失敗!');
exit;
end ;
FmtStr(str,'找到: %x 只極域電子教室系列軟件加密狗;', [retcode]);
List.Items.Add(str);
//str := Inputbox('Input','please input uid : ','2710158091');
str := Inputbox('輸入開發口令','請輸入開發口令,不輸入則使用默認值 : ','2224287277');
//uid := (StrToInt(str));
uid := strtoInt64(str); //官方用的上面的代碼,不能支持10位uid。
retcode := RY2_Open(1, uid, hid);
if retcode < 0 then
begin
FmtStr(str, '錯誤編號: %x', [retcode]);
List.Items.Add(str);
exit;
end ;
handle := retcode;
//str := Inputbox('Input','Please input write block index(0-4)','0');
//block_index := StrToInt(str);
for blocknum :=0 to 4 do
begin
block_index:=blocknum;
retcode := RY2_Read(handle, block_index, buffer);
if retcode < 0 then
begin
FmtStr(str, '錯誤編號: %x', [retcode]);
List.Items.Add(str);
exit;
end ;
pchars := buffer;
str := inttostr(blocknum)+' 數據長度: '+inttostr(512);
List.Items.Add(str);
str := 'Readed data: ';
//temp:= length(pchars) ;
temp:=512;
for tempstr := 1 to temp do
begin
str:=str+' '+inttohex(ord(buffer[tempstr-1]),2);
//逐位獲取讀取到的數據的10進制值,然后逐位轉化為16進制值
end; // strtoint(
List.Items.Add(str);
end;
RY2_Close(handle);
list.Items.Add('數據讀取完畢!');
GetSystemTime(SysTime);
mytime:=Now;
list.Items.Add('讀取時間:'+inttostr(systime.wYear)+'年'+inttostr(systime.wMonth)+'月'+inttostr(systime.wDay)+'日 '+TimeToStr(mytime));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -