很多人都对网游外挂的制作很感兴趣,在这篇文章里,我向大家简单介绍一下一款网游外挂的大致制作流程。
首先,我想说明几点:
第一,这篇文章并不是具体教你如何写外挂,只是带你大致浏览一下网游外挂的制作流程,并就其中的一些关键技术点加以简单说明。大家可以用看故事书的心情来阅读此文,了解一下网游外挂制作过程中的一些原理。
第二,虽然我对破解还算不错,但是不是一句两句就可以说完的.所以对网游数据的破解我不能全部写给大家,所以碰到破解方面的问题我就一笔带过.
1 选择一款目标游戏
制作网游外挂的第一步就是选定一款游戏。目标游戏不是乱选的,里面也有很多讲究。
第一点,选择自己熟悉的游戏类型。如果你之前已经做过网游外挂,那选择一款类似的游戏会给你节省很大的时间,如果是第一次制作的话,那也选一款自己熟悉的游戏类型。
第二点,尽量不要选择热门的游戏,因为热门的游戏往往意味着竞争对手的增多,除非你对自己的技术以及营销手段很有信心。
第三点,不要小看玩家人数少的游戏,游戏规模小,竞争也小。一款游戏,只要你能形成吃独食的场面,再加上营销搞得好的话,其中的利润将超过你的想象。但要注意,最好不要碰上因为游戏规模过小导致游戏厂商把游戏关闭的衰事。
第四点,尽量选择尚在测试期内的游戏,这使得你有充足的时间制作外挂,同时也要观察该款游戏在市面上是否有其他外挂出现。这样等游戏正式上线时,你的外挂也差不多可以推出了。
2 目标网游初步分析
1 确定要制作的网游外挂类型
目标网游选定好之后,你首先要做的第一件事就是确定你要制作的网游外挂类型。
网游外挂虽然统称为外挂,但细分的话可以分为以下二类:内挂和脱机外挂。
内挂就是在游戏内呼出的网游外挂,它依赖于网游客户端,所使用到的技术主要包括鼠标和键盘的模拟,内存特殊变量区域的搜索,或者是挂钩游戏的收包函数和模拟游戏的发包函数。
脱机外挂就是指不依赖于客户端,能独立模拟客户端和游戏服务器进行通讯的网游外挂。脱机外挂的实现方式只有一种,就是模拟网游客户端的收包和发包过程。
总体而言,内挂的整体制作难度比脱机外挂要简单一些,但脱机外挂制作要比内挂更有趣,而且用起来也更方便,不必启动庞大的客户端程序。
所以下面主要是以脱机外挂的制作流程为主进行讲解
2 网络截包工具(Microsoft Network Monitor)的使用简介
目标网游的初步分析最主要的工作是分析游戏初始阶段网游客户端和服务器之间的数据通讯。这一阶段主要是指从输入用户名和密码开始登录游戏到玩家人物出现在游戏场景中这个阶段。这是开始阶段最关键的一个步骤,如果你能够成功破解网游数据通讯部分的加密,并用DEMO程序成功模拟整个登录过程,那你几乎就已经成功了一半了。如果无法破解加密的话,那就需要赶快重新选定一款游戏了。
关于初步分析,首先要确定网游客户端和服务器之间的大致通讯过程,最起码你要知道客户端连接的是哪一个服务器,连接的端口是多少,在登录的过程中发送和接受了几个包?而要了解这些东西,你就要使用到网络截包工具了。
我使用的是Microsoft Network Monitor V3.1来做示范简单好用。大家可以到下面的网址去下载该软件。
http://support.microsoft.com/kb/933741/zh-cn 下面,我简单介绍一下该软件的使用方法。
安装好程序之后,运行程序,点击【Start Page】页的【Create a new capture tab】按钮,创建一个新的数据捕获会话,点击工具栏上绿色的开始按钮,就可以开始捕获网络数据了
各个窗口的作用如下:
Network Conversations下面有二项:
My Traffic代表本机作为发送方或者接收方参与的网络数据包。选中该项后,Frame Summary中将仅仅列出与本机相关的网络数据包。
Other Traffic 则是网络上其他机器之间的网络数据包。因为正好在拦截期内经过本机,所以被顺道拦截了下来。
Capture Filter 是设定拦截数据时的过滤器。
Display Filter 是对拦截结果的过滤设定。
Select Networks 是设定需要拦截本机上的那一个网络。
Aliases用于设定友好名。
Frame Summary 中列出的是符合条件的所有网络数据包
Frame Details则是当前选中的网络数据包的详细结构
Hex Details 则是当前选中网络数据包的二进制格式
3 分析初始阶段C/S网络数据通讯
简单介绍了网络截包工具的使用之后,下面我们就开始初步分析了。
在这篇文章里,我以某款网络游戏作为假定目标。(具体是哪一款,大家就不要深究了。)
首先在【aliases】窗口中将本地客户端和游戏服务器分别命名为:MyComputer和GameServer。注意不要忘了点击【apply】按钮。
数据包列表就是目标网游从输入用户名和密码登录游戏到人物出现在游戏中(然后立即退出。)这一阶段客户端和服务器之间的所有往来的数据包