Tom*_*m W 7 security data-binding reflection obfuscation
我的雇主在我们所有的.Net生产软件上使用Dotfuscator.因此,我们绝对禁止使用任何内置的数据绑定或任何反映属性/函数名称的东西 - 因为dotfuscator会更改它们,因此任何立即绑定并且不可逆转地中断.
我一直在脑子里推翻这个逻辑,它开始受到伤害.还有必须要避免这种僵局的一种方式,它太广泛而根本的问题不具有已逃脱了我们一个明显的解决方案.
那么,如何用混淆反思?有什么诀窍?据推测,必须有足够智能的商业混淆器来解决问题.我们的版本有哪些选择?
我们对 Dotfuscator 进行了许多改进,这应该有助于缓解与数据绑定相关的问题。2008 年 3 月的 4.3.100 版本中添加了智能混淆功能,用于静态分析程序集并自动从重命名/删除中排除已知会导致运行时错误的项目。我们不断扩展和增强此功能,今天的 Dotfuscator 围绕标准数据绑定场景工作,通常不需要或最少的额外配置。
即使智能混淆不能捕获所有场景,也可以非常轻松地定义自定义规则,通过使用自定义排除规则(包括通过正则表达式模式匹配类型)来排除某些类型或继承层次结构的属性。您还可以使用System.Reflection.ObfuscationAttribute属性来装饰项目,以确保在通过 Dotfuscator 运行时将它们排除在重命名或删除之外。
如果您从 XAML 标记绑定到代码隐藏中的类型,则最近几个版本支持重命名 XAML/BAML 以匹配隐藏的代码。这改进了整体强化,并且还消除了标记中的符号与代码定义不匹配时出现的一系列问题。
我建议使用与您想要在应用程序中使用的数据绑定类似的数据绑定来开发一些简单的概念验证应用程序,并通过 Dotfuscator 运行这些应用程序以查看其处理它们的效果。如果您发现智能混淆不会自动排除数据绑定目标的任何情况,请将其发送至 support@preemptive.com 。我们一直在寻找明确的场景来改进产品。