使用户无法访问资源

时间:2012-09-17 09:49:22

标签: c++ c visual-studio-2010 embedded-resource resource-files

我用C / C ++编写了一款即将发布的游戏。

我的问题是:什么是让用户无法访问资源(图像/声音等)的好方法?

它不一定是强加密,我只是不希望普通玩家浏览资源文件夹。

截至目前,资源未在Visual Studio项目中链接,它们是从路径加载的。

2 个答案:

答案 0 :(得分:4)

这取决于你想要隐藏用户的内容;你愿意投资多少与奖励相比。以下是一些想法:

  1. 只需更改/删除资源文件的文件扩展名即可。大多数普通用户已经停止。
  2. 稍微修改文件以通过在应用程序知道跳过的开头添加一些额外字节来破坏它们。额外的字节可能是误导性的标题或垃圾。
  3. 将资源存储在容器/ archive format中,例如ZIP或Blizzard的MPQ。可选择使用密码。
  4. 将它们作为资源存储在可执行二进制文件中。用户需要使用资源编辑器/查看器来查看它们;大多数用户甚至不知道他们在那里。

答案 1 :(得分:3)

处理它的一种简单方法是将所有文件压缩到一个密码保护的ZIP文件中,你可以在内存中解压缩(如果你想要的话,可以放到基于内存的文件系统上)。

显而易见的缺点是,您需要将所有内容保存在内存中,或者多次调用以获取您想要的文件。

编辑:快速搜索给了我这个与此相关的问答的链接: Simple way to unzip a .zip file using zlib

警告

在应用程序运行时,通过使用调试器分离应用程序进程,黑客仍然可以访问这些字符串。