Incrustación de ensamblados
Babel Obfuscator ofrece una función para incrustar varios ensamblados en la aplicación principal, lo que puede reducir el tamaño total del ensamblado desplegado. Al incrustar ensamblados con Babel Obfuscator, los ensamblados incrustados primero se cifran y se comprimen, y después se almacenan como recursos administrados dentro del ensamblado principal de la aplicación.
Es importante tener en cuenta que los ensamblados incrustados no se ofuscan. Por ello, se recomienda incrustar solo ensamblados que no contengan código propietario, o componentes que no sea necesario proteger.
La incrustación es la forma recomendada de generar una aplicación Avalonia de archivo único. Como los ensamblados incrustados conservan su identidad original, los URI de recursos avares://<AssemblyName>/… de Avalonia se siguen resolviendo, a diferencia de lo que ocurre con la combinación, que no es compatible con Avalonia.
Para proteger también el código, ofusque primero cada dependencia (conservando su API pública para que las referencias entre ensamblados sigan intactas) e incruste después los ensamblados ya ofuscados:
babel MyApp.View.dll --output obf/MyApp.View.dll [obfuscation options]
babel MyApp.dll --embed obf/MyApp.View.dll [obfuscation options]Incrustar desde la línea de comandos
Para incrustar ensamblados desde la línea de comandos con la herramienta Babel, use la opción --embed seguida de la ruta del archivo del ensamblado que se va a incrustar. Puede repetir la opción varias veces para incrustar varios ensamblados.
babel MyApp.exe --embed Library1.dll --embed Library2.dllEste comando incrusta Library1.dll y Library2.dll en MyApp.exe. Los ensamblados incrustados se almacenan como recursos administrados dentro del ensamblado principal.
También puede usar un archivo de reglas XML para especificar ajustes adicionales, como la compresión o el cifrado. Por ejemplo, cree un archivo llamado embed.xml con el contenido siguiente:
<Rules>
<Rule name="Library1" feature="embed" exclude="false">
<Target>Assembly</Target>
<Pattern>Library1.dll</Pattern>
<Properties>
<Compress>false</Compress>
</Properties>
</Rule>
<Rule name="Library2" feature="embed" exclude="false">
<Target>Assembly</Target>
<Pattern>Library2.dll</Pattern>
<Properties>
<Encrypt>false</Encrypt>
</Properties>
</Rule>
</Rules>A continuación, ejecute el comando siguiente para incrustar los ensamblados según el archivo de reglas:
babel MyApp.exe --embed Library1.dll --embed Library2.dll --rules embed.xmlIncrustar desde la tarea Babel de MSBuild
Para incrustar ensamblados con la tarea Babel de MSBuild, debe añadir un nuevo elemento ItemGroup a su archivo de proyecto. Dentro del ItemGroup puede definir varios elementos EmbedAssembly, cada uno con la ruta de un archivo de ensamblado que se va a incrustar. Por ejemplo:
<ItemGroup>
<EmbedAssembly Include="path/to/Assembly1.dll" />
<EmbedAssembly Include="path/to/Assembly2.dll" />
</ItemGroup>Puede hacer referencia a EmbedAssembly en la tarea Babel mediante el atributo EmbedAssemblies:
<Babel EmbedAssemblies="@(EmbedAssembly)" RulesFiles="embed.xml" />De forma opcional, puede especificar un archivo de reglas para personalizar los ajustes de compresión y cifrado de cada ensamblado incrustado. De forma predeterminada, los ensamblados incrustados se comprimen y se cifran con los ajustes predeterminados de Babel, pero un archivo de reglas permite personalizarlos si es necesario.
Incrustar desde Babel Desktop
Para incrustar ensamblados con Babel Desktop, siga estos pasos:
Abrir o crear un proyecto
Abra un proyecto existente o cree uno nuevo.
Añadir los ensamblados
Añada al diagrama del proyecto el ensamblado principal y los ensamblados que se van a incrustar.
Conectar las dependencias
Conecte cada dependencia con el ensamblado principal: arrastre desde el anclaje inferior de la dependencia hasta el anclaje superior del ensamblado principal.
Establecer el tipo de conexión en Incrustar
Haga clic en la conexión y establezca su tipo en Incrustar. Las conexiones nuevas son de tipo Combinar de forma predeterminada cuando el ensamblado principal hace referencia a la dependencia, y de tipo Referencia en caso contrario.
Configurar la compresión y el cifrado
Configure la compresión y el cifrado de los ensamblados incrustados con reglas XML, en la vista de reglas XML del ensamblado principal.
Consulte Proyectos de ofuscación para saber más sobre el diagrama del proyecto.