评论

推荐一个开源强大的 .NET 代码混淆神器

代码混淆

大家都知道,C# 代码在编译后生成的中间语言(IL)非常容易被反编译,几乎可以直接还原为可读的源代码。这对于一些对安全性要求较高的场景来说,存在较大的风险。

为了有效保护核心逻辑和关键业务代码,代码混淆是一种常用且必要的手段。通过对代码结构、变量名称和逻辑流程进行混淆处理,即使代码被反编译,也会变得极其难以理解,从而在一定程度上防止恶意逆向工程和知识产权泄露,提升代码的安全性和可靠性。

Obfuscar

今天推荐一个开源免费的 .NET 混淆神器,容易上手使用,在 Github 上拥有 2.4k 的 star,可以它还是很受欢迎的。

它使用了大量的重载,把 .NET 程序集中的元数据(包括方法、属性、事件、字段、类型和命名空间的名称)重命名为最小集,在大多数情况下只能通过签名来区分。

功能特性

  • 功能强大,开源免费,配置简单

  • 名称混淆, 隐藏您不想公开的类/方法/属性/事件名称

  • 支持字符串压缩

  • 支持 dotnet 全局工具

  • 支持多平台,Windows、macOS 和 Linux

  • 支持多框架, .NET, Xamarin, Unity,.NET Framework

简单示例

publicExampleUI( )

{

InitializeComponent( );

ClassX cx = newClassX( "Some Text");

displayText.Text = cx.DisplayText;

}

该代码可以反编译(通过ILSpy )为:

publicExampleUI( )

{

this.InitializeComponent;

this.displayText.Text = newClassX( "Some Text").get_DisplayText;

}

而混淆后,反编译后的代码是这样的:

publicA( )

{

this.A;

this.a.Text = newA.A( "Some Text").A;

}

这是一个最简单的例子,Obfuscar 的更多功能可以通过配置实现。

.NET Core 全局工具

.NET Core 2.1 SDK引入了全局工具,从2.2.15版本开始,Obfuscar就可以作为全局工具使用。

要将 Obfuscar 安装为全局工具,请执行:

dotnet tool install --global Obfuscar.GlobalTool

安装完成后,您可以调用obfuscar.console来运行 Obfuscar。

项目地址:

https://www.obfuscar.com

鼓励一下

赞完再走返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()