Application Android
Cet exemple de projet utilise le package NuGet Babel Obfuscator pour activer l’obfuscation dans une application Android basée sur .NET 7. Le package NuGet Babel Obfuscator s’intègre facilement à un projet .NET. Il offre un moyen pratique de configurer et d’appliquer l’obfuscation directement depuis Visual Studio ou la ligne de commande.
Pour utiliser cet exemple de projet et suivre les instructions, vous devez disposer d’une licence de site pour Babel Obfuscator (édition Ultimate, Server ou Data Center). Le code source de l’exemple est par ailleurs disponible en téléchargement dans le dépôt GitHub associé au projet.
git clone https://github.com/babelfornet/android-app-example.gitLe projet d’exemple « AndroidApp » illustre le processus d’obfuscation d’une application Android. Il contient la référence au package NuGet Babel Obfuscator, qui exécute l’obfuscation sur l’assembly cible AndroidApp.dll pendant le processus de build.
Outre le package NuGet Babel Obfuscator, qui met en place l’obfuscation dans le projet AndroidApp, une configuration supplémentaire a été ajoutée au fichier de projet (AndroidApp.csproj) pour activer d’autres types d’obfuscation.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0-android</TargetFramework>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<OutputType>Exe</OutputType>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationId>com.companyname.AndroidApp</ApplicationId>
<ApplicationVersion>1</ApplicationVersion>
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Babel.Obfuscator" Version="10.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<Use>tagassembly=true</Use>
<StringEncryption>true</StringEncryption>
<ControlFlowObfuscation>goto=on;if=on;switch=on;case=on;call=on;true</ControlFlowObfuscation>
<DynamicProxy>all</DynamicProxy>
<ResourceEncryption>true</ResourceEncryption>
<VerboseLevel>3</VerboseLevel>
<XmlRules>
<Rules>
<Rule name="rule1" feature="renaming" exclude="false">
<Pattern>*</Pattern>
</Rule>
</Rules>
</XmlRules>
</PropertyGroup>
</Project>Le fichier de projet contient par exemple des paramètres pour le chiffrement des chaînes, qui obfusque les littéraux de chaîne du code de l’application afin de compliquer la rétro-ingénierie pour les attaquants. La configuration définit aussi une règle personnalisée qui renomme tous les types publics, ce qui augmente le nombre de types renommés.
Au démarrage, l’application affiche dans la vue principale tous les types contenus dans l’assembly obfusqué.

Application Android dans l’émulateur
La vue montre que la plupart des types ont été renommés par Babel, ce qui confirme que l’application exécutée est bien la version obfusquée.
Cet exemple de projet montre comment intégrer le package NuGet Babel Obfuscator à une application Android et personnaliser ses paramètres d’obfuscation pour obtenir des résultats précis. Il permet aux utilisateurs de voir comment Babel Obfuscator aide à protéger leurs applications Android en renommant les types et les méthodes, en supprimant des métadonnées, en chiffrant les chaînes et en ajoutant l’obfuscation du flux de contrôle à leur code, ce qui renforce la sécurité globale de l’application.