Ajustes del destino
Cada destino tiene sus propios ajustes de Babel Obfuscator. El panel de propiedades los edita de destino en destino; los comandos de configuración y los niveles de protección cambian muchos de ellos en un solo paso.
El panel de propiedades
Seleccione un destino y haga clic en el botón Propiedades, en la parte superior derecha de la barra de herramientas, pulse Enter sobre un nodo seleccionado o elija Propiedades en el menú de un nodo o de una fila. El panel se acopla a la derecha y lleva el título Propiedades del ensamblado con el nombre del destino. Tiene dos pestañas: Configuración y Reglas XML.
La pestaña Configuración enumera todas las opciones de Babel Obfuscator del destino seleccionado, agrupadas en Archivos map, Renombrado, Flujo de control, Cifrado de código, Optimización, Firma y protección, Archivos y dependencias, Output & diagnostics y Advanced. Cada grupo indica cuántas opciones contiene y se puede contraer. Escriba en Buscar un ajuste para filtrar la lista.



El panel de propiedades del destino seleccionado
Los ajustes usan los nombres de las opciones de la tarea de MSBuild, por lo que la referencia de la tarea Babel y las páginas de cada protección describen lo que hacen. Cada opción tiene un control adecuado a su tipo: casillas para los conmutadores, listas para los algoritmos, selectores de archivos y de carpetas para las rutas, y editores para los filtros y los mapas de propiedades. Una lista con el valor Predeterminado deja la opción fuera del proyecto, de modo que el motor usa su propio valor predeterminado. Los cambios solo se aplican al destino seleccionado; para cambiar varios destinos a la vez, use la cuadrícula.



Ajustes de cifrado de código: cifrado de cadenas, MSIL y de valores
Las opciones compuestas, como Control Flow Obfuscation, muestran un control por cada propiedad. La imagen siguiente muestra los conmutadores del flujo de control. El último, chain, activa el algoritmo chained state de la edición Ultimate.



Propiedades de Control Flow Obfuscation
Las contraseñas, como la de una clave de firma o la de un archivo map, se conservan solo durante la sesión en curso. Nunca se escriben en el archivo de proyecto, así que tendrá que introducirlas de nuevo después de reiniciar. Cuando el motor necesita una contraseña durante una ejecución, Babel Desktop la solicita.
Archivos map
El grupo Archivos map, en la parte superior de la pestaña Configuración, reúne los ajustes de los archivos map del destino seleccionado:
- Escribe su map de renombrado activa o desactiva el archivo map del destino. La línea que aparece debajo indica dónde se escribe el archivo map: Junto al ensamblado ofuscado de forma predeterminada, o el nombre de archivo elegido con Cambiar….
- Maps de otros destinos enumera los vínculos de map que terminan en este destino. Haga clic en el nombre de un destino para seleccionarlo, o en su × para quitar el vínculo.
- Otros archivos de map enumera los archivos map que este destino lee y que no escribe ningún destino del proyecto, como el de una biblioteca ofuscada en una compilación anterior. Añadir archivo de map… añade uno y Quitar lo quita.



El grupo Archivos map de un destino que lee el archivo map de una biblioteca
Reglas XML
La pestaña Reglas XML edita las reglas de ofuscación XML en línea del destino seleccionado. El editor resalta el XML, y Validar lo comprueba con el esquema de reglas de Babel e indica la línea y la columna de cada error. Abrir XML carga un archivo de reglas en el editor, Guardar archivo XML escribe el contenido del editor en un archivo y Aplicar al ensamblado guarda las reglas en el destino. Las reglas en línea se guardan en el archivo de proyecto.



Reglas XML en línea de un destino
Mientras haya reglas sin aplicar, el panel permanece en el mismo destino: aplíquelas, o descártelas con Configuración: descartar cambios sin aplicar y recargar en la paleta de comandos, antes de seleccionar otro destino o ejecutar el proyecto. Los archivos de reglas que se guardan fuera del proyecto aparecen en la pestaña Reglas de los detalles de la cuadrícula.
Complementos del motor
Los complementos de Babel Obfuscator se definen para cada destino con Complementos del motor: configurar rutas de DLL, en la paleta de comandos, o en la pestaña Complementos de los detalles de la cuadrícula. Complementos del motor: descubrir nombres de argumentos lee los nombres de los argumentos que declara un complemento, para que pueda rellenarlos. Los complementos son código .NET que se ejecuta dentro del motor, así que use únicamente complementos de su confianza.
Comandos de configuración
Los dos comandos de configuración preparan un proyecto completo en un solo paso, y Ofuscación: establecer nivel… aplica un nivel de protección al destino seleccionado. Añada primero los ensamblados y ejecute después el comando que corresponda a su aplicación. Los tres están en la paleta de comandos; los dos comandos de configuración están también en la barra de herramientas de la cuadrícula, como Configurar ofuscación pública y Configurar combinación.



Los comandos de configuración en la paleta de comandos
| Comando | Efecto |
|---|---|
| Ofuscación: configurar combinación en el ensamblado principal | Combina todos los demás destinos con el ensamblado principal, con lo que el proyecto produce un único archivo de salida. El ensamblado principal es el único .exe del proyecto, o el primer destino cuando no hay ninguno o hay más de uno. Un ensamblado que el motor no puede combinar se deja como está. |
| Ofuscación: configurar ofuscación pública (todos los ensamblados) | Prepara un conjunto de ensamblados que se distribuyen juntos para que se renombren sus símbolos públicos. Cada destino recibe una regla XML llamada obfuscate public y escribe su archivo map de renombrado, y un destino que tiene otro destino entre sus dependencias de combinación, incrustación o referencia lee el archivo map de este mediante un vínculo de map. |
| Ofuscación: establecer nivel… | Aplica al destino seleccionado uno de los tres niveles de protección. |
Los dos comandos de configuración omiten los destinos de tipo paquete (.apk, .appx y .xap). Ninguno de los tres se ejecuta mientras hay una tarea en curso o una edición pendiente de aplicar. Modifican el proyecto abierto y no lo guardan, así que antes puede revisar el resultado en el diagrama, en la cuadrícula y en el panel de propiedades.
Niveles de protección
Ofuscación: establecer nivel…, en la paleta de comandos, aplica un nivel al destino seleccionado; Establecer nivel de ofuscación, en el menú de la fila de la cuadrícula, lo aplica a todas las filas seleccionadas. Los niveles establecen estas opciones y dejan las demás como están:
| Nivel | Protección |
|---|---|
| Ligero | Renombrado de tipos, métodos, campos, propiedades y eventos. El flujo de control, las funciones de cifrado y las protecciones antianálisis quedan desactivados. |
| Equilibrado | Renombrado, ofuscación del flujo de control con el algoritmo goto, cifrado de cadenas y supresión de ILDASM. |
| Máximo | Renombrado, ofuscación del flujo de control con goto, switch, case, if y chained state, cifrado de cadenas con el algoritmo stream, cifrado de valores, cifrado MSIL, detección de manipulación, protección contra depuración y supresión de ILDASM. Cuando la licencia no incluye el algoritmo stream, se usa el cifrado de cadenas predeterminado. |
Si aplica un nivel más bajo después de uno más alto, las protecciones adicionales vuelven a desactivarse. Un nivel es un punto de partida: después puede cambiar cualquier opción por separado.
Máximo activa el cifrado MSIL sin filtro, de modo que solo cifra los métodos que seleccione con una regla XML o con el atributo Obfuscation. Para cifrar por espacio de nombres o por tipo, añada un filtro a Msil Encryption en el grupo Cifrado de código. Consulte Cifrado de código.
Un nivel no modifica el renombrado de los símbolos públicos, los archivos map, la combinación ni la firma. Esos ajustes dependen de cómo se distribuyen los ensamblados, y para eso están los comandos de configuración.