.net confuser(混淆)开源工具ConfuserEx

时间:2024-03-12 16:44:53

.net 混淆器,网上搜寻了很多款,比如Dotfuscator、xeoncode、foxit等等。但大部分收费,当然也有破解版的,github上找到一个ConfuserEx,开源地址:https://github.com/yck1509/ConfuserEx

混淆加壳以及脱壳,反编译工具常用如下:ConfuserEx、UnConfuserEx、Fixer、ConfuserExStringDecryptor、ConfuserExSwitchKiller、de4dot、ILSpy

1、新建一个C#类库,ConfuserTest_Library,以及一个控制台程序ConfuserTest_HelloWorld

//控制台程序
using ConfuserTest_Library;
using System;

namespace ConfuserTest_HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(new HelloWorld("ConfuserEx"));
            Console.ReadKey();
        }
    }
}

//测试用类库
using System;

namespace ConfuserTest_Library
{
    public class HelloWorld
    {
        private string _i_am_Who = string.Empty;
        public HelloWorld(string i_am_Who)
        {
            _i_am_Who = i_am_Who;
        }

        public override string ToString()
        {
            return $"Hello World! I\'m {_i_am_Who}";
        }
    }
}

编译后,用Reflector打开ConfuserTest_HelloWorld.exe,毋庸置疑,可以看到源码,如下图:

 

2,现在我们用ConfuserEx混淆一下试试:

下载ConfuserEx后解压,打开ConfuserEx.exe,把ConfuserTest_HelloWorld.exe(此处注意,拖进来的文件的路径应该是普通用户有访问权限的路径)拖进来,如下图:

 

点击Settings

(1)选择Packer,(个人理解输出可执行包,不准确,因为单独打包类库,选择这个则报错)

(2)Modules->选择ConfuserTest_HelloWorld.exe

 (3) Rules 点击+号,true

 如下图:

 

击Protest!->Protect! ,提示导出成功(Confused目录下),

 

在用ILspy打开ConfuserTest_HelloWorld.exe查看

3、如果只是混淆exe文件,这样就可以了,如果混淆整个项目,则把ConfuserTest_HelloWorld.exe,ConfuserTest_Library.dll都拖进来

这时,混淆后就只有一个ConfuserTest_HelloWorld.exe文件了,但是,点击运行时正常运行的,confuserEx是把两个文件给合并了,可以看出ConfuserTest_HelloWorld.exe由原来的5k增加到了18k

4.如果我们只需要混淆某一个dll,这时如果在Settings上选中Packer则报“No executable module!”没有执行模块错误,所以单独选择dll混淆时,不要选择Packer。

  另外,在设置规则Rules时,还可以编辑选项,如下: