代码改变世界

Github 开源代码混淆工具,支持 .NET - Obfuscar

2022-04-10 11:52  音乐让我说  阅读(873)  评论(0编辑  收藏  举报

关于

项目地址:https://github.com/obfuscar/obfuscar

官方介绍:Obfuscar is an open source .NET obfuscator released under MIT license. It provides basic obfuscation features that help secure secrets in a .NET assembly.

效果图:

官方文档:https://docs.obfuscar.com/

混淆原理

基本上,Obfuscar 对一组程序集中的元数据进行加扰。给定签名和类型信息,它将所有内容重命名为可用于识别它们的最小名称集。由于这些新名称比旧名称短,因此它也大大缩小了可执行文件的大小。

以下方法来自版本中包含的示例:

public ExampleUI( )
{
        InitializeComponent( );

        ClassX cx = new ClassX( "Some Text" );

        displayText.Text = cx.DisplayText;
}

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

public ExampleUI()
{
        this.InitializeComponent();
        this.displayText.Text = new ClassX("Some Text").get_DisplayText();
}

混淆后,代码可以被反编译(通过 ILSpy):

public A()
{
        this.A();
        this.a.Text = new A.A("Some Text").A();
}

这是一个简单的例子,但它可以扩展……例如,给定一个合理大小的代码库,可以很容易地运行到一个名为 A 的类(在命名空间 A 中),它有 7 个方法、4 个属性和 5 个名为 A 的字段,还有更多名为 a 的方法、属性和字段。

 

谢谢浏览!