Skip to Content
Nuova versione 12 disponibile 🎉
ObfuscatorUnione e incorporamentoIncorporamento di assembly

Incorporamento di assembly

Babel Obfuscator offre una funzionalità per incorporare più assembly nell’applicazione principale, che può ridurre la dimensione complessiva dell’assembly distribuito. Quando incorpori assembly con Babel Obfuscator, gli assembly incorporati vengono prima cifrati e compressi e poi memorizzati come risorse gestite nell’assembly principale dell’applicazione.

È importante notare che gli assembly incorporati non vengono offuscati. È quindi consigliabile incorporare solo assembly che non contengono codice proprietario o componenti che non devono essere protetti.

L’incorporamento è il modo consigliato per produrre un’applicazione Avalonia a file singolo. Poiché gli assembly incorporati mantengono la loro identità originale, gli URI di risorsa avares://<AssemblyName>/… di Avalonia continuano a essere risolti, a differenza dell’unione, che non è compatibile con Avalonia.

Per proteggere anche il codice, offusca prima ogni dipendenza (mantenendone l’API pubblica, così i riferimenti tra assembly restano intatti), poi incorpora gli assembly già offuscati:

babel MyApp.View.dll --output obf/MyApp.View.dll [obfuscation options] babel MyApp.dll --embed obf/MyApp.View.dll [obfuscation options]

Incorporare dalla riga di comando

Per incorporare assembly dalla riga di comando con lo strumento Babel, usa l’opzione --embed seguita dal percorso del file dell’assembly da incorporare. Puoi ripetere l’opzione più volte per incorporare più assembly.

babel MyApp.exe --embed Library1.dll --embed Library2.dll

Questo comando incorpora Library1.dll e Library2.dll in MyApp.exe. Gli assembly incorporati vengono memorizzati come risorse gestite nell’assembly principale.

Puoi anche usare un file di regole XML per specificare impostazioni aggiuntive, come la compressione o la cifratura. Per esempio, crea un file chiamato embed.xml con il contenuto seguente:

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

Poi esegui il comando seguente per incorporare gli assembly in base al file di regole:

babel MyApp.exe --embed Library1.dll --embed Library2.dll --rules embed.xml

Incorporare dal task Babel di MSBuild

Per incorporare assembly con il task Babel di MSBuild devi aggiungere un nuovo elemento ItemGroup al file di progetto. All’interno di ItemGroup puoi definire più elementi EmbedAssembly, ciascuno con il percorso di un file di assembly da incorporare. Per esempio:

<ItemGroup> <EmbedAssembly Include="path/to/Assembly1.dll" /> <EmbedAssembly Include="path/to/Assembly2.dll" /> </ItemGroup>

Puoi fare riferimento a EmbedAssembly nel task Babel con l’attributo EmbedAssemblies:

<Babel EmbedAssemblies="@(EmbedAssembly)" RulesFiles="embed.xml" />

Se vuoi, puoi specificare un file di regole per personalizzare le impostazioni di compressione e cifratura di ogni assembly incorporato. Per impostazione predefinita gli assembly incorporati vengono compressi e cifrati con le impostazioni predefinite di Babel, ma con un file di regole puoi personalizzarle se necessario.

Incorporare da Babel Desktop

Per incorporare assembly con Babel Desktop, segui questi passi:

Apri o crea un progetto

Apri un progetto esistente o creane uno nuovo.

Aggiungi gli assembly

Aggiungi al canvas del progetto l’assembly principale e gli assembly da incorporare.

Collega le dipendenze

Collega ogni dipendenza all’assembly principale: trascina dall’ancoraggio inferiore della dipendenza all’ancoraggio superiore dell’assembly principale.

Imposta il tipo di collegamento su Incorpora

Fai clic sul collegamento e imposta il tipo su Incorpora. I nuovi collegamenti sono di tipo Unisci per impostazione predefinita quando l’assembly principale referenzia la dipendenza, altrimenti di tipo Riferimento.

Configura la compressione e la cifratura

Configura la compressione e la cifratura degli assembly incorporati con le regole XML, nella vista Regole XML dell’assembly principale.

Vedi Progetti di offuscamento per saperne di più sul canvas del progetto.

Last updated on