玩家存档加密该做到哪一步:文件、内存与服务端校验
最近帮一个项目做客户端安全检查,查到存档这部分时发现了问题:金币、等级、背包和任务进度都明文落在本地,字段和值一眼能对上,改完再塞回去,客户端照常读取。
最近帮一个项目做客户端安全检查,查到存档这部分时发现了问题:金币、等级、背包和任务进度都明文落在本地,字段和值一眼能对上,改完再塞回去,客户端照常读取。
现在手游基本都上 IL2CPP,也正因为它是默认项,很容易顺带长出一种"native 化了就藏住了"的底气。但其实不然...
上个月一个团队拿着包来找我,想不通:混淆上了、字符串也加密了,怎么市面上还是冒出来了改过广告 SDK 的破解版。我翻了一下发现,他们把力气全砸在了防止别人读代码上,签名和完整性校验一行没写。可对方压根没读代码,拆开包改俩字节、塞个模块、重签名,破解版就流出去了。
游戏重打包这个事,麻烦就麻烦在门槛不高,但扩散很快,影响还大。有些包甚至不需要把代码完全看懂,拆开 APK,改几个配置,塞一个广告 SDK 或别的模块,再签名重打包,一个“破解包”就出来了。然后往网站、论坛或 Telegram 群里一丢,很快就传开了。