经过多年的发展,先发制人已经可以处理所有不同类型的应用程序和场景。合理的默认设置旨在使任何项目启动和运行,并且从那里我们可以完全控制保护设置。自定义规则是创建简单、健壮、灵活配置的一种方法——即使是非常复杂的应用程序也是如此。
在之前的“支持角”文章中,我们了解了在混淆后需要Rename排除才能正常运行的编码技术。有时,只排除一个类、方法、字段或属性就足够了。但是对于更大、更复杂的应用程序,情况通常不是这样。自定义规则可以帮助将这些排除因素组织到模式中,以实现更灵活、更健壮的配置。可以创建规则来排除父类的所有子类或实现特定接口的子类。可以为使用自定义属性装饰的类型或成员或具有特定访问修饰符的类型或成员创建规则。正则表达式还可以用于根据命名约定制定自定义规则。
考虑下面的例子。
在“保护使用MVVM模式的.net应用程序”中,我们了解到MVVM使用反射来加载模型类的属性:
因此,我们必须从Rename混淆中排除这些属性,以避免运行时错误:
我可以将其转换为自定义规则,而不是为每个属性检查单个复选框。每个带有OnPropertyChanged方法的模型类都必须实现INotifyPropertyChanged。基于此,我将编写一条规则来排除实现INotifyPropertChanged的任何类型(.*)的属性(.*):
通过此修改,我们可以更改或扩展MVVM模式的使用,而无需更新混淆规则。我还将应用其他混淆转换字符串加密、控制流、链接和篡改防御来保护这部分代码。
审核编辑:刘清
-
字符串
+关注
关注
1文章
577浏览量
20491 -
控制流
+关注
关注
0文章
9浏览量
8490 -
mvvm模式
+关注
关注
0文章
2浏览量
1280
原文标题:Preemptive:如何在Dotfuscato中利用自定义规则
文章出处:【微信号:哲想软件,微信公众号:哲想软件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论