📄 sendpack.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 + -