.jpg)
NET Framework 2.0 版提供兩種新的自訂屬性,讓自動模糊化組件變得更容易,也不需要對組態檔做設定。本節概略說明如何在 Dotfuscator 中使用這些屬性。本節假設您已經熟悉自訂屬性,也懂得套用自訂屬性到開發語言中。
System.Reflection.ObfuscateAssemblyAttribute
此屬性 (Attribute) 用於組件層級中,是告訴 Dotfuscator 如何模糊化整個組件,將 AssemblyIsPrivate 屬性 (Property) 設定為 false,告訴 Dotfuscator 以程式庫模式執行組件。若將該屬性設定為 true,Dotfuscator 將不會以程式庫模式執行組件,並且會盡可能地重新命名組件,包括公用金鑰與成員。
System.Reflection.ObfuscationAttribute
此屬性用於型別以及其成員,是告訴 Dotfuscator 如何模糊化項目。
功能屬性
這個字串屬性的預設值是 "all",這個屬性可以讓您以多個 ObfuscationAttribute (每一個的功能字串都不同) 標示一個項目,獨立地對多個模糊化轉換進行設定。
Dotfuscator 對應 "default" 和 "all" 功能字串到 "renaming"。
以下為 Dotfuscator 可辨識的其他功能字串列表。
| 功能字串 | 動作 |
|---|---|
| renaming | 屬性組態重新命名 |
| controlflow | 屬性組態控制流程模糊化 |
| stringencryption | 屬性組態字串加密 |
| trigger | 標示附註項目為進入點以刪節屬性組態 |
| conditionalinclude | 條件式包含附註項目以刪節屬性組態 |
如果需要,您可以使用 [設定] 索引標籤中的 [功能對應字串] (Feature Map String) 屬性工作表,以將其他功能字串對應到 "renaming"。
Dotfuscator 無法辨識具有功能字串的屬性,所以會忽略該屬性。
排除屬性
此布林值屬性的預設值為 True,值為 True 時,表示已標記的項目應排除於 Feature 屬性所隱含的轉換之外,值為 False 時,表示已標記的項目應包含在內。
Dotfuscator 目前的版本支援任何指定轉換之任一Exclude屬性的值。Dotfuscator 將會忽略排除值不支援的規則。摘要如下。
| 功能字串 | 支援的排除值 |
|---|---|
| renaming | True |
| controlflow | True |
| stringencryption | False |
| trigger | False |
| conditionalinclude | False |
ApplyToMembers 屬性
此布林值屬性的預設值為 True,此屬性套用到組件或型別後,True 值表示作業也應該要套用到所有選取型別的成員 (包括巢狀型別)。如果是 false,則作業只需套用到型別,無須套用到成員 (或是巢狀型別)。
啟用或停用宣告式模糊化
您可使用 Dotfuscator 為所有輸入組件的宣告式模糊化切換為開啟或關閉,如果未切換為啟用狀態,Dotfuscator 將會忽略與模糊化相關的自訂屬性,您也可以切換特定組件到關閉狀態。
移除宣告式模糊化屬性
程序完成後,Dotfuscator 就可以刪除模糊化屬性,這樣一來,您的輸出組件就不會透露如何進行模糊化的線索。兩種宣告式模糊化屬性 (Attribute) 都包含 "StripAfterObfuscation" 屬性 (Property) 的布林值,預設值是 true。
模糊化進行時,Dotfuscator 也具有與 StripAfterObfuscation 屬性之值關聯的組態設定。
該設定會影響宣告式模糊化屬性之移除以及關聯方式,請參考下表之摘要。
| Dotfuscator 承認屬性 (Attribute) | Dotfuscator 移除屬性 (Attribute) | 屬性 (Attribute) 的 StripAfterObfuscation 屬性 (Property) | 結果 |
|---|---|---|---|
| 是 | 是 | True 或 False | 移除屬性 (Attribute) |
| 是 | 否 | True | 移除屬性 (Attribute) |
| 是 | 否 | False | 保持屬性 (Attribute) |
| 否 | 是 | True 或 False | 移除屬性 (Attribute) |
| 否 | 否 | True 或 False | 保持屬性 (Attribute) |
使用功能對應字串
Dotfuscator 可以讓您將 Obfuscation 屬性 (Attribute) 的 Feature 屬性 (Property) 中的值對應到 Dotfuscator 可辨識的功能字串。
例如,您可以使用參考稱為 "testmode" 之功能的模糊化屬來附註應用程式。根據預設,Dotfuscator 無法辨識此功能字串,因此會忽略這個屬性。如果您要 Dotfuscator 稍候使用這些屬性來設定重新命名與控制流程模糊化,您可以將 "testmode" 這個功能字串對應到 Dotfuscator 內建的 "renaming" 與 "controlflow" 字串。
© 2002-2007 PreEmptive Solutions. All rights reserved.