C#将游戏数据保存到用户无法编辑的地方

时间:2015-08-21 13:35:30

标签: c# windows file storage

我正在开发一个寡妇表单游戏,当用户通过一个级别时,下一级别被解锁,我希望将当前级别的数量保存到用户无法编辑和欺骗的某个地方。我应该在哪里保存它以及如何保存?请不要告诉我将其保存在网络或数据库中。感谢

2 个答案:

答案 0 :(得分:1)

从技术上讲,这是不可能的。只要该文件存在于硬盘驱动器上,用户就可以打开它并修改其内容。

但是,您可以做的是让用户更难以这样做。以下几种方式可以减缓"骗子:

  1. 将文件保存在难以访问的位置。在Windows上,%AppData%文件夹可能是放置它的位置(它是Windows中的隐藏文件夹)。不过,这实际上只会阻止那些不了解该文件夹的人。
  2. 以难以逆向工程的方式编写保存数据。也许你可以用一个不寻常的扩展来编写你的文件来关闭新手作弊者("我如何打开这个'特殊'文件类型?"即使它只是一个文本您可以在记事本中打开的文件)。也许您可以序列化savedata对象,然后将其写入文件。
  3. 如果你想拔出大枪,你可以用某种方式加密数据。我个人认为这对于非多人游戏来说太过分了,但它肯定是解决问题的一种方法。
  4. 不幸的是,保证用户不会修改文件内容的唯一方法是将文件保存在不在用户计算机上的位置 - 例如Web服务器。

答案 1 :(得分:0)

您可以做的是加密整个字符串并将其保存在加密文件中,将加密密钥保存在代码中,然后当您想要编辑/读取写入的数据时,您只需使用相同的密钥对其进行解密即可。但任何人都可以使用任何混淆工具并获得密钥。