怎麼給軟體加殼防止反編譯
Ⅰ 如何防止Unity3D代碼被反編譯
根本的解決辦法是:先對DLL加密,然後在Unity的源碼中載入程序DLL之前進行解密。
這就需要通過逆向工程獲得配枝相應培拍敏的Unity源碼或賀頃者是直接向Unity購買Source Code License。
Ⅱ c# 代碼加殼軟體或者混淆器哪個比較好,能防止反編譯的。跪求
現在最好的是
1.DNGuard HVM 這個是基於內核級別的加密。不會讓IL代碼被反編譯或被從內存中剝離。
2. IL Protected
這個兩個都比較好。其餘的都很垃圾,
————————————————————————————————————
Dotfuscator VS默認帶的工具,不過是個社區版 強度不大
dotNET Reactor 使用了NativeCode 和混淆的形式 ,可從內存中剝離
Xenocode Postbuild 專業工具,還是比較可以的,但是要看你怎麼用
{smartassembly}.Setup.msi 這個是 RedGate出品的,
————————————————————————————————————
除了我說的第一、第二個工具,你可以嘗試用其他的工具混淆加密,然後把你的測試程序發給我,我可以完美破解。都是親身測試過的。
Ⅲ c#防止反編譯,如何將exe文件做成資源文件(加殼)
1.新建一個項目(所謂的殼)。命名為Test 2.將要加殼的程序test.exe文件做成資源文件防在Test文件中。 打開新建的項目Test,雙擊最右側的Solution Explorer的第一個按鈕Properties。 會出現這個畫面 然後點擊Resourse-AddResource-添加現有資源,就將你要添加的test.exe添加進去,然後再solution Explorer中會生成一個文件夾 Resource你的test文件就在那裡念漏面,然後右鍵test.exe的屬性將他改為嵌入的資源即(Embedded Resource),然後就搞定了。 3.之後將新建的項目Form1刪除, 將Programma.cs打開替換成以下禪高擾代碼 [STAThread] static void Main(string[] args){ String projectName = Assembly.GetExecutingAssembly().GetName().Name.ToString(); Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStrea m(projectName + ".Resources" + ".test.exe"); byte[] bs = new byte[stream.Length]; stream.Read(bs, 0, (int)stream.Length); Assembly asm = Assembly.Load(bs); MethodInfo info = asm.EntryPoint; ParameterInfo[] parameters = info.GetParameters(); if ((parameters != null) && (parameters.Length0)) info.Invoke(null, (object[])args);else info.Invoke(null, null);}大功告成了。 新生成的賀旦test.exe會打開你導入的exe文件,這樣當別人用反編譯軟體的時候,他只是顯示你新建的項目中的Programma。cs中的代碼。
Ⅳ 如何防止Unity3D代碼被反編譯
在Unity3D中,代碼會編譯到Assembly-CSharp.dll。基於以上兩點,代碼的保護有以下三種:
第一種是對代碼進行混淆,諸如混淆軟體CodeGuard、CryptoObfuscator、de4dot
第二種是對Assembly-CSharp.dll進行加密後,重新對mono進行編譯。
Virbox Protector直接進行加殼後,無需手動編譯mono,能防止反編譯。