Offuscamento dichiarativo mediante attributi personalizzati
.NET Framework versione 2.0 fornisce due nuovi attributi personalizzati progettati per agevolare l'offuscamento automatico degli assembly senza dover impostare i file di configurazione. In questa sezione vengono descritti i passaggi necessari per utilizzare tali attributi con Dotfuscator. È necessario aver familiarità con gli attributi personalizzati e la loro applicazione nel linguaggio di sviluppo utilizzato.
System.Reflection.ObfuscateAssemblyAttribute
Questo attributo viene utilizzato a livello di assembly per indicare a Dotfuscator la modalità di offuscamento dell'intero assembly. Se si imposta la proprietà AssemblyIsPrivate su false, Dotfuscator esegue l'assembly in modalità libreria. Se si imposta la stessa proprietà su true, Dotfuscator non esegue l'assembly in modalità libreria e rinomina tutti gli elementi possibili, inclusi tipi e membri pubblici.
System.Reflection.ObfuscationAttribute
Questo attributo, utilizzato sui tipi e sui relativi membri, indica a Dotfuscator la modalità di offuscamento dell'elemento.
Proprietà Feature
Il valore predefinito di questa proprietà di stringa è "all". Questa proprietà consente di configurare più trasformazioni di offuscamento in modo indipendente, contrassegnando un elemento con più ObfuscationAttributes, ciascuno con una diversa stringa delle funzionalità.
Dotfuscator mappa le stringhe delle funzionalità "default" e "all" a "renaming".
Di seguito viene riportato un elenco delle altre stringhe delle funzionalità accettate da Dotfuscator.
Stringa delle funzionalità | Azione |
---|---|
renaming | l'attributo configura la ridenominazione |
controlflow | l'attributo configura l'offuscamento del flusso di controllo |
stringencryption | l'attributo configura la crittografia delle stringhe |
trigger | l'attributo configura l'eliminazione contrassegnando l'elemento annotato come punto di ingresso |
conditionalinclude | l'attributo configura l'eliminazione con l'inclusione condizionale dell'elemento annotato |
Se necessario, è possibile eseguire il mapping di altre stringhe delle funzionalità a "renaming" mediante la finestra delle proprietà "Stringhe mappa funzionalità" della scheda Configurazione.
Dotfuscator ignora gli attributi con stringhe delle funzionalità non supportate.
Proprietà Exclude
Il valore predefinito di questa proprietà booleana è True. In questo caso, la proprietà indica l'esclusione dell'elemento contrassegnato dalle trasformazioni determinate dalla proprietà Feature. Il valore False indica l'inclusione dell'elemento contrassegnato.
La versione corrente di Dotfuscator supporta un valore della proprietà Exclude per ogni trasformazione indicata. Dotfuscator ignorerà le regole con valori Exclude non supportati. Questo concetto viene riepilogato nell'elenco riportato di seguito.
Stringa delle funzionalità | Valore Exclude supportato |
---|---|
renaming | True |
controlflow | True |
stringencryption | False |
trigger | False |
conditionalinclude | False |
Proprietà ApplyToMembers
Il valore predefinito di questa proprietà booleana è True. Quando l'attributo viene applicato a un assembly o a un tipo, il valore True indica che l'operazione deve essere applicata anche a tutti i membri, inclusi i tipi nidificati, dei tipi selezionati. Se il valore è false, l'operazione viene applicata solo ai tipi e non ai relativi membri o tipi nidificati.
Attivazione o disattivazione dell'offuscamento dichiarativo
Dotfuscator consente di attivare o disattivare l'offuscamento dichiarativo per tutti gli assembly di input. In caso di disattivazione, in Dotfuscator vengono ignorati gli attributi personalizzati relativi all'offuscamento. È inoltre possibile disattivare l'offuscamento dichiarativo per assembly specifici.
Rimozione degli attributi di offuscamento dichiarativo
Dotfuscator è in grado di rimuovere gli attributi di offuscamento al termine dell'elaborazione, in modo che gli assembly di output non contengano indicazioni sugli elementi offuscati. Entrambi gli attributi di offuscamento dichiarativo includono una proprietà booleana "StripAfterObfuscation" il cui valore predefinito è true.
In Dotfuscator sono disponibili anche impostazioni di configurazione che interagiscono con il valore della proprietà StripAfterObfuscation in fase di offuscamento.
Nella tabella seguente vengono riepilogate le impostazioni che influiscono sull'eliminazione dell'attributo di offuscamento dichiarativo e le relative modalità di interazione.
Dotfuscator rispetta gli attributi | Dotfuscator rimuove gli attributi | Proprietà StripAfterObfuscation dell'attributo | Risultato |
---|---|---|---|
Sì | Sì | True o False | L'attributo viene rimosso |
Sì | No | True | L'attributo viene rimosso |
Sì | No | False | L'attributo viene mantenuto |
No | Sì | True o False | L'attributo viene rimosso |
No | No | True o False | L'attributo viene mantenuto |
Utilizzo delle stringhe della mappa delle funzionalità
È possibile eseguire il mapping di valori contenuti nella proprietà Feature di un attributo di offuscamento a stringhe delle funzionalità accettate da Dotfuscator.
È possibile ad esempio annotare l'applicazione con attributi di offuscamento che fanno riferimento a una funzionalità denominata "testmode". Per impostazione predefinita, Dotfuscator non è in grado di interpretare questa stringa delle funzionalità e ignora pertanto tali attributi. Se si desidera in seguito che Dotfuscator utilizzi questi attributi per configurare le tecniche di offuscamento di ridenominazione e flusso di controllo, è possibile eseguire il mapping della stringa delle funzionalità "testmode" alle stringhe incorporate "renaming" e "controlflow" di Dotfuscator.
© 2002-2007 PreEmptive Solutions. Tutti i diritti riservati.