Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
.jpg)
La versión 2.0 de .NET Framework proporciona dos nuevos atributos personalizados diseñados para facilitar la ofuscación automática de ensamblados sin tener que configurar archivos de configuración. En esta sección se describe cómo se pueden usar estos atributos con Dotfuscator. Se supone que está familiarizado con los atributos personalizados y cómo aplicarlos en su lenguaje de desarrollo.
System.Reflection.ObfuscateAssemblyAttribute
Este atributo se usa en el nivel de ensamblado para indicar a Dotfuscator cómo ofuscar el ensamblado en su totalidad. Al configurar la propiedad AssemblyIsPrivate en false se indica a Dotfuscator que ejecute el ensamblado en modo de biblioteca. Si se establece en true, Dotfuscator no ejecutará el ensamblado en el modo de biblioteca y le cambiará el nombre lo máximo posible, incluidos tipos y miembros públicos.
System.Reflection.ObfuscationAttribute
Este atributo se usa en tipos y sus miembros y se indica a Dotfuscator cómo debe ofuscarlos.
Propiedad Feature
Esta propiedad de cadena tiene el valor predeterminado "all". Esta propiedad se proporciona para poder configurar múltiples transformaciones de ofuscación independientemente mediante el marcado de un elemento con varios atributos ObfuscationAttribute, cada uno con una cadena de característica distinta.
Dotfuscator asigna las cadenas de característica "default" y "all" a "renaming".
A continuación se ofrece una lista de otras cadenas de característica que entiende Dotfuscator.
| Cadena de característica | Acción |
|---|---|
| renaming | atributo que configura el cambio de nombre |
| controlflow | atributo que configura la ofuscación del flujo de control |
| stringencryption | atributo que configura el cifrado de cadena |
| trigger | atributo que configura la limpieza mediante el marcado del elemento anotado como un punto de entrada |
| conditionalinclude | atributo que configura la limpieza mediante la inclusión condicional del elemento anotado |
Si es necesario, puede asignar otras cadenas de característica a "renaming" mediante la hoja de propiedades "Cadenas de asignaciones de función" de la ficha Configuración.
Dotfuscator omite atributos con cadenas de característica que no comprende.
Propiedad Exclude
Esta propiedad booleana tiene el valor predeterminado True. Si es True, indica que el elemento marcado se debe excluir de las transformaciones implícitas de la propiedad Feature. Si es False, indica que se debe incluir el elemento marcado.
La versión actual de Dotfuscator admite un valor de la propiedad Exclude para cualquier transformación. Dotfuscator omitirá las reglas que tengan valores Exclude no admitidos. En la lista siguiente se ofrece un resumen.
| Cadena de característica | Valor de Exclude admitido |
|---|---|
| renaming | True |
| controlflow | True |
| stringencryption | False |
| trigger | False |
| conditionalinclude | False |
Propiedad Exclude ApplyToMembers
Esta propiedad booleana tiene el valor predeterminado True. Cuando el atributo se aplica a un ensamblado o tipo, un valor True indica que la operación también se debe aplicar a todos los miembros (incluidos los tipos anidados) de los tipos seleccionados. Si es False, la operación se aplica únicamente a los tipos y no a sus miembros (o tipos anidados).
Habilitar o deshabilitar la ofuscación declarativa
Dotfuscator permite activar o desactivar la ofuscación declarativa para todos los ensamblados de entrada. Si no está habilitada, Dotfuscator omitirá los atributos personalizados relacionados con la ofuscación. También se puede desactivar para ensamblados específicos.
Quitar los atributos de ofuscación declarativa
Dotfuscator puede quitar los atributos de ofuscación cuando se completa el procesamiento, de modo que los ensamblados de salida no contendrán indicios acerca de cómo se han ofuscado. Ambos atributos de ofuscación declarativa incluyen la propiedad booleana "StripAfterObfuscation" cuyo valor predeterminado es True.
Dotfuscator también dispone de opciones de configuración que interactúan con el valor de la propiedad StripAfterObfuscation en el momento de la ofuscación.
La configuración que afecta a la retirada de atributos de ofuscación declarativa y cómo interactúa se resume en la tabla siguiente.
| Dotfuscator acepta atributos | Dotfuscator quita atributos | Propiedad StripAfterObfuscation del atributo | Resultado |
|---|---|---|---|
| Sí | Sí | True o False | Quitar atributo |
| Sí | No | True | Quitar atributo |
| Sí | No | False | Mantener atributo |
| No | Sí | True o False | Quitar atributo |
| No | No | True o False | Mantener atributo |
Usar cadenas de asignación de característica
Dotfuscator permite asignar valores incluidos en la propiedad Feature de un atributo de ofuscación a cadenas de característica que comprenda Dotfuscator.
Por ejemplo, puede anotar la aplicación con atributos de ofuscación que hagan referencia a una característica denominada "testmode". De forma predeterminada, Dotfuscator no entenderá esta cadena de característica; por lo tanto, omitirá los atributos. Si posteriormente desea que Dotfuscator use estos atributos para configurar el cambio de nombre y la ofuscación del flujo de control, puede asignar la cadena de característica "testmode" a las cadenas "renaming" y "controlflow" integradas de Dotfuscator.
© 2002-2007 PreEmptive Solutions. Reservados todos los derechos.