.net 语言加密方案#
方案背景#
当前C# .net语言的应用范围越来越广泛,IIS 的服务器架构后台代码、桌面应用程序的 winform 、Unity3d 的逻辑脚本都在使用。C# .net 具备强大的便捷特性,使得开发成本极低。而作为一款.net 语言,也有它让开发者头疼的弊病——非常容易被反编译。市面上的 Dnspy, ILspy,de4dot等工具可以非常容易反编译出被混淆保护的C# .net 程序。
解决方案#
深思自主研发了为 C# .net 语言做保护的外壳。将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 }); }
架构支持#
- IIS 服务架构的后台逻辑 DLL 文件
- windows PC 应用程序 EXE 文件
- windows PC 应用程序动态库 DLL 文件
- UG等第三方绘图工具使用的 DLL 文件
- Unity3d 编译使用的 DLL 文件
技术服务支持#
深思提供每周一至周五 9:00 ~ 20:00,每周六 10:00 ~ 19:00的技术支持服务。 联系电话:010-56730936 邮箱:tech_support@sense.com.cn