Ⅰ unity shader 能加密嗎
主要是 sm1和sm2 sm3支持的很少
在開發時切換圖形模擬環境看看shader是否報錯
另外要注意渲染效率 shader中盡量不要有太復雜的計算
Ⅱ unity3d對美術資源的加密方式有哪些
U3d是引擎,跟美術沒關系,你是奔著工資去的吧?中國貌似沒有培訓U3d特別好的地方,有耐心的話,自學也行,跟MAYA什麼的比,應該不算非常難。
Ⅲ 如何在 unity3D 游戲存檔加密
存檔文件, 被修改起來現在變的很容易了, 為了解決這個問題,請用下面的代碼,修改playerPrefs.cs
1.替換
fileReader = new StreamReader(fileName);
serializedInput =DecryptDES(fileReader.ReadLine(), highscore.keyss);
復制代碼
2.替換
fileWriter.WriteLine( EncryptDES(serializedOutput , highscore.keyss));
fileWriter.Close();
復制代碼
3.
//默認密鑰向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };public static string keyss = "1234567z";
/// <summary>
/// DES加密字元串
/// </summary>
/// <param name="encryptString">待加密的字元串</param>
/// <param name="encryptKey">加密密鑰,要求為8位</param>
/// <returns>加密成功返回加密後的字元串,失敗返回源串</returns>
public static string EncryptDES(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}/// <summary>
/// DES解密字元串
/// </summary>
/// <param name="decryptString">待解密的字元串</param>
/// <param name="decryptKey">解密密鑰,要求為8位,和加密密鑰相同</param>
/// <returns>解密成功返回解密後的字元串,失敗返源串</returns>
public static string DecryptDES(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
Ⅳ unity3d對美術資源的加密方式有哪些
c#代碼用混淆,深入可以試著修改mono載入dll方式,官方有開源mono
git。樓上有說assetbundle加密,這里加一個資源文件名稱也可以用md5
hash一下。如用其他腳本加密參考腳本語言本身lua可以用luajit,
Ⅳ 如何評價騰訊在Unity下的xLua熱更方案
我認為xlua的概念很好,很多人用lua就是為了熱更新,如果沒有熱更新的需求,大多數人是不喜歡lua,或者所謂的腳本開發的,xlua很好的解決了這部分人得需求。
但我有一點其他看法,我04年畢業在網易工作的時候,網易的游戲都是基於腳本的,不管是客戶端,還是伺服器端,那個時候不是lua,就是python,還有一種是類似c語法的腳本(我忘記名字了),這個是雲風主導的,當時選擇腳本作為邏輯開發語言的核心想法**不是為了熱更新**,而是解決
1)劃分引擎層和業務層,svn管理好許可權,讓新來的同學,接觸不到核心引擎的代碼許可權,他們只能在腳本層做業務,等你對業務足夠熟悉,對引擎足夠了解,對公司足夠忠誠後,才開放引擎層代碼,這么做早年是為了解決私服問題,很多同學拿著全部源代碼去架設私服,這多可怕,所以做業務的程序員只能拿到一個編譯後的app和一份腳本介面文檔,而編譯出來的app會檢查線上ip,報告非法伺服器地址等,協助打擊私服。
2)避免書寫不好的c、cpp代碼崩潰整個進程,腳本代碼出錯了,最多影響局部邏輯,還可以上報腳本錯誤,方便後續解決問題,現在unity里也一樣,如果c#代碼書寫不好,就直接閃退了,不如用lua做一個安全的調用層。
3)快速修改代碼,快速跑起來,早年cpp代碼編譯速度比較慢,修改一行代碼調試運行等半天,腳本代碼方便修改,方便跑起來,不用等,放到今天也一樣,同時iOS還有text size大小的限制,太多的stub function會撐大text size,而lua腳本再多的代碼也不會有這個問題,不用再為了text size取捨代碼怎麼寫,功能去留的問題。
4)反外掛,對,你沒看錯,反外掛,早年PE各種脫殼、反編譯工具,使得一個exe幾乎沒有秘密,外掛作者很容易做外掛,而用腳本後,幾乎所有邏輯都是中間代碼,這部分中間代碼可以通過修改opcode,加密,一邊run,一邊解密等技術,保證在進程空間內基本沒有完成代碼存在,對外掛作者是個很大挑戰,所以網易的游戲反外掛歷來做的都是最好的;
5)最後才是所謂的「熱更新」, 當年也不是現在這種熱更新,就是每次客戶端啟動的時候,有一個launcher去伺服器下載一個update,然後應用這個update而已。
Ⅵ 用unity3d開發的軟體,有沒有好的工具能做加密
隨著3D技術越來成熟,3D游戲開發備受大家的青睞!我第一次接觸3D技術是從一部3D電影開始!當時在看完那部電影之後,我才開始對3D有了初步認識!除了電影,3D技術還運用在很多方面,比較最近非常火的VR技術,AR技術等。但是接下來我要為大家介紹的是一款游戲引擎——Unity。
對於Unity相信很多人多不陌生,用一句話來描述就是:Unity是游戲引擎、游戲開發工具。支持的維度3D,2D,可以進行3D,2D游戲開發。對編程有所認知的朋友,大概會說「你問Unity是干什麼?開發游戲一個開發工具」。在程序員的工作生涯中,開發工具使用最為常見,因為針對不同的編程語言使用不同的開發工具是有所差異的,需要安想裝不同的開發環境,如最近很火的小程序需要用微信web開發者工具,VS是開發C#常用的工具。那麼,作為開發工具Unity3D支持什麼語言?下面就讓我們收集一下信息,一起來了解一下Unity3D用什麼語言開發好?
Unity網路里關於編程語言寫的是C#和JS兩種語言?對於不是計算機專業的朋友,可能對兩個語言很陌生。簡單的接受一下兩種語言的運用情況吧!
JS是一個腳本語言,全稱是JavaScript,請注意它不是Java,兩個不是一個東西,不要弄混!目前運用最多的方面就是前段開發,可以做一些也沒交互,最為簡單就是用js實現滑鼠點擊事件。
C#是微軟公司的開發的,我最早接觸net開發採用的語言就是C#,支持C#開發的最廣泛的軟體就是VS(Microsoft Visual Studio,安裝包很大),個人的看法:C#在語言邏輯、安全等方面比JS更具有限。
從市場上Unity開發語言的選擇中,C#備受企業青睞!為了能向企業輸送對口人才!藍鷗Unity3D用C#語言開發!
上面我提了一下VS安裝包比較大,相對於Unity自帶的mono軟體(用來寫腳本的軟體)更便捷。為了方便安裝,藍鷗Unity3D開發腳本使用mono軟體進行編寫。
Ⅶ unity streamingassets可以加密嗎
所有的數據都是01數據,當然可以加密,然後加密之後讀到內存中
Ⅷ unity3d 有什麼加密演算法
平行光:DirectionalLight點光源:PointLight聚光燈:SpotLight區域光源:AreaLight平行光只跟方向有關,電光源是一個球狀的,聚光燈,比較耗費資源,區域光源沒怎麼用過,只能給出這些區別了。
Ⅸ Unity3D代碼加密如何做到防止反編譯
Unity3D主要使用C#語法和開源mono運行開發商的代碼邏輯,所有代碼都不是編譯到EXE,而是位於{APP}\build\game_Data\Managed\Assembly-CSharp.dll。而且mono執行原理跟微軟.NET Framework兼容但是執行原理完全不一樣。傳統的.NET Framework加殼全部失效,因為Assembly-CSharp.dll不是PE格式的動態庫也不是.NET的動態庫,無法從 .NET Framework 載入,而是由mono.dll讀取 Assembly-CSharp.dll的裡面C#腳本解釋執行。
Virbox Protector 對 Assembly-CSharp.dll 做加密,無需手動加密 Assembly-CSharp.dll 代碼,自動編譯 mono, Assembly-CSharp.dll 代碼按需解密,只有調用到才會在內存解密,不調用不解密,黑客無法一次解出所有的代碼。一鍵加密代碼邏輯,無法反編譯,無法mp內存。不降低游戲幀數,自帶反黑引擎,驅動級別反調試,秒殺市面的所有調試器。
Uinty3D 主要的游戲資源都在 resources.assets ,游戲裡面所有放在 resources 文件夾下的東西都會放在這里,DSProtector工具可以對Unity軟體中的 .resS和resources等資源文件進行加密防止軟體或游戲中的資源被非法提取。
Ⅹ unity這兩個文件是用什麼方式加密的有沒有解密
c#照樣容易被破解,即使加密,也只是增加破解的難度而已,都是從dll中反編譯,很多大型游戲不一樣有破解
只是c#的類型是安全的,而js雖然可以強制靜態類型,但並沒c#那麼可靠
如果剛開始學習而沒有編程基礎,可以從js開始,不過最後還是可能轉到c#上