1

当我在专业和业余的计算机上安装游戏时,我发现图片等资源具有奇怪的扩展名,因此我无法打开它们。

由于我在 Google 上找不到这些扩展,我认为这是一种保护您的艺术品的方法,因此它不会那么容易被盗。

我有一堆 JPEG、PNG 和位图文件,我想这样做,所以当我分发我的游戏时,人们不能轻易复制它们。

如果有什么不同,我会使用 C++ 和 DirectX。

有谁知道这是怎么做到的?我知道我可以将 .txt 扩展名更改为任何内容,并且我的程序会以相同的方式读取它,但这适用于图片吗?

4

2 回答 2

3

由于我在谷歌上找不到这些扩展,我认为这是一种保护你的艺术品的方法,所以它不会那么容易被盗。

创建自己的扩展很容易,只需决定如何解释图像,然后创建一个转换器来从现有图像构建它们......

...但是...选择格式是为了程序员和艺术工具,而不是为了保护。您永远无法真正保护您的艺术作品不被盗,因为在某些时候,您的代码必须将图形转换为原始 DDB(设备相关位图)或 DIB(设备独立位图),然后才能将它们渲染到屏幕或发送它们到 DX/OpenGL。老实说,不遵循标准格式的卡带上的商业游戏很容易被撕掉。黑客甚至为不为公众所知的专有游戏引擎制作关卡编辑器。

我不在我的游戏代码中使用 png 和 jpg 的原因很简单,因为我无法在我的代码中使用 libpng,也无法使用 jpeg 解码器,而且我需要以 8x8 瓷砖和 4/8 位调色板提供的图形(颜色 0 是透明的),或 16 位 RGBA_555_1,这是使用 png 和 jpeg 无法实现的。

最多,您可以通过以您自己的格式存储它们、加密它们甚至压缩它们来隐藏您的图形,仅此而已。但请注意,您的代码必须对其进行解密/解码,并且图片有时会在小偷的记忆中。

所以是的,您可以轻松更改文件类型,但这不会阻止任何用户 (a) 更改文件名,或 (b) 通过将文件类型放入可以轻松识别文件类型的程序来确定文件类型。作为一个也做过视频编辑的人,我可以告诉你,许多程序会很乐意解释任何文件并找出真实的格式。它不会阻止(c),一个严谨的黑客撕毁你的作品。事实上,看看黑客对 Propellerhead 的 Refill 格式做了什么,因为他们不知道如何读取它,所以他们创建了一个程序,使用 Propellerhead 的程序来读取它——想想看。使用 Vanjar Fukar 的调试器在加载图像时跟踪您的代码、识别您的图像加载代码并复制它或自己调用它(以及其他一百种黑客策略)真的不需要太多。

于 2011-12-27T13:16:13.633 回答
0

通常程序在读取文件时并不关心扩展名,因此将扩展名更改为未知的扩展名不会给您带来麻烦。

于 2011-05-18T13:44:27.757 回答