SmartAssembly混淆你的程序集代码使用向导(转)

  • A+
所属分类:神兵利刃

{SmartAssembly} – 混淆你的程序集代码使用向导(转)

转自:http://www.cnblogs.com/rickie/archive/2009/11/13/1602239.html

 

SmartAssembly 提供了一种用于优化和混淆你的 .NET 程序集,保护你的作品和软件,减小分发包的大小,提高程序性能。 Visual Studio 2003/2005/2008 都集成了一个 Dotfuscator 社区版的小工具,功能很简单,使用也比较方便,具体操作可参考如下的文章: Visual Studio 2008  Dotfuscator 的使用

 

这里,演示 SmartAssembly 混淆工具的使用,该工具功能比较强( http://www.smartassembly.com ),已经被 RedGate收购了,感兴趣的朋友可以去下载。下面介绍具体的操作过程。

 

1. 启动 SmartAssembly 应用程序,进入主界面,点击 New Project 按钮,创建一个新的项目。

SmartAssembly混淆你的程序集代码使用向导(转)

 

 

 

 

2. 选择需要改进和保护的主程序集,可以为 Windows Forms 应用程序、 WPF应用程序、 Console 控制台程序、 DLL程序集、 ASP.NET Web 应用程序等等。

 

这里,我具体演示如何对一个 ASP.NET Web 应用进行保护。点击 Browse Assembly 按钮,选择 Web 应用程序编译完成的程序集。

 

SmartAssembly混淆你的程序集代码使用向导(转)

 

 

3. 在选择好主程序集后,然后回到 SmartAssembly程序界面,如下图所示。设置经过 SmartAssembly处理之后的程序集存放的位置。通过点击 Set Destination 按钮,进行设置。

 

 

SmartAssembly混淆你的程序集代码使用向导(转)

 

 

4. 下面逐一设置 SmartAssembly的程序参数。第一个是 Dependencies Merging,设置主程序集依赖的其他相关程序集。

 

 

SmartAssembly混淆你的程序集代码使用向导(转)

对于本范例而言,选择依赖的BIZ / DAC / Entity / Common 四个依赖程序集。比较神奇的是,这些依赖的程序集会合并到主程序集中,这样在发布的时候,只需要发布主程序即可,依赖程序集都不需要一起发布了。

 

 

另外,建议不要选择第三方的程序集,如下图所示,我们不需要选择 Enterprise Library 相关的程序集。这样,在发布应用程序时,则需要保护第三方的程序集。

 

SmartAssembly混淆你的程序集代码使用向导(转)

 

5. Pruning 精简代码,这一步将从程序集中删除一些没有用的代码和元数据。 SmartAssembly将检查程序集中的代码,自动判断哪些代码是有用的,哪些代码是从不会执行到的。同时,也将移除没有用的元数据。并可以分别选择对主程序集和依赖的程序集进行精简代码操作。

 

这里,我没有选择任何程序集。有兴趣的朋友,可以试试。

 

 

 

SmartAssembly混淆你的程序集代码使用向导(转)

 

 

6. Obfuscation 混淆代码

混淆代码是保护你的程序集最重要的方法。它将类和方法的名称更改为不可读的字符,但不会改变代码的功能,达到保护代码的目的。同时,也可以减少元数据,减小程序集的大小。

 

这里,我选择主程序集和所有依赖的程序集进行混淆,如下图所示。

 

 

SmartAssembly混淆你的程序集代码使用向导(转)

下面还有Types/Methods 名称以及 Fields名称的混淆设置,这里保持默认值。

 

 

后面还有很多其他的选项,这里就逐一解释了,有兴趣的朋友可以自己看看。上述的这些设置,已经足以对发布的应用程序代码进行保护了。

 

7. Build 输出混淆后的程序集

 点击 Build 按钮,就输出混淆后的程序集了,并且所有依赖的程序集都合并在一起了,这样在发布的时候,只需要发布合并后的一个程序集和第三方的程序集了。另外,你还可以看看混淆 /合并后程序集的大小肯定有变小。

 

 

 

SmartAssembly混淆你的程序集代码使用向导(转)

CSDN 上有 SmartAssembly 最新版的破解版本,可以下载下来试用一下,或者直接到 SmartAssembly官方网站下载一个评估版本试试。

 

 

最后,在 Reflector 中看看反编译的效果。呵呵,这下反编译代码就头大了。

 

 

 

SmartAssembly混淆你的程序集代码使用向导(转)

 

 

 SmartAssembly设置中,有个 Other Protections 的选项,你可以选择在添加一些错误的 metadata stream,如下图所示,这样在使用 Reflector 反编译工具根本就无法打开该程序集。

 

SmartAssembly混淆你的程序集代码使用向导(转)

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: