ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

.NET混淆器Dotfuscator怎样利用切除和水印保护应用程序?

2019-09-05 16:04:49  阅读:279  来源: 互联网

标签:触发器 删除 Dotfuscator 应用程序 保护 水印 NET 方法


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

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

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

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

 


第三层保护:额外的保护

切除

较小的应用程序下载速度更快,安装更快,加载更快,运行速度更快。Dotfuscator的删除功能(有时称为“修剪”)静态分析您的代码以查找未使用的类型,方法和字段,并将其删除。Dotfuscator还会在处理MSIL文件时从MSIL文件中删除非必要元数据,从而缩小应用程序并减少攻击者可用的数据。

注意:同样也可以通过将Emit Debugging Symbols设置为Never来让Dotfuscator删除调试信息。

静态分析通过遍历代码开始工作,从一组称为触发器或入口点的方法开始。通常,您希望外部应用程序调用的任何方法都必须定义为触发器。例如,在简单的独立应用程序中,该Main方法将被定义为触发器。程序集可以为其定义多个触发器。

注意:打开装配的库模式会导致Dotfuscator自动将所有可见类型和成员视为入口点。

当Dotfuscator遍历每个触发器方法的代码时,它会记录正在使用的字段,方法和类型。然后它以类似的方式分析所有被调用的方法。该过程继续进行,直到分析了所有被调用的方法。完成后,Dotfuscator能够确定应用程序运行所需的最小类型及其成员。输出程序集中仅包含这些类型。

Dotfuscator以XML格式生成删除报告,其中列出了所有输入程序集以及每个程序集的修剪方式。每个程序集都有一个类型及其成员列表(方法,字段,属性等)以及指示项目是否已删除的属性。该报告还描述了如何修剪附加到每个程序集的托管资源。

存在两种类型的夹杂物,两者都可以通过特定夹杂物和自定义规则来控制。

  • 包含触发器:如果您选择一个方法作为包含触发器,Dotfuscator将确保保持该方法,以及调用图Dotfuscator中看到的该方法的任何后代(再次跳过像反射这样的东西)。如果包含触发设置在方法A(),那么这两个A()和B()将被保留。
  • 条件包含:保留任何设置为条件包含的方法,但不会遍历其调用树以保留其他方法。如果在方法上设置了条件包含A(),A()则将保留,但B()将被删除(只要它也不被Dotfuscator知道的任何其他方法调用)。

去除种类有两种选择:

  1. 删除未使用的元数据和代码:当您希望Dotfuscator主动搜索并删除未使用的类型和方法时使用。
  2. 仅删除文字(const定义):这用于增强字符串加密的功能,以便删除未加密的字符串。如果启用了字符串加密,则应在选中此选项的情况下打开删除。

水印

通过将版权信息或唯一标识号等数据嵌入到.NET应用程序中,水印有助于将未经授权的软件副本追溯到源,而不会影响其运行时行为。Dotfuscator的水印算法不会增加应用程序的大小,也不会引入可能破坏应用程序的额外元数据。

标签:触发器,删除,Dotfuscator,应用程序,保护,水印,NET,方法
来源: https://blog.csdn.net/mnrssj/article/details/100559651

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有