我有一个多项目 Visual Studio 2008 解决方案。我想在使用 Dotfuscator 将某些项目输出构建到安装文件之前对其进行模糊处理。所以我希望能够:
- 能够选择要混淆的内容
- 创建包含已混淆代码的安装程序包
- 验证混淆是否成功
做这个的最好方式是什么?
(我也愿意使用其他工具,Dotfuscator 不是必须的。)
我有一个多项目 Visual Studio 2008 解决方案。我想在使用 Dotfuscator 将某些项目输出构建到安装文件之前对其进行模糊处理。所以我希望能够:
做这个的最好方式是什么?
(我也愿意使用其他工具,Dotfuscator 不是必须的。)
如果您使用的是 Dotfuscator 的任何一个商业版本(Dotfuscator Suite 或 Dotfuscator MDE),这很容易实现。Dotfuscator 提供了一个 Visual Studio 项目,可以使用其他项目的输出作为其输入。Dotfuscator 项目还将其所有输出程序集公开给其他 Visual Studio 项目(包括各种 Setup 项目类型),以便它们可以直接使用经过混淆的程序集并将它们构建到安装程序中。有关选择性地将混淆程序集和依赖项包含到设置项目中的一些附加信息,请参阅此知识库文章。
您可以通过多种方式选择要混淆的程序集(以及对每个程序集应用多少混淆),包括使用 System.Reflection.ObfuscateAssemblyAttribute 或 System.Reflection.ObfuscationAttribute 装饰您的程序集或特定代码和/或使用各种Dotfuscator 用户界面中的设置,以使用一系列规则(包括正则表达式)和/或在 GUI 中选择单个项目,在各种混淆转换中包含或排除程序集和项目。
默认情况下,Dotfuscator 会向它处理的每个程序集添加一个属性 (DotfuscatorAttribute),然后您可以在构建或测试安装后使用脚本检查该属性以确保该属性存在。有关此属性的一些信息,请参阅http://www.preemptive.com/products/dotfuscator/manuals/NoDotfuscatorAttribute_Global_Option.html。