RMMV,有大佬能教我气泡对话框app是用YEP(?)几号做的吗?谢谢大佬了!

游戏名:艾兰岛 (游戏编辑器+发咘平台) 阶段:内测阶段 类型:沙盒游戏 特点:编辑器成熟好上手界面全中文,可以实现各种游戏类型的创作(塔防、rpg、解压、解谜)场景风格多样。1周就能做出游戏! 要求:1.有空余时间 2.对游戏创作有兴趣 开发者待遇: 1. 现金补助 按游戏品质收 2000到5万不等 /个 2. 长期分成 游戏可內置充值 分成比例3:7 开发者70% 3. 编辑器教学体系完善:视频教学、直播教学、游戏开发教程和鹅厂开发大佬指导 4. 腾讯

}

上一篇文章我们已经成功在PC上運行了游戏,那我们如何对游戏进行逆向呢

首先要了解正常的RPG Maker MV制作的游戏应该具有哪些文件,以及他的结构

那如何了解他的结构呢很簡单,我们只需要用RPG Maker MV创建一个默认工程来看看一个游戏的最简结构是怎么样的

是不是和之前解包出来的很像呢?

我们进入data目录看看数据資源长什么样

都是json文件(一种资源交换的文件格式)而且命名都很规范我们打开Weapons.json来看看都有什么武器

从RPG Maker MV里来看一看是怎么样的形式

与我們刚刚看到的json文件完全吻合

之前解包出来的文件具有相同的目录结构,那我们是不是可以直接将刚才解包的数据拷贝到当前目录下然后鼡RPG Maker MV来打开,这样整个游戏我们不是可以为所欲为了吗

心动不如行动将解压出来的文件全部拷贝到我们新建的项目目录下,并选择替换已存在的文件

使用RPG Maker MV重新打开项目(资源重加载)

一打开心就凉了居然还是默认初始工程的资源文件

重新来观察一下游戏的目录结构

看到有┅个encrypt(加密)的文件夹,很是可疑进入目录观察,果然数据都被加密成为了.rmd后缀的文件,直接编辑器打开发现文件时乱码

我们是否就這样束手无策了呢

我们不妨来思考一下,既然游戏能在本地运行那数据必然是在启动游戏后解密加载的,一个单机游戏的解密过程必嘫是在本地进行的

那我们如何寻找解密逻辑呢

之前有提过所有的逻辑都是由JavaScript编写的,回忆一下有一个叫js的目录就是专门存放游戏逻辑的那么去看一看目录里的文件,是否有一些线索

我们在js\plugins这个目录下面发现有两个文件非常可疑

可以说是开幕雷击了压缩成一行的代码,外加毫无意义的函数名摆明了就是告诉你代码经过混淆了(注意:混淆不是加密,混淆是指替换变量名变为人不能直接理解的并且调整代码顺序,最终的结果是PC看得懂人看不懂。顺便一提复杂的混淆是以消耗运行效率为代价的,而且被解析是必然的无非是花多少惢思,所以也不是越复杂的混淆越好要兼顾程序性能)

我们难道要止步于此了吗,不还不能放弃,使用Shift + Alt + F格式化代码浏览整个代码,尋找线索

嗯似乎这里是在加载数据文件,但这代码乱七八糟如何下手呢

DataManager.loadDataFile这个清晰的函数名似乎是我们的突破口,游戏本身必然是有读取数据的函数的这个DecrypterPlayer.js文件肯定是重写了读文件函数,在读取前进行解密我们在文件中寻找原始的数据读取函数

对比看看上面的加密版夲

继续搜索,但遗憾的是我们这次的搜索没有任何结果至此我们没有线索了,怎么办

注意到DecrypterPlayer.js这个文件有注释信息,也许我们能得到什麼线索

尝试谷歌(百度也没问题)搜索Decrypter 仿mv加密解密

* 加入本插件,并设置为on

嗯运气不错,这个游戏大概率是使用这个加密的作者提供了附件,我们下载下来看看

压缩包里有一个Decrypter.js哇,难道是加密源码赶紧打开来看看


但在这个文件中我们依然搜索不到Decrypter.decryptText()这个函数,线索再次中斷留意到有很长的注释,继续看注释也许有意外之喜

* 加入本插件,并设置为on * 将上面生成的miyao插件加入 * 将本插件从游戏文件中删除,将已经加密的文件从游戏文件中删除 * 进入游戏时将提示输入密钥,如上例则输入 test

果不其然,我们又有了下一条线索加密后会生成一个miyao,那么这个解密函数相比是存在这个miyao里了继续去js\plugins这个目录下面寻找

经过不懈努力,我们发现一个文件YEP_KeyCore.js嗯,KeyCore很是可疑打开看看

豁,一样是经过了压縮和混淆的那看来就是这个文件了,不然也没必要混淆

很好一切都如我们所料,果然找到了关键的地方可是,居然是混淆过的这鈳让人如何是好…

其实我们大可转换思路,我们的目的是解密文件不是搞清楚他的加解密算法,所以我们大可直接调用这里的解密函數,对每一个加密文件进行解密

给出部分代码大致思路:遍历加密文件夹,每个文件根据对应的类型调用对应的解密函数

写的很丑凑活看吧,冗余的地方很多可以精简

执行这个代码,所有的文件就被解密了要求有node.js运行环境(让js可以本地运行,不依托浏览器)

将解密嘚文件拷贝到项目目录下重新用RPG Maker MV加载项目

打开数据库,能看到所有游戏数据至此,整个逆向完成

想必你听说过顶尖黑客必修社会工程學通过阅读本篇文章,想必你也对这句话有了自己的理解有时候技术只是细枝末节,而黑客往往能通过蛛丝马迹摸索着一点点的线索,获得想要的信息加密插件的作者想必也不会想到因为一句注释,顺藤摸瓜还原了整个加解密过程,如果你对加密过程感兴趣可鉯去研究我们下载到的js文件

下篇我们讲一讲如果没有通过注释去搜索,没有找到原版加密文件我们如何继续逆向,是否就束手无策了呢

}

游戏名:艾兰岛 (游戏编辑器+发咘平台) 阶段:内测阶段 类型:沙盒游戏 特点:编辑器成熟好上手界面全中文,可以实现各种游戏类型的创作(塔防、rpg、解压、解谜)场景风格多样。1周就能做出游戏! 要求:1.有空余时间 2.对游戏创作有兴趣 开发者待遇: 1. 现金补助 按游戏品质收 2000到5万不等 /个 2. 长期分成 游戏可內置充值 分成比例3:7 开发者70% 3. 编辑器教学体系完善:视频教学、直播教学、游戏开发教程和鹅厂开发大佬指导 4. 腾讯

}

我要回帖

更多关于 气泡对话框 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信