Project1

标题: 所以说MV是没有办法加密JSON吗? [打印本页]

作者: gnmyjc    时间: 2019-2-21 15:47
标题: 所以说MV是没有办法加密JSON吗?
萌新一枚,看到网上很多仅仅依靠system.json就能够将整个包拆开的情况,话说真的没有什么加密工具吗?
希望能找到那种类似的便捷工具或是方法,有偿亦可。
作者: if216    时间: 2019-2-21 15:52
有啊,很简单的,异或一下就可以了。
代码推荐用混淆。
你是担心代码被人看还是图像声音被人用哪个呢?
最后你还可以用加壳软件加壳。
防傻瓜,你就用加壳软件吧。

作者: gnmyjc    时间: 2019-2-21 15:59
if216 发表于 2019-2-21 15:52
有啊,很简单的,异或一下就可以了。
代码推荐用混淆。
你是担心代码被人看还是图像声音被人用哪个呢?

混淆的话我见网上是有那些网址的……可是混淆完可就无法读取了,是还要搞些什么MV内的脚本变动吗?
而且主要是想输出安卓的,EXE确实能防掉一些拆包,但是APK是不是就没有办法?
不过我见有大神将json加密成了rpgmvb,居然还能读?这是专门找人做的吗?
作者: gnmyjc    时间: 2019-2-21 16:04
if216 发表于 2019-2-21 15:52
有啊,很简单的,异或一下就可以了。
代码推荐用混淆。
你是担心代码被人看还是图像声音被人用哪个呢?

图像和声音有rpgmvp的加密,但是对于js和json,官方那边是不是也从来没有弄过加密呢?
作者: if216    时间: 2019-2-21 16:08
gnmyjc 发表于 2019-2-21 16:04
图像和声音有rpgmvp的加密,但是对于js和json,官方那边是不是也从来没有弄过加密呢? ...

js最好是混淆,效果不错。
作者: rkjspb    时间: 2019-2-21 16:19
加密这方面还是自己来比较好,因为js之类的加密代码大的话影响效率
作者: tseyik    时间: 2019-2-21 19:31
本帖最后由 tseyik 于 2019-2-21 19:33 编辑

RPG Maker MV Cook Tool
https://forums.rpgmakerweb.com/i ... v-cook-tool.100489/
What is this?
This tool automates the compilation of JavaScript files with NW.js' compiler. The compiler creates binary versions of the files, ensuring protection of the source code. The tool also packages the code (and the assets) on an archive that Nw.js can read.
這是什麼?
此工具使用NW.js的編譯器自動編譯JavaScript文件。 編譯器創建文件的二進製版本,確保源代碼的保護。 該工具還將代碼(和資產)打包到Nw.js可以讀取的存檔上。

Please note: This tool will not work on Windows 10 S devices. It may work on ARM-powered devices, so long as you use the x86 version of nwjs.
作者: garfeng    时间: 2019-2-21 19:50
不管怎么加密,纯js就是明文,别人解你包,放到电脑上拿浏览器跑一下,然后对象在运行时就是明文的,人家JSON.stringify($gameMap),数据的json明文就出来了(同样适用于其他数据)。

我觉得加密data文件没有意义啊……

难不成还有人复制你的事件拿走使用么。

在所有data里,唯一需要保密的可能就是动画?动画可以通过加密图片资源来保护。

如果手机版一定要加密,只能用c写一个arm linux(也就是手机上的运行库),然后在crosswalk里调用,加密解密算法写进库里,对外不提供解密整个json的接口,只提供获取某个数据的接口,比如:
要获取某个坐标的用的图块id,js里的正常用法是这样:
(乱写的不要在意)

  1. var id = $gameMap.data[i][j]
复制代码


这个$gameMap对于破解者来说就是明文。

而该库只提供如下接口:


  1. int GetMapId(i,j);
复制代码

实际的$gameMap,只存在于该库的内存中,你还可以想办法,让$gameMap在每次取完某个数据后立即销毁,下次用时再解密。
而该函数是你用c写的,破解者只能拿到编译好的库,拿不到代码,不知道你的算法。

这样,即使他把你的包解压后放电脑上运行,因为这个库是安卓版的,所以电脑上跑不起来,他也无法拿到你的数据。

进一步,如果他要把库反编译,看汇编看懂你解密数据的逻辑,那就认了吧。

(我正在写一个电脑上的加密工具,但我也只打算加密素材,不加密数据)
作者: gnmyjc    时间: 2019-2-21 20:31
garfeng 发表于 2019-2-21 19:50
不管怎么加密,纯js就是明文,别人解你包,放到电脑上拿浏览器跑一下,然后对象在运行时就是明文的,人家JS ...

其实是因为只要能搞到json,就能够将你的整个游戏拿去解包,然后破解啊TAT
作者: rkjspb    时间: 2019-2-22 07:32
gnmyjc 发表于 2019-2-21 20:31
其实是因为只要能搞到json,就能够将你的整个游戏拿去解包,然后破解啊TAT ...

试试将这个文件隐藏起来?
不是办法的办法有时候或许管用
作者: 神秘中国人    时间: 2019-2-22 11:58
gnmyjc 发表于 2019-2-21 20:31
其实是因为只要能搞到json,就能够将你的整个游戏拿去解包,然后破解啊TAT ...

确保你的游戏是应用程序,不是浏览器访问。
如果你会C++的开发,安卓开发,IOS的开发。都是比较简单。自己开发壳子

1.自己制定一个加密 解密的方法。

例如标准定制在几行 第几个文字,乱生成一些乱码。      这些规制要被记录起来。   制定几套。
那么每个文件用那个套规制 生成一次乱码代码出来。 记录好每个文件使用那个规制。

2.运行壳子程序。
在壳子里面读取外部JS,读取文件后对应的解密方法。  赋值给webview里面的html里面。

技术点1
这里注意的是,因为里面不少请求ajax,意味着。你需要一个web服务。  就是你的壳子要带着web的服务。

技术点2
因为默认的RMMV是谷歌内核,所以最好你的壳子,也是谷歌内核的容器吧。

作者: 神秘中国人    时间: 2019-2-27 14:57
解决方案:
https://rpg.blue/forum.php?mod=v ... p;extra=#pid2792020




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1