Dogreadbuffer:=0; //读出成功
// Dogreadbuffer:=length(s); //读出成功
end;
如果软件狗中事先已保存有一些有用的信息,仿真软件狗前,则要插上狗,应调用相应函数,读出软件狗中信息,保存到dog.dat中。这时要分两步进行:首先,可以采用笔者以下专门编写的Dogopen()函数,加入上面仿真的DLL中,运行待破解程序,从待破解程序中截取并保存读狗参数。第二步,编程,运行truedogopen()函数。在truedogopen()中,利用截取的读狗参数,调用原配的真正的DLL文件,调用以下函数:Dogopen()、Dogreadbuffer( )、Dogclose( ),读出相应信息,再保存信息到dog.dat中。
function dogopen(nagent:longint; nclient: longint; ngroup: longint; nserial: longint):longint;//截取打开软件狗参数并保存
var
F: TextFile;
S: string;
begin
AssignFile(F,'opendog.txt' ); //打开文件
reset(f);
writeln(f,inttostr(nagent),inttostr(nclient),inttostr(ngroup), inttostr(nserial)); //保存相关参数,为真正的读狗做准备
// readln( f,s );//读取一行
CloseFile(F);//关闭文件
dogopen:= 0; //正确打开
end;
//以下程序,请插上真正的软件狗,并且要附上真正的操作狗DLL文件,读取软件狗中的事先保存的信息,保存到dog.dat中。
procedure truedogopen();//截取打开软件狗参数并保存
var
F: TextFile;
nagent, nclient, ngroup, nserial:longint;
a,b,c,d: string;
s,ss: String;
i:Integer;
List: TStringList;
begin
AssignFile(F,'opendog.txt' ); //打开文件
reset(f);
readln (f,a,b,c, d); //读取一行,为读狗参数
nagent:=strtoint(a);
nclient:=strtoint(b);
|