2

「OpenGL Profiler」または「Instruments」がアプリケーションにアタッチされるのを防ぐ方法があるかどうか疑問に思っています。隠しておきたいシェーダー/プロセスが明らかになるためです。

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 プロファイラーがアタッチしようとしたときにアプリケーションがクラッシュします。したがって、シェーダーは表示されません。

于 2017-11-12T15:59:19.577 に答える