2

我想知道是否有办法阻止“OpenGL Profiler”或“Ins​​truments”附加到我的应用程序,因为它揭示了一些我想隐藏的着色器/进程。

4

2 回答 2

3

没有办法做到这一点。您可以做的最好的事情是混淆您的着色器,以便它们难以破译,例如通过使用一些代码为所有方法和变量提供非描述性名称。

您不能阻止某人捕获您的着色器和纹理的内容的原因是您必须将它们传递给 OpenGL API。理论上,有人可以用简单地将着色器/纹理保存到他们的硬盘驱动器的实现来替换 API 中的适当方法。你无法知道这是否已经完成。

于 2013-09-20T15:44:23.257 回答
0

我所做的方法是加密应用程序中的着色器,因此如果用户检查应用程序的内容,他会找到 *.vsh 和 *.fsh 但他将无法读取它。我在编译之前解密它们。

在我的渲染过程中,我添加了

#if RELEASE
CGLSetGlobalOption(kCGLGOComment, (long) "No profiler in release scheme");
#endif

通过添加它,当 openGL profiler 尝试附加时,应用程序将崩溃。所以着色器将不可见。

于 2017-11-12T15:59:19.577 回答