經(jīng)過多年的發(fā)展,先發(fā)制人已經(jīng)可以處理所有不同類型的應(yīng)用程序和場(chǎng)景。合理的默認(rèn)設(shè)置旨在使任何項(xiàng)目啟動(dòng)和運(yùn)行,并且從那里我們可以完全控制保護(hù)設(shè)置。自定義規(guī)則是創(chuàng)建簡單、健壯、靈活配置的一種方法——即使是非常復(fù)雜的應(yīng)用程序也是如此。
在之前的“支持角”文章中,我們了解了在混淆后需要Rename排除才能正常運(yùn)行的編碼技術(shù)。有時(shí),只排除一個(gè)類、方法、字段或?qū)傩跃妥銐蛄?。但是?duì)于更大、更復(fù)雜的應(yīng)用程序,情況通常不是這樣。自定義規(guī)則可以幫助將這些排除因素組織到模式中,以實(shí)現(xiàn)更靈活、更健壯的配置。可以創(chuàng)建規(guī)則來排除父類的所有子類或?qū)崿F(xiàn)特定接口的子類??梢詾槭褂米远x屬性裝飾的類型或成員或具有特定訪問修飾符的類型或成員創(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文章
575瀏覽量
20470 -
控制流
+關(guān)注
關(guān)注
0文章
9瀏覽量
8483 -
mvvm模式
+關(guān)注
關(guān)注
0文章
2瀏覽量
1278
原文標(biāo)題:Preemptive:如何在Dotfuscato中利用自定義規(guī)則
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論