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

📄 sendpack.pas

📁 网络游戏神迹脱机外挂PASCAL源码
💻 PAS
字号:
unit SendPack;
{---------无影开发小组敬告:-------------------}
{        外挂研究无罪,开放源码有理!           }
{ 希望以此献给各位想研究外挂的朋友一窥外挂之容 }
{    本代码只供研究之用,不得用于非法用途      }
interface
uses Windows,SysUtils,Dialogs,Winsock2,GameCode;
var
GameSocket : TSocket=0; //游戏套接字
MyPN       : Char='0';    //包序号

procedure IncPN(var N:Char);
//增加序列号
function MyWSASend(Sendbuf:PChar;SendLen:Integer):Integer;
//发包函数,发送加密以后的包
function SendText(Text:String):Integer;
//发包函数,发送明文包,包内容用asc码描述
procedure SendMyPack(Text:PChar;Len:Integer);
//发包函数,发送明文包,包内容用包结构描述
implementation

function SendText(Text:String):Integer;
var
Tex:array[0..1000] of char ;
buf:array[0..1300] of char;
TLen,Len:Integer;
begin
TLen:=(Length(Text)) div 2;
buf[0]:='#';
buf[1]:='0';
ASCStrToPChar(Text,@Tex[0]);
Len:=EncodeA(@Tex[0],@buf[2],TLen);
//DBGOut('SendText:Text=%s',[Text]);
//DBGOut('SendText:TLen=%d',[TLen]);
buf[Len+3]:=#0;
//DBGOut('SendText:Len=%d',[Len]);
if GameSocket<>0 then
  MyWSASend(@buf[0],len+3)
else
  ShowMessage('Game socket error!');
SendText:=1;
end;

procedure IncPN(var N:Char);
begin
if N>='9' then
 N:='1'
else
 Inc(N);
end;

function MyWSASend(Sendbuf:PChar;SendLen:Integer):Integer;
var
 Buffers : WSABUF;
 NumberOfSent:dword;
begin
 Buffers.buf:=Sendbuf;
 Buffers.len:=SendLen;
 Buffers.buf[0]:='#';
 Buffers.buf[1]:=MyPN;
 Buffers.buf[SendLen-1]:='!';
 //OutputDebugString(@Sendbuf[0]);
 MyWSASend:=WSASend(GameSocket,@Buffers,1,NumberOfSent,0,nil,nil);
end;

procedure SendMyPack(Text:PChar;Len:Integer);
var
TLen:Integer;
Buf:array[0..1503] of char;
begin
if Len>1200 then
  begin
  ShowMessage('SendPack:too long');
  exit;
  end;
Tlen:=EncodeA(Text,@buf[2],Len);
MyWSASend(@Buf[0],TLen+3);
end;

end.

⌨️ 快捷键说明

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