使用“十字”计算器模糊处理“银光”应用程序
关于 Dotfuscator 的更多信息
Dotfuscator 是一种模糊处理工具,用于在拆解使用 .NET 框架创建的应用程序时使源代码难以读取。 Dotfuscator 包括 Visual 工作室附带的免费和付费零售版本。
免费版本必须经过有限功能限制或 Visual 工作室启动,但只要安装了目标 Visual Studio,任何人都可以使用它。 在付费版本中,有许多强大的模糊处理功能,在免费版本中不存在,但一般人可能很难以难以触及的价格提供。
Dotfuscator 的功能、价格和版本因版本而异,因此请访问以下主页了解更多信息。
分析的代码
如前所述,在 .NET Framework 中创建的应用程序是拆解的,很容易读取原始源代码,但实际情况是,当您拆解程序集文件时,命名空间、类名称和方法名称等原始源代码几乎可以重现。
模糊处理程序
首先,像往常一样创建银光应用程序以进行发布生成。 在这里,我们创建的应用程序只有两个按钮。
在项目所在的文件夹的 Bin_发布文件夹中,单击“。 xap 文件是 Silverlight 应用程序使用的程序和文件的集合。
事实上,此文件被压缩为 ZIP 文件,并汇总在一起,因此扩展名为“。 可以更改为“zip”。
更改为 ZIP 文件。
打开文件时,它包含清单文件和 DLL。 此 DLL 是程序的编译版本,并作为应用程序运行。
顺便说一下,DLL 文件在生成时也会放置在“发布”文件夹中,因此这次我们将模糊处理此文件。
从“视觉工作室”菜单中选择“工具”,然后选择“高级教师和分析”。
首次启动时,将显示“许可协议”对话框,因此请仔细阅读内容,选中“是,我接受许可协议”,然后单击“确定”按钮。
启动“PreEmptive Dotfuscator And Analytics CE”。
从左侧树中选择“输入”,然后单击“添加输入”按钮。
选择生成生成的 DLL 文件。
选择添加的 DLL 文件,然后取消选中“库模式”和“转换 XAML”。
如果选中“库模式”,则不会混淆公共定义的类或方法。
如果选中“转换 XAML”,则会混淆 XAML 中定义的类,但根据创建方法,它会导致启动错误,因此,如果出现错误,请取消选中它。
基本上,所有类、方法、属性和变量名称都模糊不报,但如果您不想混淆特定命名空间或类(如序列化),请从左侧树中选择“重命名”,然后选择“排除”选项卡以检查目标命名空间或类。
确保内置规则检查“银光和 WPF 用户控制”字段。 选中此项可使用户控制中的字段未混淆并成功执行。 如果模糊处理成功,则可以取消选中它。
完成后,单击工具栏上的“生成项目”按钮。
如果项目发生更改,则会显示“保存项目确认”对话框,单击“是”以保存它。
项目是“。 xml“文件。 模糊处理的文件存储在同一位置。
生成开始,请等待它完成。 请注意,程序构建时间越长,生成时间就越长。 生成完成后,将生成图形。
消息字段显示生成进度和简单结果,例如模糊处理的程度。
通过从左侧树中选择“结果”,可以了解有关类和方法名称如何更改的详细信息。
类和方法名称下有一个 Dotfuscator 图标和名称,如“a”和“b”,这是模糊的名称。 通过将类或方法名称更改为无意义的名称,可以使源代码的内容难以阅读,即使它们被拆解。
模糊处理的文件在保存项目时保存的 .xml 文件的文件夹中创建名为“Dotfuscated”的文件夹,并在其中创建。 除了模糊处理的文件外,还创建了“Map.xml”文件,但它不会使用它,因为它是模糊处理的结果文件。
通过拆解模糊的文件,您可以看到某些类和方法名称已更改为“a”或“b”。
这一次,我几乎按原样对创建的默认项目进行模糊处理,因此,我认为有些图像没有那么模糊,但随着项目的增长,类的数量也会增加,因此模糊处理的效果会变得清晰起来。
顺便说一下,. 请注意,重命名不会涉及重命名,因为 Windows 等已安装程序集,例如 NET 框架库中定义的类名称。
由于银光不使用 DLL,因此将其打包为 XAP 文件。 如前所述,XAP 文件只是更改了 ZIP 文件扩展名,因此我们将 XAP 文件中包含的文件和模糊 DLL 收集在一起以创建 ZIP 文件。
您可以使用操作系统的标准功能创建 ZIP 文件。
将创建 ZIP 文件。
扩展“。 xap,如果文件名不同,则将其更改为原始包文件名。
将 XAP 文件放在分发位置。
实际检查工作原理,看看它是否正常工作。
如果它不启动,请减少模糊代码,直到它正常工作。 请注意,在银光中,您经常被 XAML 相关卡住。
我没有执行这些步骤,但如果要对程序进行签名,请在延迟签名状态下生成,在模糊处理程序集后重新签名。 在签名状态下进行模糊处理后,无法启动,因为生成时签名代码与模糊签名代码不匹配。
这一次,我们提出了免费版本的过程,但付费版本允许您执行更复杂的模糊处理,并防止拆解本身。 但是,由于混淆也可能发生各种负面影响,因此在进行模糊处理时,必须考虑从设计开始就正常工作。