自己试水开发了个微信小游戏,接近于无后台
类似于这种整个代码运行在客户端的项目,如何防止被破解(别人会不会破解是另一回事)?
一般做法是怎么样的,求解答

单机游戏不需要防, 防了也没啥用

单机游戏防啥,是防止被人套壳还是防破解,防套壳的话加混淆

没游戏开发经验,微信小程序这种纯 js 容易被破解

我的至暗时刻,大批微信小程序遭破解,多年心血被盗版 /t/982914

怕盗版直接申请著作权和商标,有人仿就告。
怕修改值就没必要了,反正是单机

之前看到 v 站有人小程序被破解

微信小游戏需要有版号的吧?光这个门槛就能防被仿了,没事

单机破就破了呗能咋地....

现在破解换皮都成产业链了

跟我一样做文字游戏吧,你看看,一念成仙小助手,这种微信服务号。
这种没法破解,只能临摹。

用 wasm 打包,内部加入签名校验,http 请求,每次请求附带用户 UA 信息,以及运行环境信息,版本信息,服务端返回加密的验证信息,wasm 内部验证即可,如果发现有人爬取代码二次打包发布到其他平台,直接发布新版的 wasm 即可,同时服务端拒绝旧版的校验请求,逆向难度大大提高

感谢专业的回复,学习了

这种不太行,wasm 天然体积就大,对于小游戏额外增加不必要的体积是非常致命的

只有 wasm 可以,js 逆向太简单了,一般打包后 10MB 以内(验证+游戏整体全部逻辑),其他方案都不安全,小游戏的话第一次进入加载,后面缓存就行了

防啥,有些看完就用 ai 另做一个都懒得抄你代码

增加服务端逻辑的比重,比如把游戏使用的所有数据都放到服务端,用的时候向服务端请求;签名和版本号也是必须的,如果有人拿走前端但用你的服务端也是可以处理的;如果比较闲,可以用类似反爬虫的方式乱序映射部分代码逻辑,不过这个就比较麻烦了,非必要不添加

#12
developers.weixin.qq.com/miniprogram/dev/framework/performance/wasm.html

微信小程序支持 wasm ,虽然可能被逆向,但是逆向难度还是陡峭的,逆向的成本高。

  1. 官方提供加固,可以提升破解的成本。但是现在有 AI 加持,还原时间成本按小时算。
  1. 核心逻辑走云端。这样人家逆向你源码,只拿到外壳拿不到核心逻辑。
  2. 一些资源包放服务器,定期发布新版,目的就是提高破解者的成本。

来来去去的方式都是这几个。目的不是杜绝破解,而是提成破解者的成本。

用 wasm
developers.weixin.qq.com/miniprogram/dev/framework/performance/wasm.html

拉高反编译成本

真的,直接 ai 做一个,我代码都不需要抄你的。管你 wasm 还剩加密

#11 这样的话好像只要去掉 js 调用 wasm 的地方就好了?

之前玩过一个小游戏修改过 9999999999...钻石,加密内容在源码找到的

防不了。

而且,游戏圈被盗版是特别正常不过的事儿了。