Valores admitidos
El cifrado de valores y matrices puede activarse de forma independiente para cada tipo de datos, de modo que puede proteger solo lo que importa y dejar el resto intacto. Consulte Configuración para saber cómo seleccionarlos.
Cifrados
| Tipo | Qué se protege |
|---|---|
int32 | Constantes enteras de 32 bits: todas las formas de ldc.i4, incluidos los valores pequeños, -1 e int.MinValue/int.MaxValue. Como las constantes byte, sbyte, short, ushort, char, bool y enum de C# se compilan como cargas int32, esta opción las protege también. |
int64 | Constantes enteras de 64 bits (long/ulong). |
single | Constantes de punto flotante de 32 bits (float). |
double | Constantes de punto flotante de 64 bits (double) y literales decimal (cuyos componentes se almacenan como constantes enteras). |
array | Matrices en línea de elementos primitivos inicializadas a partir de un blob de datos: matrices de int, byte, sbyte, short, long, double, float, char, bool y de enumeración, como int[] a = { 1, 2, 3 };. |
Sin cambios
Para que el programa ofuscado se comporte exactamente igual que el original, algunos datos en línea se dejan deliberadamente sin transformar y se emiten tal cual:
- Matrices que no se inicializan a partir de un único blob de datos primitivos: matrices multidimensionales (
int[,]), matrices escalonadas (int[][]) y matrices de estructuras o de otros tipos de referencia. El compilador las construye elemento a elemento y no a partir de un blob que pueda cifrarse, de modo que sus elementos individuales siguen sujetos al cifrado de valores numéricos cuando corresponde. - Constantes de cadena: de ellas se ocupa la función específica de Cifrado de cadenas, no el cifrado de valores.
Activar todos los tipos ofrece la protección más amplia; use un subconjunto cuando solo necesite ocultar clases concretas de datos o quiera reducir al mínimo el coste adicional en tiempo de ejecución descrito en Rendimiento.
Last updated on