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

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

 

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

  

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

 

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

 

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

 

 

 

 

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

 

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

 

 

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

 

 

 

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

 

 

对于本范例而言,选择依赖的

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

 

 

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

 

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

 

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

 

 

 

 

6. Obfuscation 混淆代码

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

 

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

 

 

下面还有

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

 

 

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

 

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

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

 

 

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

 

 

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

 

 

 

 

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

 

转载于:https://www.cnblogs.com/ziyouyong/archive/2009/11/13/1602254.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值