Valori supportati
La cifratura di valori e array può essere abilitata in modo indipendente per ogni tipo di dati, così puoi proteggere solo ciò che conta e lasciare intatto il resto. Vedi Configurazione per sapere come selezionarli.
Cifrati
| Tipo | Che cosa viene protetto |
|---|---|
int32 | Costanti intere a 32 bit: tutte le forme di ldc.i4, compresi i valori piccoli, -1 e int.MinValue/int.MaxValue. Poiché le costanti C# byte, sbyte, short, ushort, char, bool ed enum vengono compilate come caricamenti int32, anche queste sono protette da questa opzione. |
int64 | Costanti intere a 64 bit (long/ulong). |
single | Costanti a virgola mobile a 32 bit (float). |
double | Costanti a virgola mobile a 64 bit (double) e valori letterali decimal (i cui componenti sono memorizzati come costanti intere). |
array | Array inline di elementi primitivi inizializzati da un blob di dati: array di int, byte, sbyte, short, long, double, float, char, bool e di enumerazioni, come int[] a = { 1, 2, 3 };. |
Lasciati invariati
Perché il programma offuscato si comporti esattamente come l’originale, alcuni dati inline deliberatamente non vengono trasformati e sono emessi così come sono:
- Array non inizializzati da un unico blob di dati primitivi: array multidimensionali (
int[,]), array irregolari (int[][]) e array di struct o di altri tipi riferimento. Il compilatore li costruisce elemento per elemento anziché da un blob cifrabile, quindi i singoli elementi restano comunque soggetti alla cifratura dei valori numerici, dove applicabile. - Costanti stringa: sono coperte dalla funzionalità dedicata di cifratura delle stringhe, non dalla cifratura dei valori.
Abilitare tutti i tipi dà la protezione più ampia; usa un sottoinsieme quando devi nascondere solo determinati tipi di dati o vuoi ridurre al minimo l’overhead in fase di esecuzione descritto in Prestazioni.
Last updated on