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