0

私のゲームやアプリにはいくつかのシェーダーがあります。現在、シェーダーを取得して、テキストをStringBuilderに一度に1文字ずつ入れるJavaクラスを生成するために作成した単純なプログラムを使用しているため、テキスト検索では見つかりません。誰かがエンジニアを逆にした場合は何でも。

それは間違っているように感じますが、それは彼らをすぐに見えなくする仕事をします、しかし私は彼らが非常に安全であるという幻想の下にありません。

事前コンパイルに関する質問を見ましたが、答えはありません。他に何ができますか?

4

2 に答える 2

1

シェーダーは通常非常に小さなプログラムであるという事実を考慮すると、これまで見てきた最善の解決策は、今言った方法でシェーダーをコードに埋め込むことです。

これは非常に安全です。

誰かがシェーダーを取得したい場合は、GPUからダンプすることでそれを実行することを考慮してください。明らかに、はるかに複雑ですが、実行できます(リバースエンジニアリングについて話します)。

暗号化はオプションですが、シェーダーのローカルストレージのみを保護します。復号化の直後に、プログラムのメモリをダンプできます。

大事なことを言い忘れましたが、一般的にシェーダーをプリコンパイルするのは便利ではありません。また、GPUとドライバーの実装の幅広いファミリーがある場所で作業しているプラ​​ットフォームを考えるとさらに真実です。

プリコンパイルされたシェーダーに関する他の質問に戻ると、OpenGLゴールドブック(OpenGL ES 2.0プログラミングガイド)の350ページに、それを実行すべきでない理由が説明されている非常に優れた説明があります。

その理由の1つは、デバイスベンダーがバイナリシェーダーを好みの方法で自由に保存できることです。

お役に立てば幸いです。

ブロッククォート

于 2012-01-05T20:41:42.973 に答える
0

1つのオプションは、ファイルを暗号化することです。Cipherクラスを見てください。

于 2011-12-15T14:37:06.893 に答える