- 前言
随着近几年网络游戏的快速发展,网络游戏数量也呈爆炸式增涨,各种各样的游戏层出不穷。而玩家们在玩网页小游戏时不可避免会遇见“卡关”的问题,总有一些打不过去的关卡,这个时候我们就非常希望自己也能拥有一个“外挂”,轻轻松松通关游戏。
本次课题研究就是对修改游戏数据进行初步的研究,从最简单的修改4399网页部分小游戏的基础设置出发,尝试修改网页小游戏的相关游戏数据。
关键字:网页小游戏修改,Flash,4399小游戏修改,外挂
- 理论分析
拥有服务器的网页大型游戏是很难进行修改的,因为网页游戏的数据是存在服务器上的,只有部分指令是在本地执行,但最终结果要和服务器上的对比。在本地修改很容易,但不会被服务器认可,所以对于拥有服务器的网页大型游戏而言,不攻破服务器的修改都是徒劳的。因此本次课题我只初步研究了可以获取到代码文件的网页小游戏,从这一类型上开始研究。
大部分的网页小游戏都是通过Flash进行制作的,所以本次课题主要研究以Flash游戏为主的4399小游戏网页中的游戏。
想要修改网页小游戏的设置,我们就需要找到它的底层代码,所以我通过将网页版本的小游戏下载后,反编译并分析其代码然后更改有关人物数据,进而达成“外挂”目的。
在浏览器中游玩网页小游戏时,我们可以按F12键,找到一个后缀为.swf 的可下载文件,或者在设置中的Internet选项,在临时文件中查看swf文件,这就是网页小游戏的运行基础。在下载好该文件之后,我们就可以通过反编译得到游戏的运行代码了。
因为这边分析的网页小游戏是由Flash制作,所以我直接找了一个反编译Flash游戏的分析软件。在反编译完成之后,我们就可以在软件中看见小游戏的框架,和构成代码,即可对它进行修改。
分析软件:JPEXS Free Flash Decompiler
- 实例操作
首先,需要在游戏网页上将小游戏下载下来(swf后缀的文件即是),通过JPEXS Free Flash Decompiler 对此swf文件进行反编译,我们可以得到该游戏的组成代码、架构等信息。flash游戏的运行逻辑都在"脚本"的文件夹下。
通过阅读这些由高级语言编写而成的代码,找到我们需要修改的东西(比如血量、攻击力等)对应的代码段,对该段代码进行修改,保存,然后再次打开下载下来的游戏,即可以发现我们游玩的是已经按照我们需要的想法进行更改后的游戏。
以魔塔游戏进行举例,从4399界面上下载好游戏的.swf 文件放入JPEXS Free Flash Decompiler 软件中分析,如下图
组成该游戏的基础代码都在“脚本”栏目中,其中的frame文件存放了关键代码,定位“HP”字节,我们可以查找到需要修改的代码段的具体位置,修改对应的P代码资源,对修改后的.swf 文件进行保存。
例如,我们修改一下人物主人公的血量,通过搜索“hp”来查看相关信息。
可以观察到当前游戏主人公血量为50000。
接下来我们修改P代码段对应的数据为我们想要的数值。血量66666,攻击5000,防御6000。
再次运行游戏,即可发现成功修改了游戏人物数据。
实验总结:
该游戏为Flash游戏,通过保存为swf文件在Flash中心打开,通过JPEXS Free Flash软件对相关数值与内容可以更改。在利用JPEXS Free Flash软件时,可以通过ctrl+F快速找到我们想修改的值,本实现修改了人物的三大主要属性:生命、攻击与防御,达到了实验目的。