什么是智能混淆?.NET混淆器 Dotfuscator保护机制详解!

Dotfuscator是一个.NET的Obfuscator。它提供企业级的应用程序保护,大大降低了盗版、知识产权盗窃和篡改的风险。Dotfuscator的分层混淆、加密、水印、自动失效、防调试、防篡改、报警和防御技术,为世界各地成千上万的应用程序提供保护。

Dotfuscator提供了一种应用程序保护的多层方法。这些层中的每一层都提供了一个重要的整体保护策略。如果一层受到损害,其他层继续提供有效保护,使攻击者更难以实现其目标。并且不仅有多个层,而且每个层都具有比其他混淆产品使用的简单技术更强大的高级功能。

从本文开始我们一起了解Dotfuscator如何对应用程序进行多层保护,层层递进,大致可分为:

  • 第一层保护——Obfuscation转换:它对编译的代码进行操作,使逆向工程变得困难或不可能。
  • 第二层保护——保护程序运行时发生的检查:当程序检测到攻击者试图篡改或反向工程时,它可以使用自定义逻辑进行自我防御。
  • 其余加强保护——包括切除和水印。
  • Dotfuscator提供某些功能帮您构建、部署和调试混淆的程序集

下载Dotfuscator最新试用版


第一层保护:Obfuscation转换

智能混淆

智能混淆是一种持续的工作,用于自动识别和应用混淆规则,以用于已知的API使用模式和应用程序类型。

智能混淆规则很像内置重命名规则,但适用于简单正则表达式无法描述的情况。最简单的例子就是enum在Dotfuscator看到ToString()其中一个成员被调用时排除成员。如果用户正在呼叫ToString()enum成员,那么他们可能希望它具有原始名称。使用自定义规则排除机制无法描述此情况。

当前实现可识别使用某些常用技术和模式的应用程序和库,例如:

  • Windows Presentation Foundation(WPF)(如果为程序集启用了Transform XAML,则禁用)
  • Windows Communication Foundation(WCF)
  • Windows工作流程
  • Windows Cardspace
  • 数据绑定的Windows窗体控件
  • 用作字符串的枚举类型值
  • VB应用程序中的延迟调用
  • 自定义序列化
  • 网页服务
  • Silverlight(如果为程序集启用了Transform XAML,则禁用)

对于这些应用程序类型,Dotfuscator的重命名和删除功能可以尽最大努力识别重命名或删除元素将破坏输出应用程序的情况。然后,它会自动阻止重命名或删除而无需其他用户配置。

智能混淆规则使用静态分析来确定应该从重命名中排除哪些元素或将其用作删除入口点。发现此类项目时,该规则会发出智能混淆选项卡中显示的通知。有时,规则可以识别需要采取的操作,但无法确定要采取的具体操作,因为静态分析不会产生足够的信息。发生这种情况时,规则会发出一个警告,显示在“智能混淆”选项卡中。

▲警告示例

FrameworkElementRule flagged something in Method Namespace.ContextMenu::void OnApplyTemplate() for the following reasons: Examine possible name arguments to System.Windows.FrameworkElement::FindName and manually exclude the referenced elements.

用户应该只需按照说明操作:找到ContextMenu类并查看OnApplyTemplate()方法。查找该方法中调用的所有位置FindName(string),并确定该字符串是否表示需要手动排除的输入中的属性。

关闭智能混淆

Dotfuscator允许您关闭智能混淆。智能混淆默认情况下处于启用状态,在大多数情况下应保持打开状态。如果用户认为更积极的混淆不会损害应用程序,则可以关闭它。有几种方法可以将其关闭:

  • 将部分中的<option>设置更改<smartobfuscation>disable
  • 从Visual Studio UI中的“ 项目属性”对话框中。
  • 从配置编辑器中的“设置”选项卡。

控制智能混淆报告的详细程度

Dotfuscator允许您控制智能混淆报告的详细程度。您可以选择仅报告所有操作和警告,警告,或完全取消报告。有几种方法可以设置报告级别:

  • 在配置文件中的元素上设置verbosity属性<smartobfuscationreport>
  • 从Visual Studio UI中的“ 项目属性”对话框中。
  • 从配置编辑器中的“设置”选项卡。

保存报告

Dotfuscator允许您将智能混淆报告保存到文件中,除了显示它。您可以通过在以下任何位置指定文件路径,指示Dotfuscator将报告保存到文件中:

  • 一个文件的内元素<smartobfuscationreport>在配置文件中的元素。
  • 从Visual Studio UI中的“ 项目属性”对话框中。
  • 从配置编辑器中的“设置”选项卡。

阻止重命名旧版报告

在使用新版本覆盖之前,Dotfuscator会自动重命名具有相同名称的现有Smart Obfuscation报告。如果您不想要此行为,有几种方法可以指示Dotfuscator在覆盖之前不要重命名现有的删除报告:

  • 将配置文件中元素的overwrite属性设置<smartobfuscationreport>true
  • 从Visual Studio UI中的“ 项目属性”对话框中。
  • 从配置编辑器中的“设置”选项卡。

Dotfuscator以XML格式生成智能混淆报告,该报告列出了智能混淆过程标记的所有项目。请记住,报告的内容反映了智能混淆报告详细程度设置 - 如果详细程度设置为仅警告或无,则可以从报告中省略由智能混淆标记的项目。每个条目代表一个由智能混淆标记的项目,并描述项目的内容及其被排除的原因,以及指示标记操作是警告还是通知的属性。

 

—  持续更新中  —

转载于:https://my.oschina.net/u/4087915/blog/3076268

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值