手机版

游戏外挂设计方法(10)

发布时间:2021-06-07   来源:未知    
字号:

游戏外挂设计方法

if(hModule==NULL){

//加载原WinSock库,原WinSock库已复制为wsock32.001。

hModule=LoadLibrary("wsock32.001");

}

else return 1;

//获取原WinSock库中的所有函数的地址并保存,下面仅列出部分代码。

if(hModule!=NULL){

//获取原WinSock库初始化函数的地址,并保存到WSAStartup1中。

proc=GetProcAddress(hModule,"WSAStartup");

WSAStartup1=(int (_stdcall *)(WORD,LPWSADATA))proc;

//获取原WinSock库消除函数的地址,并保存到WSACleanup1中。

proc=GetProcAddress(hModule i,"WSACleanup");

WSACleanup1=(int (_stdcall *)())proc;

//获取原创建Sock函数的地址,并保存到socket1中。

proc=GetProcAddress(hModule,"socket");

socket1=(SOCKET (_stdcall *)(int ,int,int))proc;

//获取原创建连接函数的地址,并保存到connect1中。

proc=GetProcAddress(hModule,"connect");

connect1=(int (_stdcall *)(SOCKET ,const struct sockaddr *,int ))proc; //获取原发送函数的地址,并保存到send1中。

proc=GetProcAddress(hModule,"send");

send1=(int (_stdcall *)(SOCKET ,const char * ,int ,int ))proc;

//获取原接收函数的地址,并保存到recv1中。

proc=GetProcAddress(hModule,"recv");

recv1=(int (_stdcall *)(SOCKET ,char FAR * ,int ,int ))proc;

......其它获取函数地址代码略。

}

else return 0;

return 1;

}

③ 定义库输出函数,在此可以对我们感兴趣的函数中添加外挂控制代码,在所有的输出函数的最后一步都调用原WinSock库的同名函数。部分输出函数定义代码如下:

//库输出函数定义。

//WinSock初始化函数。

int PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData)

{

//调用原WinSock库初始化函数

return WSAStartup1(wVersionRequired,lpWSAData);

}

//WinSock结束清除函数。

int PASCAL FAR WSACleanup(void)

{

游戏外挂设计方法(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)