1. 程式人生 > >C# .net 語言加密方案

C# .net 語言加密方案

C# .net 語言加密方案

方案背景

當前C# .net語言的應用範圍越來越廣泛,IIS 的伺服器架構後臺程式碼、桌面應用程式的 winform 、Unity3d 的邏輯指令碼都在使用。C# .net 具備強大的便捷特性,使得開發成本極低。而作為一款.net 語言,也有它讓開發商頭疼的弊病——非常容易被反編譯。市面上的 Dnspy, ILspy,de4dot等工具可以非常容易反編譯出被混淆保護的C# .net 程式。

解決方案

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

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

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
    });
}

架構支援

  1. IIS 服務架構的後臺邏輯 DLL 檔案
  2. windows PC 應用程式 EXE 檔案
  3. windows PC 應用程式動態庫 DLL 檔案
  4. UG等第三方繪圖工具使用的 DLL 檔案
  5. Unity3d 編譯使用的 DLL 檔案

技術服務支援

深思提供每週一至週五 9:00 ~ 20:00,每週六 10:00 ~ 19:00的技術支援服務。 聯絡電話:010-56730936 郵箱:[email protected]

網址:https://www.sense.com.cn/vps/index.html