經(jīng)過多年的發(fā)展,先發(fā)制人已經(jīng)可以處理所有不同類型的應(yīng)用程序和場(chǎng)景。合理的默認(rèn)設(shè)置旨在使任何項(xiàng)目啟動(dòng)和運(yùn)行,并且從那里我們可以完全控制保護(hù)設(shè)置。自定義規(guī)則是創(chuàng)建簡(jiǎn)單、健壯、靈活配置的一種方法——即使是非常復(fù)雜的應(yīng)用程序也是如此。
在之前的“支持角”文章中,我們了解了在混淆后需要Rename排除才能正常運(yùn)行的編碼技術(shù)。有時(shí),只排除一個(gè)類、方法、字段或?qū)傩跃妥銐蛄恕5菍?duì)于更大、更復(fù)雜的應(yīng)用程序,情況通常不是這樣。自定義規(guī)則可以幫助將這些排除因素組織到模式中,以實(shí)現(xiàn)更靈活、更健壯的配置。可以創(chuàng)建規(guī)則來排除父類的所有子類或?qū)崿F(xiàn)特定接口的子類。可以為使用自定義屬性裝飾的類型或成員或具有特定訪問修飾符的類型或成員創(chuàng)建規(guī)則。正則表達(dá)式還可以用于根據(jù)命名約定制定自定義規(guī)則。
考慮下面的例子。
在“保護(hù)使用MVVM模式的.net應(yīng)用程序”中,我們了解到MVVM使用反射來加載模型類的屬性:
因此,我們必須從Rename混淆中排除這些屬性,以避免運(yùn)行時(shí)錯(cuò)誤:
我可以將其轉(zhuǎn)換為自定義規(guī)則,而不是為每個(gè)屬性檢查單個(gè)復(fù)選框。每個(gè)帶有OnPropertyChanged方法的模型類都必須實(shí)現(xiàn)INotifyPropertyChanged。基于此,我將編寫一條規(guī)則來排除實(shí)現(xiàn)INotifyPropertChanged的任何類型(.*)的屬性(.*):
通過此修改,我們可以更改或擴(kuò)展MVVM模式的使用,而無需更新混淆規(guī)則。我還將應(yīng)用其他混淆轉(zhuǎn)換字符串加密、控制流、鏈接和篡改防御來保護(hù)這部分代碼。
審核編輯:劉清
-
字符串
+關(guān)注
關(guān)注
1文章
590瀏覽量
22242 -
控制流
+關(guān)注
關(guān)注
0文章
9瀏覽量
8645 -
mvvm模式
+關(guān)注
關(guān)注
0文章
2瀏覽量
1323
原文標(biāo)題:Preemptive:如何在Dotfuscato中利用自定義規(guī)則
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
KiCad 中的自定義規(guī)則(KiCon 演講)

HarmonyOS應(yīng)用自定義鍵盤解決方案
MIMXRT1176如何在MBDT中正確實(shí)現(xiàn)自定義LUT?
如何添加自定義單板
如何快速創(chuàng)建用戶自定義Board和App工程

KiCad 9 探秘(六):如何用"器件類"玩轉(zhuǎn)多通道設(shè)計(jì)與自定義DRC規(guī)則

Altium Designer 15.0自定義元件設(shè)計(jì)

think-cell:自定義think-cell(四)

think-cell;自定義think-cell(一)

創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL)

如何創(chuàng)建TestStand自定義步驟

評(píng)論