當前位置:編程學習大全網 - 源碼下載 - C#怎樣防止反編譯?

C#怎樣防止反編譯?

我使用的方法是利用加殼工具:virbox?Protector?Standalone。直接進行加殼。高級混淆、虛擬化代碼、智能壓縮等加密策略。如果要授權控制,可使用許可版本的virbox?Protector。

未經加殼保護的 ILspy 反編譯效果如下:

public int add(int a, int b){

return a + b;}public int div(int a, int b){

return a / b;}public int mul(int a, int b){

return a * b;}public int sub(int a, int b){

return a - b;}

解決方案:

深思自主研發了為 C# .net 語言做保護的外殼(Virbox Protector)。將C# .net 編譯成的執行程序(.exe),動態庫(.dll)直接拖入加殼工具即可完成保護操作,十分方便。並且在效果上已經完全看不到源碼中的邏輯。

加密後的效果

public int add(int a, int b){

return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16416u, 21, 16384u, 32u, 31516u, 5).Invoke(this, new object[]

{

this,

a,

b

});}

public int div(int a, int b){

return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16956u, 21, 16924u, 32u, 31516u, 2).Invoke(this, new object[]

{

this,

a,

b

});}

public int mul(int a, int b){

return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16776u, 21, 16744u, 32u, 31516u, 3).Invoke(this, new object[]

{

this,

a,

b

});}

public int sub(int a, int b){

return (int)dm.dynamic_method((object)this, System.Reflection.MethodBase.GetCurrentMethod(), 16596u, 21, 16564u, 32u, 31516u, 4).Invoke(this, new object[]

{

this,

a,

b

});}

架構支持

IIS 服務架構的後臺邏輯 DLL 文件

windows PC 應用程序 EXE 文件

windows PC 應用程序動態庫 DLL 文件

UG等第三方繪圖工具使用的 DLL 文件

Unity3d 編譯使用的 DLL 文件

  • 上一篇:linux如何查詢是32位還是64位的
  • 下一篇:雲南工業綠色發展進入新階段
  • copyright 2024編程學習大全網