0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

哲想软件 来源:哲想软件 2023-08-22 09:24 次阅读

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

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

考虑下面的例子。

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

35cc3c84-4080-11ee-ac96-dac502259ad0.png

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

35e6a074-4080-11ee-ac96-dac502259ad0.png

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

3613f542-4080-11ee-ac96-dac502259ad0.png

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







审核编辑:刘清

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

    关注

    1

    文章

    577

    浏览量

    20491
  • 控制流
    +关注

    关注

    0

    文章

    9

    浏览量

    8490
  • mvvm模式
    +关注

    关注

    0

    文章

    2

    浏览量

    1280

原文标题:Preemptive:如何在Dotfuscato中利用自定义规则

文章出处:【微信号:哲想软件,微信公众号:哲想软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    如何创建TestStand自定义步骤

    在之前的课程简单地介绍过TestStand自带的一些步骤类型,如测试、消息弹窗、赋值、标签等等,这些简单的步骤从TestStand的插入选版中就可以添加到序列。那么在使用如果碰到需要实现更加灵活、复杂的功能,使用自带的一些
    的头像 发表于 09-11 14:46 909次阅读
    如何创建TestStand<b class='flag-5'>自定义</b>步骤

    请问multisim怎么自定义元器件?

    为什么我在multisim自定义元器件始终出不了想要的波形效果?同一个pspice模型我同学之前都定义正确了,现在我想再来试一下结果一直失败
    发表于 09-10 06:16

    NVIDIA NeMo加速并简化自定义模型开发

    如果企业希望充分发挥出 AI 的力量,就需要根据其行业需求量身定制的自定义模型。
    的头像 发表于 07-26 11:17 699次阅读
    NVIDIA NeMo加速并简化<b class='flag-5'>自定义</b>模型开发

    何在IDF框架中使用自定义的静态库和动态库?

    基于商业需要,我们需要在 ESP-IDF v4.0-rc 这个版本的IDF开发与使用自定义库,有如下问题请协助: 1如何利用IDF框架编写自定义静态库和动态库? 2如
    发表于 06-25 07:57

    stm32cubemx如何自定义lwip平台?

    有人知道stm32cubemx,如何自定义lwip平台。(默认只
    发表于 05-22 07:50

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗
    的头像 发表于 05-16 18:18 1296次阅读
    HarmonyOS开发案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 615次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    HarmonyOS开发案例:【UIAbility和自定义组件生命周期】

    本文档主要描述了应用运行过程UIAbility和自定义组件的生命周期。对于UIAbility,描述了Create、Foreground、Background、Destroy四种生命周期。对于页面
    的头像 发表于 05-10 15:31 1191次阅读
    HarmonyOS开发案例:【UIAbility和<b class='flag-5'>自定义</b>组件生命周期】

    LabVIEW里Ring自定义控件,其常量无法保持同步修改,如何解决

    时,其常量无法跟随变换。 如图所示,自定义常量可以修改成不同的映射关系,同样都是“CSP”这个名称,可以对应2或者8。 如果通过创建输入控件的方式,则“CSP”这个名称一定对应的是自定义控件约定的8
    发表于 04-24 11:20

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 978次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 605次阅读

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现在自定义数据集上,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 2791次阅读
    基于YOLOv8实现<b class='flag-5'>自定义</b>姿态评估模型训练

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 881次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用YOLOv8
    的头像 发表于 12-20 10:51 740次阅读
    基于YOLOv8的<b class='flag-5'>自定义</b>医学图像分割