我想阻止用户篡改我的iPhone应用中生成的数据,例如高分。所以我正在考虑使用相关数据的MD5哈希值,以及一个硬编码到应用程序中的安全盐。当读回数据时,我创建一个新的哈希并将其与旧哈希进行比较。如果有差异,我知道有人在摆弄数据。
我猜测总会有一种让人们绕过它的方法,但是这种方法会成功吗?
答案 0 :(得分:2)
我会说很棘手,但并不是很困难。使用调试器并观察盐被加载到内存中仍然相当简单,尽管它足以阻止绝大多数用户。
不幸的是,这是典型的DRM问题,并且没有针对充分动机的攻击者的解决方案。你最好的选择是创造尽可能多的障碍,这样就不值得花时间。
也许提交的高分还可以包含游戏状态的一些细节,这可以让您检查可能会让用户离开的不一致。例如,如果你看到一个用户达到了1,000,000点,但只达到了2级,那你就知道了什么了!
快速获胜至少会打败对你的二进制文件运行strings
的用户,以确保salt字符串看起来不明显;不要使用“盐盐”!