今天给大家介绍一个开源.net混淆器——ConfuserEx

http://yck1509.github.io/ConfuserEx/

由于项目中要用到.net 混淆器,网上搜寻了很多款,比如Dotfuscator、xeoncode、foxit等等。

但大部分收费,当然也有破解版的,公司要求不能用盗版软件。

找了半天终于找到了ConfuserEX,用起来还行,就赶紧拿出来给大家分享下。

下载地址:https://github.com/yck1509/ConfuserEx/releases

由于网上中文介绍的比较少,我这里做个测试,给大家演示一下:

1、新建一个C#类库,我也就不改名字了,就叫ClassLibrary1吧,在Class1.cs类下面添加一个简单方法:

 public class Class1{public string test(){return "2";}}

2、再创建一个控制台应用程序ConsoleTest,添加引用ClassLibrary1.dll,Main方法中调用ClassLibrary1.Class1 中的test方法:

static void Main(string[] args){ClassLibrary1.Class1 c = new ClassLibrary1.Class1();Console.WriteLine(c.test());Console.ReadLine();}

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

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

下载ConfuserEx后解压,打开ConfuserEx.exe,如下图:

4、看到提示“Drag input modules here”了吧?

那就把刚才的ConsoleTest.exe托进来吧,如下图:

5、点击Settings

(1)选择Packer

(2)Modules->ConsoleTest.exe

(3) Rules 点击+号,true

如下图:

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

7,用ILspy打开...\Confused下的ConsoleTest.exe,看看源码:

方法是空的,把ConsoleTest.exe依赖的 ClassLibrary1.dll 拷贝到Confused目录下,点击运行ConsoleTest.exe,输出正确结果。

注意

8、如果只是混淆exe文件,这样就可以了,如果只是混淆一个dll文件,你将看到如下错误:

错误:No executable module,没有执行体?

是不是没有exe文件呢? 我们把ConsoleTest.exe也放进来和ClassLibrary1.dll一起混淆,看看。

9、根据前面的方式,我把ConsoleTest.exe、ClassLibrary1.dll都拖放进ConfuserEx一起混淆,

如下图:

提示成功。

10、可是我们再次打开...\Confused,发现只有混淆过的ConsoleTest.exe文件,ClassLibrary1.dll跑哪去了?

是不是不能混淆dll文件呢?

别着急,我们点击ConsoleTest.exe试试,哎呀,我去,竟然运行成功了,如下图:

这里唯一解释就是ConfuserEx把dll嵌入到exe里面了。

现在混淆过的ConsoleTest.exe是17KB,而原来的ConsoleTest.exe是5KB,ClassLibrary1.dll也是5KB。

11、我们再用ILSpy看看同时混淆ConsoleTest.exe及ClassLibrary1.dll后生成的ConsoleTest.exe,

看不到方法体,也看不到所引用的dll文件。

好了,今天就到这里。

附加:由于中午没找到单独混淆dll的方法,下午 @四毛的家 这位同学找到了方法,我这里再附加上如何单独混淆dll。

根据第8步,我们发现按照exe的方式混淆dll时报错了,原来应该按如下步骤:

将dll拖入ConfuserEx后,Settings里面不能选择Packer了,而是要点击右侧那个铅笔按钮,如下图。

点击铅笔按钮后,弹出Edit rule对话框,Preset选择一项,我这里选择Maximum,然后再点击下面 “+”按钮,选择anti ildasm(我猜是防止通过IL编译),然后导出成功。

我们在用ILSpy查看一下刚混淆的ClassLibrary1.dll,如下图,

什么都看不到。

为了测试混淆过的dll可用,我把未混淆的ConsoleTest.exe和混淆过的ClassLibrary1.dll放在一个目录下,点击运行ConsoleTest.exe,成功。

后记:在混淆dll时,有很多混淆规则,我们可以按照自己的方式混淆。其实那些规则是什么,我也不知道,有心的同学试试。

转载于:https://www.cnblogs.com/ulex/p/7371551.html

开源.net 混淆器ConfuserEx介绍 [转]相关推荐

  1. 测试开源.net 混淆器ConfuserEx

    由于公司业务需要简单的把代码加密混淆,于是了解了一下相关的工具然后打算用ConfuserEx试试. 开源地址:https://github.com/yck1509/ConfuserEx/ 下载地址:h ...

  2. 【新品发布】山海软件生产线pspl,包含了一个开源的混淆器

    山海软件生产线(个人版,简称pspl)是一个基于sea架构的的c#开发平台. 用于个体开发人员开发单机和C/S的应用软件,并且对软件开发过程提供相关的工具支持. 其后续版本为spl,用于支持虚拟团队进 ...

  3. 介绍当前流行的一些开源Flash视频播放器

    栏目导航 Java开源 OPEN文档 OPEN搜索 OPEN家园 OPEN资讯 提交开源项目 A Accordion AutoComplete Animation C Calendar Charts ...

  4. 分享:几款代码混淆器(DotFuscator, .NET Reactor, xenocode)

    在介绍工具之前,我需要说明几点: 1.如果你编写的软件不涉及商业用途的话,本着开源的思想,本人不推荐使用代码混淆器 2.使用代码混淆器存在一定的风险,在使用前最好做好相关代码备份 3.凡是需要序列化成 ...

  5. 开源项目与J2EE架构介绍

    2 开源项目与J2EE架构介绍 2.1.1开源软件简介   什么是开源软件: 开源软件的英文为Open Source Software,简称为OSS.开放源代码软件就是在开放源代码许可证下发布的软件, ...

  6. 使用VS自带的混淆器防止你的程序被反编译

    这里就介绍大家使用VS自带的混淆器dotfuscator.exe来阻止这种行为. 首先要做的找到dotfuscator.exe: D:/Microsoft Visual Studio .NET 200 ...

  7. 【翻译】安卓新播放器EXOplayer介绍

    [翻译]安卓新播放器EXOplayer介绍 http://developer.android.com/guide/topics/media/exoplayer.html 前言: Playing vid ...

  8. .NET混淆器 Dotfuscator使用教程七:加强保护之改进重命名混淆

    本篇文章将继续上一篇文章<.NET混淆器 Dotfuscator使用教程六:加强保护之添加Checks>,为大家介绍加强保护之改进重命名混淆和改进控制流混淆. 下载Dotfuscator最 ...

  9. .NET混淆器 Dotfuscator使用教程六:加强保护之添加Checks

    本篇文章将继续上一篇文章<.NET混淆器 Dotfuscator使用教程五:加强保护之自定义保护设置>,为大家介绍加强保护之添加Checks. 添加Checks Dotfuscator可以 ...

  10. vc 将已有项目打包成dll 并应用于其他项目_.NET混淆器 Dotfuscator使用教程:保护你的应用之存档报告文件...

    Dotfuscator是一款.NET混淆器和压缩器,防止你的应用程序被反编译. 本篇文章将继续上一篇文章与大家分享保护应用程序的后续三个部分:存档报告文件.加强保护和替代方法. 存档报告文件 作为构建 ...

最新文章

  1. 双绞线网线的连接方式
  2. 040_CSS3背景
  3. jquery和zepto的扩展方法extend
  4. opencv读取视频并保存为图片
  5. Java并发编程之线程定时器ScheduledThreadPoolExecutor解析
  6. Android学习笔记(十二)——Fragment向Activity传递消息
  7. Android 时间API
  8. 计算机硬件环境指啥,硬件环境指的是什么呢?
  9. https://tieba.baidu.com/p/4008858829
  10. android第三方开发包(十七)
  11. 阿里云商标查询小程序有用过的没?感觉还可以呀
  12. 腾讯收购Foxmail的意图
  13. php高性能框架phaicon,3分钟快速入门php高性能框架Phalcon
  14. QQ卡丁车:腾讯自主研发的联网对战赛车游戏
  15. 易安卓十六进制数转为十进制数_十六进制转换成十进制的具体算法?
  16. 分享!手机浏览器跳转微信一键添加微信好友或一键关注公众号的方案
  17. mysql日记本程序_JSP+Servlet+JDBC+mysql实现的个人日记本系统
  18. 成都敏之澳电商:拼多多电商裂变玩法怎么做?
  19. 网络安全系统集成课后习题答案
  20. Python Enclosing作用域、闭包、装饰器话聊(转)

热门文章

  1. 智能配电房综合监控系统的探讨
  2. Kali-linux :arping命令
  3. easyui select 默认选中指定值
  4. 为什么高斯滤波器被广泛用于图像处理?
  5. 嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面)
  6. 关于STM8S003f3p6的定时器2通道3无法输出pwm的问题
  7. 已知三点坐标,求圆心坐标 (外接圆)python实现
  8. 产品经理面试指南,常见面试题及回答思路
  9. 如何将pdf中的矢量图另存为图片
  10. 天线效应的原理及消除【转帖】