塔防战斗,逻辑写在前端,请教如何有效加密

目前游戏内战斗数据部分是加密过的,
然后服务器验证难度有一些,不太好验证,
外壳加密的话暂时还没弄,
应该还有可以检测内存修改的工具之类的防止作弊方式吧。
之前写邮件给云风大神。。。

  1. 放在后端计算. 或
  2. 不在乎被破解。

我也知道结果是这样,但是战斗逻辑复杂度太高,不太可能移植到后端,但还是想着增加破解难度也可以,所以想请教各位有没有什么好的方式

参考这篇看看,因为我也还没错,刚好闲逛就照自己的思路找资料,没意外做代码加密+混淆,也不一定要太难,应该就还可以,只少被拷贝下来很较难还原,但还希望有大佬出来,搭把手
https://www.zhihu.com/question/47047191

感谢!我去看下

我这边用的是cocos2d-lua 不过我看下思路之类的吧

游戏引擎用的是cocos2d-lua官方版本,代码加密是有的。现在的需求是防止内存修改等等的作弊情况。之前也找了些防作弊sdk,觉得有些贵,所以目前没有考虑这个了。还有大佬帮帮忙吗。。。提供思路也可以,感谢

顶一下。。

数据用一个变量(函数)来做加密,比如 玩家金币数是100,内存中的数据是200,200+偏移值(-100)来得到最终值,这样玩家用内存修改器找100是找不到的

简单的内存数据加密存储目前是有的,不过还是感谢!

代码最好自己写个加密方法,官方用的xxtea早就被破了

“但凡是写在前端的逻辑,没有什么是挖不到不能破解的”

以防君子不防小人的思路来思考:

后端验证 > 前端验证 > 内存加密 > 逻辑加密 > 明文

最安全的一定是后端验证或者后端计算,如果不想游戏上线后崩溃,希望正视这个问题
(昨天刚陪上海公安跨省去抓破解公司其中一个游戏的淘宝商,证据链足够,定罪轻松。但是由于涉事时间较久,漏洞无法及时补上,游戏中的活跃玩家已从5位数跌到3位数,回天乏力。直接经济损失1000万+)

如果是小游戏,自认损失不会那么大,我可以抛个前端保护的思路
1、二次校验
——用另一种方式,对战斗结果进行演算,并获得结果
2、运算加密
——字母与字段之间的传输与运算,不把明文数值暴露出来

核心思路是:不把数字当数字,不把加密当加密

自己思考一下吧

1赞

混淆事要的,内存dump一样可以导出源码

我之前听说 有个攻击服务器的,敲诈了1.5w好像. 要不然你所有游戏都登不上。他说还去阿里买了2w的高仿。没防住,又把钱退了.不敢报警,报警撕票.

我的话可能问那个敲诈的,服务器撕票个我看看…纯好奇

回到题主的问题上.

之前干了个骚操作.记录玩家的操作输入数据,然后把这个玩家的部分相关数据和操作输入数据屯起来,
抽空发给另一个客户端去运算(无表现,仅运算),得到的结果作比较.如果有问题就秋后问斩.你要是信不过可以多找几个客户端. 反正道理嘛就像区块链去中心化.反正也不占服务器资源.算力充沛.顺带说一嘴,好像不少moba也这么干.效果如何呢?很好的.只是防不住开图挂和自动操作脚本这种.但你这个游戏不存在这问题啊.
(吐槽:一堆傻逼拿区块链搞钱,不做正事儿)

感谢,验证确实是最重要的一环

看了大家的回答,其实这种前端战斗,作弊是无法避免的,验证或许才是最后一个门槛

再怎么加密也没用的,很容易被破解,还有个问题就是,你要面临外挂的注入,把攻击改的非常离谱,把装备的属性改的非常变态~所以最有效的方法,还是服务器验证~

主要是不太好验证,不可控的因素有很多,本来想的是外壳加密 改内存数据游戏直接闪退 。目前的防止作弊方式有:数据加密 服务器验证 外壳加密(没弄) ? 接入网易易盾sdk(有点贵。。。) 还有别的想法什么的也可以和我说下,感谢。。。

云风的回答已经非常清楚了 你逻辑放前端 做啥都没用
加壳 反调试 都可能被破解 而且也会带来兼容性的问题

战斗逻辑复杂度太高,不太可能移植到后端

可以简化模型 让后端计算一个大概 校验可以不太严格 但是还是可以判断出作弊行为

后端做大量复杂计算的话可能会影响效率

:slightly_smiling:后端不就是用来做大量复杂计算的么