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