Condividi tramite


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
True o False L'attributo viene rimosso
No True L'attributo viene rimosso
No False L'attributo viene mantenuto
No 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.