****我做了一套程序,可以让"彩虹天地"的单机软件狗像网络狗一样使用,可以省不少钱啊,转让源程序,,感兴趣的进来
分两部分:
1.服务器部分:只要插上单机狗,运行服务器程序,其它的客户端就可以像网络狗一样通过提供的接口对单机狗做任何访问操作。
2.客户端部分:所有的操作都封装在一个类里面,使用很方便,提供源码(delphi),和程序集成就可以访问"网络狗"了。
"彩虹天地"的单机狗才50多块钱一个,而网络狗要200多,网络狗在加密强度上比单机狗强些,但这些只对一般的破解者也没多大用处,因此把单机狗当网络狗使用,可以省下一大笔钱!需要的和我联系,只收取很少费用。
e-mail:shaojian925@21cn.com
qq:229481711
附客户端的部分源码:
unit TxNetDogOp;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ScktComp, WinSock, extctrls;
type
TDogCommand = (dcLog, dcReadStr, dcWriteStr, dcReadBinary, dcWriteBinary,
dcReadInteger, dcWriteInteger,dcReadWord, dcWriteWord,
dcReadFloat,dcWriteFloat, dcAutoCheck);
TDogDataRec = record //通信数据帧
FlagHeader : byte; //帧头,标识是不是合法的命令块开头 111
Command :TDogCommand; //命令
Result :longint; //结果
ErrMessage: string[100]; //错误信息
DogAddr :integer; //操作地址
ByteSize :integer; //字节数
DataStr :string[80]; //返回的字串值
DataInteger :integer;
DataWord :Word;
DataByte :Byte;
DataFloat :Real;
DataBinary : array[0..80] of Byte; //返回的二进制值
FlagEnd :byte; //标识是不是合法的命令块结尾 222
end;
TNetSoftDog = class(TObject)
private
FClientSocket : TClientSocket;
FTimer : TTimer;
FTimeOut : integer;
FHost :string;
FHostIp :string;
FCommData : TDogDataRec;
FOpFinished :boolean; //标志操作是否完成
procedure OnClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure OnClientWrite(Sender: TObject;
Socket: TCustomWinSocket);
procedure OnClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure OnTimer(Sender:TObject);
procedure StartTimerOut(ASec :integer);
public
property CommData :TDogDataRec Read FCommData;
constructor Create(AHost, AHostIp :string; APort :integer);
destructor Destroy; override;
function TestHost(AHost :string) : boolean; //检测机器是否存在
function TestIp(IP:string): boolean;
function DoFunc :longint;
function LogIn() :longint;
function LogOut() :longint;
function ReadStr(nAddr, nLen :integer;var AStr :string) :longint;
function WriteStr(nAddr:integer;AStr :string) :longint;
function ReadWord(nAddr :integer; var AData :Word) :longint;
function WriteWord(nAddr :integer; AData :Word) :longint;
function ReadFloat(nAddr :integer; var AData :Real) :longint;
function WriteFloat(nAddr :integer; AData :Real) :longint;
function GetLinceCount(AModeNo:integer; var ALince:integer):longint;
function AutoCheckTxDog() :longint;
end;