跳转到主内容
极星编程网:以代码为星,赴技术山海!

如何制作协议型外挂?

文章导读

大家好,我是苏承栈,今天我们来聊聊协议型外挂的制作。这篇文章将带你深入了解网络游戏的外挂制作,特别是协议型外挂。我们将从基础知识开始,一步步教你如何制作外挂,包括数据包拦截、修改和伪发送等。如果你对这方面感兴趣,那么这篇文章一定能给你带来帮助。

协议型外挂制作详解

目前,网络游戏的外挂主要分为辅助型的动作外挂和内核型的协议型外挂。动作外挂主要帮助玩家进行一些重复性的劳动量,而协议型外挂则更神秘,比如传奇的脱机外挂。本文将以大话西游II客户端为例,讲解协议型外挂的制作。

服务器和客户端通讯

服务器和客户端的通讯是通过数据包进行的。数据包中数据的规则是协议型外挂最重要的基础之一。由于网络数据可以进行拦截,数据包中的数据都是加密进行。服务器和客户端的通讯流程如下:

  • 客户端进行数据的采集
  • 数据打包
  • 数据加密
  • 发送数据到服务器
  • 服务器进行数据解密
  • 服务器处理数据包
  • 回传数据打包
  • 回传数据加密
  • 数据回传
  • 客户端接收数据
  • 客户端解密数据
  • 客户端数据处理

目标程序:大话西游II客户端

我们的目标是数据包,即拦截游戏通讯间的数据来进行相应的修改或者进行发送伪数据包。

编程软件

本文使用C++ Builder 6作为编程软件,因为它对程序界面的编写非常方便。

思路

我们的程序要干扰别的程序的运行,最好的办法是使用线程注入的办法。当线程注入到目标程序之后,就可以为所欲为了。因此,我们的第一目的是将线程注入到目标程序中。

预备活动

线程注入最简单的方法是hook。为了防止游戏内部存在反hook的存在和外挂的检测,我们将用自己的程序来启动目标程序。

具体做法

新建一个工程,在窗体上添加两个按钮,一个将标题改为启动游戏,另一个标题改为启动外挂。再添加一个TOpenDialog。双点启动游戏的按钮,编写该按钮的事件。下面的代码开始启动目标程序:

if(FileExists(ExtractFileDir(Application->ExeName)+
                            

相关文章