plá*_*omo 0 opengl graphics obfuscation vulkan
假设一家公司在他们的应用程序中实现了一个新颖的着色器,并且他们想要使其难以窃取.但是,OpenGL着色器以纯文本形式发送到GPU,而Vulkan接受一个易于反编译的字节码.是否有任何图形API具有非零级别的着色器模糊处理?
是否有任何图形API具有非零级别的着色器模糊处理?
不,这没有任何意义.着色器并不像完整的应用程序那样复杂.着色器可能达到的复杂性有很大的限制,以保持交互性.任何类型的混淆层,内心深处,只是一个奇怪的指令集,可以使用优化编译器/转换器轻松进行反混淆处理.
一般规则是:如果它可以执行并产生可读结果*,则可以对其进行反混淆处理.就这么简单.
此外,熟练的图形黑客将能够查看最终渲染和/或中间结果(使用像renderdoc这样的工具很容易获得),并找出着色器从中做出的要点.哎呀,90%的图形编码都是由这种视觉输出调试组成的,当你试图弄清楚你的着色器为什么以及如何不符合你想要的时候以及你在屏幕上看到的混乱是如何发生的.因此,任何有经验的图形黑客都已经构建了大量的技能组,只需"查看"它就可以对着色器进行逆向工程.
*如果不是"可读结果"的约束,那么同态加密可能允许真正的代码混淆.但是您通常希望人类可以使用着色器的输出.