1 / 18
文档名称:

外挂教程.doc

格式:doc   页数:18
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

外挂教程.doc

上传人:名侦探柯南 2013/2/10 文件大小:0 KB

下载得到文件列表

外挂教程.doc

文档介绍

文档介绍:外挂制作全过程
一:什么叫外挂?
上客户/服务器模式,服务端程序运行在游戏服务器
上,游戏的设计者在其中创造一个庞大的游戏空间,各地的玩家可以通过运行客户端程
序同时登录到游戏中。简单地说,网络游戏实际上就是由游戏开发商提供一个游戏环境
,而玩家们就是在这个环境中相对自由和开放地进行游戏操作。那么既然在网络游戏中
有了服务器这个概念,我们以前传统的修改游戏方法就显得无能为力了。记得我们在单
机版的游戏中,随心所欲地通过内存搜索来修改角色的各种属性,这在网络游戏中就没
有任何用处了。因为我们在网络游戏中所扮演角色的各种属性及各种重要资料都存放在
服务器上,在我们自己机器上(客户端)只是显示角色的状态,所以通过修改客户端内
存里有关角色的各种属性是不切实际的。那么是否我们就没有办法在网络游戏中达到我
们修改的目的?回答是"否"。客户/服务器模式的通讯一般采用TCP/I
P通信协议,数据交换是通过IP数据包的传输来实现的,一般来说我们客户端向服务器发
出某些请求,比如移动、战斗等指令都是通过封包的形式和服务器交换数据。那么我们
把本地发出消息称为SEND,意思就是发送数据,服务器收到我们SEND的消息后,会按照
既定的程序把有关的信息反馈给客户端,比如,移动的坐标,战斗的类型。那么我们把
客户端收到服务器发来的有关消息称为RECV。知道了这个道理,接下来我们要做的工作
就是分析客户端和服务器之间往来的数据(也就是封包),这样我们就可以提取到对我
们有用的数据进行修改,然后模拟服务器发给客户端,或者模拟客户端发送给服务器,
这样就可以实现我们修改游戏的目的了。目前除了修改游戏封包来实现修改游戏的目的
,我们也可以修改客户端的有关程序来达到我们的要求。我们知道目前各个服务器的运
算能力是有限的,特别在游戏中,游戏服务器要计算游戏中所有玩家的状况几乎是不可
能的,所以有一些运算还是要依靠我们客户端来完成,这样又给了我们修改游戏提供了
一些便利。比如我们可以通过将客户端程序脱壳来发现一些程序的判断分支,通过跟踪
调试我们可以把一些对我们不利的判断去掉,以此来满足我们修改游戏的需求。在下几
个章节中,我们将给大家讲述封包的概念,和修改跟踪客户端的有关知识。大家准备好
了吗?
二:什么是封包?
怎么截获一个游戏的封包? 怎么去检查游戏服务器的ip地址和端口号?
用户使用的各种信息服务,其通讯的信息最终均可以归结为以IP包为单位的信
息传送,IP包除了包括要传送的数据信息外,还包含有信息要发送到的目的IP地址、信
息发送的源IP地址、以及一些相关的控制信息。当一台路由器收到一个IP数据包时,它
将根据数据包中的目的IP地址项查找路由表,根据查找的结果将此IP数据包送往对应端
口。下一台IP路由器收到此数据包后继续转发,直至发到目的地。路由器之间可以通过
路由协议来进行路由信息的交换,从而更新路由表。
那么我们所关心的内容只是IP包中的数据信息,我们可以使用许多监听网络的工具来截
获客户端与服务器之间的交换数据,下面就向你介绍其中的一种工具:WPE。
WPE使用方法: 执行WPE会有下列几项功能可选择:
SELECT GAME 选择目前在记忆体中您想拦截的程式,您只需双击该程式名称即可。
TRACE 追踪功能。用来追踪撷取程式送收的封包。 WPE必须先完成点选欲追踪的程式名
称,才可以使用此项目。按下Play键开始撷取程式收送的封包。您可以随时按下| |
暂停追踪,想继续时请再按下| | 。按下正方形可以停止撷取封包并且显示所有已撷
取封包内容。若您没按下正方形停止键,追踪的动作将依照OPTION里的设定值自动停止
。如果您没有撷取到资料,试试将OPTION里调整为Winsock Version 2。 WPE 及
Trainers 是设定在显示至少16 bits 颜色下才可执行。
FILTER 过滤功能。用来分析所撷取到的封包,并且予以修改。
SEND PACKET 送出封包功能。能够让您送出假造的封包。
TRAINER MAKER 制作修改器。
OPTIONS 设定功能。让您调整WPE的一些设定值。
关于封包解密,加密算法的一点东西

封包的解密加密,最简单的方法就是
异或 XOR 运算! 估计不是在服务器端,就是在客户端产生私钥! 还有可能游戏一个
共钥
2次加密一个私钥,要加密的私钥在去加密和解密数据!

就是说每次进入游戏的时候同样的操作都会产生不同数据!
比如说:
你要对AAAAAAAAAAAAA 进行加密你的密钥是this is hack

加密后生成为 5)(2a(2a) "*5
而你产生的数据