设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 11534|回复: 34
打印 上一主题 下一主题

[原创发布] 保护游戏地图数据与插件脚本防修改——PC端、手机端都能防

[复制链接]

Lv4.逐梦者

梦石
0
星屑
19300
在线时间
2310 小时
注册时间
2015-7-4
帖子
937
跳转到指定楼层
1
发表于 2019-2-26 16:17:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本插件通过加密地图数据 json 文件,达到就算调出 www 文件夹用 MV 打开工程
也看不到地图数据。当然为防止通过破解插件脚本仿写解密方法,本插件支持且
要求要加密脚本。这样子,只要写在地图事件里的数据基本就能得很好的防护了,
而且加密过的工程 PC 端可以无需打包成 EXE,更加方便游戏内容更新。

范例工程用 江湖梦网 的联网范例,里面有PC端与APK端,可以尝试解包。
下载链接:https://pan.baidu.com/s/17MPPHWZ924cPm9HKAfxJwA 密码:qusn

破解出 www 文件夹用 MV 打开只能看到基础数据库,看不到地图:

打开地图 json 文件都是密文,范例采用简单加密,后续会开发多种加密方式:

本插件需要在游戏开发完成后要发布之前安装,这是初版,用了简单加密,
目前插件还在优化,还有更高级的加密方式,需要者请关注 江湖梦网


Lv3.寻梦者

梦石
0
星屑
4349
在线时间
552 小时
注册时间
2017-12-2
帖子
41
2
发表于 2019-2-26 21:33:33 | 只看该作者
本帖最后由 Mehmet 于 2019-2-26 21:54 编辑
地图事件内容

点评

被大佬破解出来了!没事,这个初版用的是简单加密,我再研究好一点的加密方法。  发表于 2019-2-26 22:56
你想表达什么?  发表于 2019-2-26 22:32
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

3
发表于 2019-2-27 01:03:42 | 只看该作者
本帖最后由 guoxiaomi 于 2019-2-27 01:15 编辑

MV应该没有很好的加密方法,毕竟脚本全是明文。我能想到的方法是用https://www.oschina.net/p/crypto-js中的AES加密,然后把跟密钥相关的部分代码混淆。

总之麻烦一点就能让破解的人费力多一点……但是也不知道怎么绕过类似 $dataMap 这种变量(我没用过MV,不知道这个变量具体是什么)。

原则上只要程序能运行,打开调试,直接获取此变量就可以复原了吧?

点评

说实话并不是我纠结地图,而是我用的方法无法加密角色、技能等 json 目前那些数据加密后会报错。  发表于 2019-2-27 19:59
我只是举例子,技能基础伤害那些。 他看到主角基础技能是对应的ID和伤害值。。为何你这么纠结地图.....  发表于 2019-2-27 15:57
读$dataMap来破解游戏,那要进一张地图破解一张,应该没有程序员愿意这样破解。不过你发的帖子我会好好研究的,就是不知道我能不能理解。  发表于 2019-2-27 15:29
不太了解你表达的意思。 如果你没有闭包,我好像看到直接读$dataMap的。就算你加密再好,我用web浏览。一样打开控制台修改。  发表于 2019-2-27 15:18
闭包更新麻烦,也不是不能破解,还是这样加密来得方便。  发表于 2019-2-27 15:12
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
945
在线时间
114 小时
注册时间
2017-8-3
帖子
63
4
发表于 2019-2-27 09:51:07 | 只看该作者
会被人破解出来...........你不会是base64吧?  要做一些混淆的方法,虽然还是能被破解,起码不会瞬间破解呀。  而且base64 不是加密。。。只是变成另外一种形式。。。

点评

嗯,AES比较好。 相对比较简单  发表于 2019-2-27 15:13
原来不是跟我说话啊……  发表于 2019-2-27 14:06
只是做个测试,就先用了 Base64 ,这个已经改掉了。  发表于 2019-2-27 13:59
不是Base64,AES是很常见的对称加密手段  发表于 2019-2-27 13:54
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
945
在线时间
114 小时
注册时间
2017-8-3
帖子
63
5
发表于 2019-2-27 14:58:39 | 只看该作者
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
736
在线时间
158 小时
注册时间
2014-1-4
帖子
27
6
发表于 2019-2-28 23:46:51 | 只看该作者
比起这些,我现在比较好奇的是怎么解放潜在能力

点评

呃……什么是解放潜在能力?  发表于 2019-3-1 08:07
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42394
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

7
发表于 2019-3-1 00:37:18 | 只看该作者
js加密就是个硬伤,唯一能有点强度的就是在浏览器那头加接口,用cpp和js互交一下,可以隐藏关键功能的实现
可惜平台就被限定了

点评

难得呀!竟然把站长给引过来了。  发表于 2019-3-1 08:09
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19300
在线时间
2310 小时
注册时间
2015-7-4
帖子
937
8
 楼主| 发表于 2019-3-1 08:23:26 | 只看该作者
四楼的神秘君的方法挻不错,只是得会代码的人自己写,还有就是所有脚本放到一个文件里实在太大,
要混淆加密都得付费,没法做到通用。
我的方法目前做到 MV默认数据库跟地图的 json 文件与存档文件都能加密,这个加密用 Base64 解码
已经解不出来了,但是程序员还是能读取内存生成文件的。
我能想到另一层保护就是,加密解密写在插件,然后游戏中挑几个关键插件与这个插件关联,如果关
闭这个插件就得将其它几个关联插件都关闭才能运行,然后这几个插件一起混淆加密。这样一来,就
算是生成了数据库跟地图文件还要关闭这几个插件才能运行游戏,这时游戏就已经变样了。

评分

参与人数 1+1 收起 理由
lqsg123 + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19300
在线时间
2310 小时
注册时间
2015-7-4
帖子
937
9
 楼主| 发表于 2019-6-27 23:51:43 | 只看该作者
最近几个我加密的游戏,有的发布三个多月了,有的一个多月,数据库、地图、存档倒是没见被玩家破解,
但是有发现玩家用修改内存方式,或修改 rpg_objects.js 文件中的脚本来获得物品与增加HP、MP、游戏币
等,我是已研究出了防御 RPGMakerMVGame Hook patcher.exe 工具修改内存的作弊,与通过 gainItem()
方法获得物品的作弊方法,防止玩家修改 HP、MP 也有思路来防御,但是防御通过 gainItem() 方法获得物
品与通过 gainGold() 修改游戏币的实在工作量非常大,特别是在给有的游戏加密时上百个插件的话,要逐
一检查插件是否涉及这两个方法实在够呛。

不知道大家的游戏出去后都遇到了什么样的破解修改,想看一下游戏加密应该朝哪个方向发展才是大众所需。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
21 小时
注册时间
2019-5-28
帖子
7
10
发表于 2019-6-28 00:34:42 | 只看该作者
在我理解里面web的打包方式无论如何都不能做到很好加密
如果不能在MV基础引擎上面进行大改的话在我想象中无论如何加密你最终MV的index.html文件运行的时候都会解密进行载入才能正常游戏

这个时候再进行web动态读取调试被加密内容就被扒出来原内容了 这是游戏引擎本身的弊端
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-22 05:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表