游戏数据加密

我们用Cocos Creator2.4 版本制作的一个游戏,发现玩家可以使用内存修改器修改,轻松找到数据进行修改。 这边我们自己弄了一套加密方式,但是发现性能很差,游戏很卡。
我们发现引擎好像统一的做了数据在内存中的存储修改,这边想问下这个是否有统一接口或者各位大大告知下在哪里改。

我也想知道

所有数值,随便弄一下应该就行了吧,比如base64,让内存修改器通过锁定数值/锁定增量(别的方式我也没用过)这种方式定位不到内存地址应该就行了

目前我们自己写了套加密,只能加密部分地方,全部加密性能变的很差,我们游戏交互太频繁了~ 感谢~

顶顶,还是想知道下cocos底层写在哪里,想去修改下。

打开编辑器项目地址里面有cocos2d c++项目,vs studio打开修改以后重新编译

:joy:

:rofl: 感谢回答~不是问这个

引擎底层就是c++写的呀,你不是要找底层代码吗?

cocos制作的游戏,如果自己不做任何内存加密处理,直接在内存中搜游戏的数值也是搜不到的,但是稍微改变下,就能搜到了,而且改数值也需要符合修改规则,否则会闪退。 这里cocos底层应该是处理了下,想知道这个底层代码在哪,不知道是否有大大告知。

这边想知道关于内存中存储数据的处理代码写在哪,我们想去改下。 我们知道c++写的~ ,也知道怎么打开。 因为底层代码太多了,找不到~

你说的是X2来搜索内存那一套吗? 那是微信小游戏的runtime导致的吧? 跟cocos没关系.
cocos管不到你内存中的数据.
弄个简单的get/set做点加减乘除就可以了, 对性能影响不大.

在安卓原生上也是一样这样搜索,所以应该是底层有做处理吧,但具体我也不清楚。 我们用了加密成字符串、异或等处理,仅加密部分地方确实影响不大,但是全部加密就很卡了。 简单的加减乘除还没试过~ 如果底层确实没做处理,我们只能在代码逻辑里面去优化,就是工作量有点巨大,也不一定有效果~

如果是ts的话, 用装饰器啊, 写法参考cocos的@property, 在属性上粘贴一下就可以, 工作量不大.

嗯 这个目前用了

其实也就那么几个破解方法,堵住就行了
1.直接搜索,不说了,随便加减或者二进制运算一下就行了
2.增量搜索,应对那些简单加减的加密,所以只要加密算法里增量不要是线性就行
3.通过调试找到偏移位后,以后作弊都固定寻址,这个用的不多,以前易语言那帮脚本小子就经常这样干,虐杀一片简单加密的游戏,而且JS能不能这么做我也没验证过,反制手段也简单,我想到的是初始化寻址随机,即变量的初始化基地址不是固定的,说人话就是一些重要变量是数组里的某个位置。
要安全,以上组合拳一套下来,应该问题不大

补充一句,要安全,根本方法还是服务端验证,因为你算法再炫酷,在JS注入攻击面前都是花拳绣腿。

感谢回复,这些我们目前知道的哈。 就是想知道下cocos 底层 c++代码里有没有这个统一处理的地方。 没有的话我们就在脚本里面处理了。