欢迎光临散文网 会员登陆 & 注册

RPGMakerMV探秘05-防破解

2020-08-21 15:23 作者:狂奔小菜鸡  | 我要投稿

一、资源
RPGMaker为了保护原创作者的游戏,提供了加密工具,可以对游戏内资源进行加密处理,这样就算有不怀好意者获得了资源包,也需要花一定时间才能进行破解。
png->rpgmvp
ogg->rpgmvo
m4a->rpgmvm
以下是rpg_core.js对于加密资源的读取操作:

可以看出,由于游戏的单机化,_encryptionKey会直接存储至客户端,相当于将秘钥直接提供给了对方。当对方拿到_encryptionKey并利用解密算法,很快加密资源就会被破解。

现在我们知道了_encryptionKey的重要性,就可以对_encryptionKey进行进一步的处理,让那些想破解游戏的人耗费更多的精力,增加破解成本。

以上是正常情况下获取_encryptionKey的方法,实质就是System.json中encryptionKey的读取拆分进数组,供解密使用。
我们可以直接将System.json中encryptionKey删除,使其隐藏。
那么我们怎么才能在资源加载的时候进行资源解密呢?
你可以将你的encryptionKey任意拆分并隐藏在任意的代码迷宫中,等使用的时候通过各种方法提取出来使用,这样你的encryptionKey就不会那么明显的直接暴露,当然这样的做法也只是增加破解成本,安了心要破解也是挡不住的。
以下是部分防解密代码:

二、插件
辛苦写的自用插件(开源插件大神勿喷),是否也不想让他人破解,或者插件内有部分与服务端的交互过程,那就更不想让别人破解了。
市面上已经有很多对JS文件进行混淆加密的方法,最近接触了一个号称“最牛加密”的方法,据说绝对绝对无法100%破解,亲试了一波,破解起来确实有难度,相当耗费精力,确实牛。

三、游戏数据检测
这个方法对破解玩家不是很友好。有两个思路:
1、本地检测,针对一些关键数据,在游戏加载过程中,进行数据(玩家游戏时长与各项成长数值关系,物品、装备等持有量)的校验,如果超出阈值,则提示玩家,强制结束游戏。当然这需要充分考虑游戏的各项数值极限,避免伤害到正常玩家,毕竟玩家体验第一。
2、远端检测,这需要与后端服务进行交互,实际已经不是那么单纯的单机游戏,每个玩家在后端都有唯一的账号,创造者可以定期分析玩家数据,进行非法玩家的探测,及时发现非法玩家,并剔除(封禁)账号。

RPGMakerMV探秘05-防破解的评论 (共 条)

分享到微博请遵守国家法律