Flujos de trabajo habituales
Tres formas habituales de preparar un proyecto, desde una sola aplicación hasta un conjunto de bibliotecas que se distribuyen juntas.
Proteger una sola aplicación
Use este flujo de trabajo cuando distribuya un solo ensamblado, o una aplicación cuyas bibliotecas no quiera combinar.
Añadir la aplicación
Arrastre el archivo .exe o .dll hasta el diagrama, o haga clic en + Añadir ensamblado.
Elegir un nivel de protección
Ejecute Ofuscación: establecer nivel… desde la paleta de comandos y elija Equilibrado como punto de partida. Abra el panel de propiedades para revisar el resultado, por ejemplo para elegir otro algoritmo de cifrado de cadenas.
Conservar un archivo map
Marque Escribe su map de renombrado en el grupo Archivos map del panel de propiedades. Con el archivo map puede descodificar en el Descodificador de pila las trazas de pila que le envían sus clientes. Guarde el archivo map con su compilación, no con la aplicación.
Ejecutar y comprobar
Haga clic en Ejecutar proyecto. Revise la pestaña Problemas del panel Actividad y la puntuación de ofuscación en la tarjeta del destino. Después inicie la aplicación protegida con Ejecutar > Ejecutar aplicación ofuscada (Ctrl+F5, Cmd+F5 en macOS) y pruébela.
Si la aplicación usa reflexión, serialización o enlace de datos por nombre, algunos símbolos deben conservar sus nombres. Exclúyalos con reglas XML en la pestaña Reglas XML, o con el atributo Obfuscation en su código.
Combinar bibliotecas en el ejecutable principal
Use este flujo de trabajo para distribuir un solo archivo en lugar de un ejecutable y sus bibliotecas privadas. Con Internalize activado, los tipos combinados pasan a ser internos, de modo que también se pueden ofuscar sus nombres. Consulte Combinación de ensamblados.
Añadir todos los ensamblados
Añada el ejecutable y las bibliotecas que quiera combinar, todos como destinos.
Ejecutar la configuración de combinación
Ejecute Ofuscación: configurar combinación en el ensamblado principal desde la paleta de comandos, o haga clic en Configurar combinación en la cuadrícula. Las bibliotecas pasan a ser entradas de combinación del ejecutable. Un ensamblado que el motor no puede combinar sigue siendo un destino independiente.
Comprobar el grafo
En el diagrama, las bibliotecas están conectadas al ejecutable con líneas con la etiqueta COMBINAR. En la cuadrícula, el ejecutable es la única fila y el contador muestra, por ejemplo, 1 destino · 4 combinados. Abra la pestaña Entradas de su fila para ver los archivos combinados.
Definir la protección y ejecutar
Elija un nivel para el ejecutable y ejecute el proyecto. La carpeta de salida contiene un solo ensamblado.
Para almacenar una biblioteca dentro del ejecutable como recurso en lugar de combinar su código, cambie su tipo a Incrustar en la pestaña Entradas o en la ventana emergente de la dependencia. Consulte Dependencias.
Ofuscar un conjunto de bibliotecas con renombrado público
Use este flujo de trabajo cuando distribuya varios ensamblados que se llaman entre sí, como un framework y las aplicaciones creadas sobre él, y quiera que también se renombre su API pública. Cada ensamblado debe usar los nombres nuevos de los demás, por lo que los destinos intercambian sus archivos map de renombrado.
Añadir los ensamblados
Añada como destino cada biblioteca y cada aplicación que las usa.
Conectar los destinos que se usan entre sí
Para cada biblioteca, arrastre desde su anclaje derecho hasta el anclaje izquierdo de un destino que la llama y elija Pasar el archivo de map. La biblioteca se ejecuta ahora primero y escribe su archivo map, y el destino que la usa lo lee.
Ejecutar la configuración pública
Ejecute Ofuscación: configurar ofuscación pública (todos los ensamblados), o haga clic en Configurar ofuscación pública en la cuadrícula. Cada destino recibe la regla obfuscate public y escribe su archivo map de renombrado. Los destinos que tienen otro destino entre sus dependencias reciben el vínculo de map automáticamente.
Comprobar el orden
En la cuadrícula, añada las columnas Flujo · Paso y Ejecutar después de y active Agrupar por flujo. Cada biblioteca aparece antes que los destinos que leen su archivo map.
Ejecutar
Ejecute el proyecto. Conserve todos los archivos map de la ejecución: los necesita para descodificar trazas de pila y para ofuscar una compilación posterior de una aplicación con la misma versión de una biblioteca.



Una aplicación que lee el archivo map de su biblioteca
Cuando una biblioteca se ofuscó en una compilación anterior y no forma parte del proyecto, añada su archivo map con Añadir archivo de map… bajo Otros archivos de map, en el panel de propiedades de cada destino que la usa. Consulte Renombrado entre ensamblados.
Los archivos map de renombrado y los archivos de estadísticas contienen los nombres originales de su código. Guárdelos con los registros de sus compilaciones y no los distribuya nunca con la aplicación.
Compilar el proyecto fuera de Babel Desktop
Un proyecto guardado por Babel Desktop es un archivo de MSBuild. Cuando se ejecute como desea, compílelo en un servidor de compilación con la tarea de MSBuild; las conexiones de flujo y los vínculos de map se guardan como dependencias entre destinos, de modo que MSBuild ejecuta los destinos en el mismo orden.