如何在Dotfuscato中利用自定义规则呢?

描述

经过多年的发展,先发制人已经可以处理所有不同类型的应用程序和场景。合理的默认设置旨在使任何项目启动和运行,并且从那里我们可以完全控制保护设置。自定义规则是创建简单、健壮、灵活配置的一种方法——即使是非常复杂的应用程序也是如此。

在之前的“支持角”文章中,我们了解了在混淆后需要Rename排除才能正常运行的编码技术。有时,只排除一个类、方法、字段或属性就足够了。但是对于更大、更复杂的应用程序,情况通常不是这样。自定义规则可以帮助将这些排除因素组织到模式中,以实现更灵活、更健壮的配置。可以创建规则来排除父类的所有子类或实现特定接口的子类。可以为使用自定义属性装饰的类型或成员或具有特定访问修饰符的类型或成员创建规则。正则表达式还可以用于根据命名约定制定自定义规则。

考虑下面的例子。

在“保护使用MVVM模式的.net应用程序”中,我们了解到MVVM使用反射来加载模型类的属性:

mvvm模式

因此,我们必须从Rename混淆中排除这些属性,以避免运行时错误:

mvvm模式

我可以将其转换为自定义规则,而不是为每个属性检查单个复选框。每个带有OnPropertyChanged方法的模型类都必须实现INotifyPropertyChanged。基于此,我将编写一条规则来排除实现INotifyPropertChanged的任何类型(.*)的属性(.*):

mvvm模式

通过此修改,我们可以更改或扩展MVVM模式的使用,而无需更新混淆规则。我还将应用其他混淆转换字符串加密、控制流、链接和篡改防御来保护这部分代码。







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分