2011-12-15 61 views
0

我在我的遊戲和應用程序中有很多着色器,我目前使用一個簡單的程序來製作着色器並生成一個Java類,它將文本放入一個StringBuilder中,一次一個字符,如果有人扭轉了工程師的情況,就找不到任何東西有什麼技術可以遮蔽着色器資源?

這感覺不對,但它確實能讓他們遠離視線,但我並不幻想他們非常安全。

我在預編譯時看到了一個問題,沒有答案。還有什麼可以做的?

回答

1

到目前爲止,我所看到的,在考慮到着色器通常是非常小的方案最好的解決辦法,就是將它們嵌入在你的代碼中你剛纔說你的方式。

這很安全。

考慮到,如果有人想要把你的着色器,將被來自GPU爲之傾倒做到這一點,顯然是遠遠要複雜得多,但它可以做到的(談到逆向工程)。

加密是一個選項,但它只能保護着色器的本地存儲,我仍然可以轉儲程序的內存剛剛解密後。

最後但並非最不重要的是,一般預先編譯着色器並不方便,考慮到您正在開發的平臺,GPUS和驅動程序實現的範圍很廣泛,這更加真實。

回到關於預編譯着色器的其他問題,OpenGL Gold Book(OpenGL ES 2.0編程指南)的第350頁有一個很好的解釋,它解釋了爲什麼你不應該這樣做。

其中的一個原因是,設備供應商可以隨意二進制着色器存儲在他們喜歡的方式。

我希望它有幫助。

塊引用

0

一個選項是加密文件。看看Cipher班。

+1

無論是有機磷農藥的解決方案,也沒有加密解決「問題」爲已任OPENGL API接口/調用檢查員將顯示組裝或未加密的文字,你將其發送到編譯器和做運行時解密的着色器聽起來像一個低fps的聚會。 – krs 2011-12-17 09:25:21

相關問題