有哪些技术可以模糊着色器资产?

时间:2011-12-15 14:26:04

标签: android glsl opengl-es-2.0 shader security-by-obscurity

我的游戏和应用程序中有许多着色器,我目前使用一个简单的程序来制作着色器并生成一个java类,它将文本放入StringBuilder,一次一个字符,因此文本搜索赢了如果有人改变了工程师,就找不到任何东西。

这感觉不对,但它确实让它们立刻脱离了眼睛,但我并不觉得它们非常安全。

我已经看到了关于预编译的问题,没有答案。还有什么可以做的?

2 个答案:

答案 0 :(得分:1)

到目前为止,我看到的最佳解决方案,考虑到着色器通常是非常小的程序,就是按照你刚才所说的方式将它们嵌入到你的代码中。

这很安全。

考虑一下,如果有人想要使用你的着色器,将通过从GPU转储它来实现它,显然它会变得更加复杂但是可以完成(谈论逆向工程)。

加密是一个选项,但它只保护着色器的本地存储,我仍然可以在解密后转储程序的内存。

最后但并非最不重要的是,一般情况下预编译着色器并不方便,考虑到您正在开发的平台,GPUS和驱动程序的实现范围很广,这种情况更为真实。

回到关于预编译着色器的另一个问题,在OpenGL Gold Book(OpenGL ES 2.0编程指南)的第350页有一个非常好的解释,其中解释了为什么你不应该这样做。

其中一个原因是设备供应商可以按自己喜欢的方式自由存储二进制着色器。

我希望它有所帮助。

  

块引用

答案 1 :(得分:0)

一种选择是加密文件。看看Cipher课程。