2016-09-03 13 views
-1

アプリケーションで新しいシェーダを実装した企業が、盗難を困難にしたいとします。しかし、OpenGLシェーダーはGPUに平文として送信され、Vulkanは簡単にdecompileable bytecodeを受け入れます。グラフィックスAPIのシェーダの難読化レベルはゼロではありませんか?グラフィックスAPIがシェーダの難読化を実装していますか?

+2

特許は、難読化の優れた形式です。 – Robinson

答えて

4

グラフィックスAPIのシェーダの難読化レベルはゼロではありませんか?

いいえ、それは意味をなさないでしょう。シェーダは完全なアプリケーションほど複雑ではありません。シェーダがインタラクティブ性を維持するために到達する可能性のある複雑さにはかなり厳しい制限があります。また、あらゆる種類の難読化レイヤーは、最適化コンパイラ/トランスパイラを使用して容易に難読化することができる奇妙な命令セットです。

一般的なルールは次のとおりです。実行可能であり、可読な結果*を生成する場合は、解読不能にすることができます。それは簡単です。

また、熟練したグラフィックハッカーは、最終的なレンダリングや中間結果(レンダリングのようなツールを使用して簡単に取得できます)を見て、シェーダのことを垣間見ることができます。グラフィック・コーディングの90%は、この種のビジュアル・アウトプット・デバッグで構成されています。なぜ、シェーダがあなたが望んでいない理由とその理由がわからなくても、スクリーン上で見られる混乱が最初に起こるようになったときです。だから経験豊かなグラフィックハッカーは、すでにそれを "見て"いるだけでシェーダをリバースエンジニアリングするのに必要なスキルセットの多くを構築しています。


*それは「読める結果」の制約がなければ、その後Homomorphic Encryptionが真のコードの難読化を可能にすることがあります。しかし、通常は、人間が読み込み可能なシェーダの出力を必要とします。

関連する問題