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