是否有任何方法可以隐藏Web应用程序中使用的着色器,不会被着色器编辑器或其他工具检查

时间:2017-08-18 17:53:42

标签: glsl webgl shader

我正在为VR挖掘3D网络应用程序。我希望隐藏我的着色器不被firefox着色器编辑器和webGL检查器检查。我用uglify着色器的方式并将着色器放在return函数中而不是var中。但它们都不起作用。

那么,是否有任何方法可以隐藏Web应用程序的着色器?

1 个答案:

答案 0 :(得分:2)

答案很简单,没有

只需打印出着色器就很容易了。所有人要做的就是写一个执行此操作的扩展

WebGLRenderingContext.prototype.shaderSource = function(origFn) {
  return function(shader, src) {
    console.log(src);
    origFn.call(this, shader, src);
  };
}(WebGLRenderingContext.prototype.shaderSource);

即使您确实找到了阻止某人查看检查器中着色器的方法,他们也可以轻松运行Microsoft's PIXApple's OpenGL Profiler等系统级工具。他们甚至可以使用OSMesa运行浏览器并编译它以打印出着色器。 Chrome已作为测试设置的一部分与OSMesa一起运行。将它打印出着色器,然后使用它来运行/查看您的网站将是微不足道的。

更好的问题是你为什么关心?人们一直在检查着色器,even in AAA games。人们可以根据需要反编译汇编语言。你的着色器并不特别。你在浪费时间试图阻止它们被检查。

相关问题