欢迎光临
我们一直在努力

【游戏漏洞】妙用Loader类玩转Flash小游戏

致力于分享游戏安全技术,提供专业的游戏安全资讯

前面我提到可以不修改Flash文件来修改游戏中的数据(非内存修改),大家都比较感兴趣,今天就教给大家吧!

首先要知道什么是FlashLoader:

Flash Loader 类可用于加载 SWF 文件或图像(JPG、PNG 或 GIF)文件。 使用 load() 方法来启动加载。 被加载的显示对象将作为 Loader 对象的子级添加。

(关于Loader类的详细的介绍请看 )

后面那句话是关键,加载进来的对象会成为Loader的子类,那么我们就可以通过Loader来访问子类中的变量以及函数,传递或者修改数据。

首先找到一款游戏作为我们修改教程的素材:

这款游戏叫《死宅必须屎》,汉化版的这名字够吸引人的,是一款类似打企鹅的游戏,游戏中自由元素挺多的,很适合修改。

可以看到有锻造系统,还有商店,商店里购买物品需要右上方的螺丝钉,每盘游戏中可收集这个物品。锻造则需要黄金白银和青铜条,这些物品价值不菲,一根金条要20W螺丝钉,前期的话每盘游戏大约只能得到五十个螺丝钉,可见要想升级是有多难。不过游戏提供了个支付系统,可以使用美元来购买金条什么的。这完全就是个土豪玩的游戏。

看到这里就有了修改他的想法,让我们动手吧!

老样子载入FFDec分析,找到他初始化这些变量的地方。由于没有加密和混淆代码,我很快找到了:

如图,cash是钱,goldMat 金条,silver 银,bronze 铜,这些简单的单词大家应该都知道

我们当然可以直接修改这些值,但今天我要教的是使用Flash Loader,不修改游戏本身达到作弊的效果。

下面看我操作吧!

先记下这些变量所在类:

com.berzerkball2.io.BB2_GameProgress

然后我们打开Adobe Flash Professional CS6,新建一个Flash,As3.0写脚本。

为了方便理解我使用中文命名变量,代码如下:

其中的 1.swf 就是游戏的路径

然后添加个提示文本,和一个点击后加钱的标签(这里随便你怎么做)

Loader加载完成的事件:

OK,来运行下看看效果:

可以看到右上角是我们添加的 “money” 标签

这里是关键:

声明一个类,然后从mc(文件容器名称)得到要修改类(前面找到的com.berzerkball2.io.BB2_GameProgress)的Definition,强制转换为Class

接着就可以直接给里面的变量赋值了。

可以看到修改后的效果

点击我们添加的money标签这些东西就会增加我们设定的数值。

然后就可以去游戏里疯狂购物疯狂玩耍了~

此方法可适用于绝大多数AS3.0的游戏

声明:本文仅供研究学习,请勿用于非法用途,否则后果自负!

来源:转载自Sp软件服务

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

近期精品文章:

赞(42)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址