Skip to Content
Nueva versión 12 disponible 🎉
ObfuscatorCombinar e incrustarIncrustación de ensamblados

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.dll

Este 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.xml

Incrustar 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.

Last updated on