Masquer votre application Silverlight avec Dotfuscator
À propos de Dotfuscator
Dotfuscator est un obscurcisseur qui rend le code source difficile à lire lorsque des applications écrites avec le .NET Framework sont désassemblées. Dotfuscator est disponible dans les versions commerciales gratuites et payantes fournies avec Visual Studio.
La version gratuite n’est disponible qu’avec de nombreuses fonctionnalités limitées et l’hypothèse que Visual Studio est en cours d’exécution, mais toute personne avec Visual Studio installé peut l’utiliser. La version payante possède de nombreuses fonctionnalités d’obscurcissement puissantes qui ne sont pas disponibles dans la version gratuite, mais il peut être ennuyeux qu’elle soit proposée à un prix difficile à payer pour le grand public.
Dotfuscator peut avoir des fonctionnalités, des prix et des éditions différents selon la version, veuillez donc vous référer au site Web suivant pour plus de détails.
Code analysé
Comme mentionné ci-dessus, les applications créées avec le .NET Framework peuvent facilement lire le code source d’origine en désassembleant, mais ce qui se passe réellement, c’est que lorsque vous désassemblez un fichier d’assembly comme illustré dans la figure, la plupart du code source d’origine tel que les espaces de noms, les noms de classe et les noms de méthode peuvent être reproduits.
Procédure d’obscurcissement
Commencez par créer l’application Silverlight comme d’habitude et effectuez une génération release. Ici, nous créons une application qui ne place que deux boutons.
Dans le dossier Bin\Release du dossier où se trouve le projet, tapez . xap » est un fichier de package qui résume les programmes et les fichiers utilisés dans les applications Silverlight.
En fait, ce fichier est compressé et compilé en tant que fichier ZIP, donc l’extension est « . zip ».
Il a été remplacé par un fichier ZIP.
Lorsque vous ouvrez le fichier, il contient un fichier manifeste et une DLL. Cette DLL est la version compilée du programme qui s’exécute en tant qu’application.
Soit dit en passant, le fichier DLL est également placé dans le dossier Release lorsqu’il est construit, donc cette fois, nous allons obscurcir ce fichier.
Dans le menu Visual Studio, sélectionnez Outils, puis PreEmptive Dotfuscator And Analytics.
Lors du premier démarrage, la boîte de dialogue « Contrat de licence » s’affiche, alors lisez attentivement le contenu, cochez « Oui, j’accepte le contrat de licence. » et cliquez sur le bouton « OK ».
Le CE PreEmptive Dotfuscator And Analytics démarre.
Sélectionnez « Entrées » dans l’arborescence de gauche et cliquez sur le bouton « Ajouter une entrée ».
Sélectionnez le fichier DLL que vous avez généré pendant la génération.
Sélectionnez le fichier DLL que vous avez ajouté et décochez Mode bibliothèque > conversion XAML.
Si l’option « Mode bibliothèque » est cochée, les classes et les méthodes définies en public ne seront pas obscurcies.
Si l’option « Conversion XAML » est cochée, les classes définies en XAML seront masquées, mais selon la façon dont vous la créez, cela provoquera une erreur de démarrage, donc si elle se produit, décochez cette option.
Fondamentalement, toutes les classes, méthodes, propriétés et noms de variables sont obscurcis, mais si vous ne souhaitez pas obscurcir un espace de noms ou une classe spécifique en raison de la sérialisation, sélectionnez « Renommer » dans l’arborescence de gauche, sélectionnez l’onglet « Exclure » et vérifiez l’espace de noms ou la classe cible.
Sous Règles intégrées, assurez-vous que les champs pour Silverlight et WPF UserControls sont cochés. Si vous cochez cette case, le champ UserControls sera masqué et s’exécutera correctement. Vous pouvez le décocher s’il semble fonctionner correctement même après l’obscurcissement.
Lorsque vous avez terminé, cliquez sur le bouton « Générer le projet » dans la barre d’outils.
S’il y a des modifications au projet, la boîte de dialogue de confirmation d’enregistrement du projet s’affiche, alors cliquez sur « Oui » pour enregistrer.
Le projet s’appelle « . XML ». Les fichiers obfusqués sont enregistrés au même emplacement.
Attendez que la génération se termine au démarrage. Notez que plus le programme est grand, plus il faut de temps pour le construire. Quand il ressemble à la figure, la construction est terminée.
Le champ de message montre la progression de la génération et un bref résultat tel que son degré d’obscurcissement.
Si vous sélectionnez Résultats dans l’arborescence de gauche, vous pouvez voir des détails sur la façon dont les noms de classe et de méthode ont changé.
Sous les noms de classe et de méthode, il y aura une icône Dotfuscator et des noms tels que « a » et « b », qui seront le nom masqué. En changeant le nom de la classe ou du nom de la méthode en un nom sans signification de cette manière, même s’il est désassemblé, cela peut rendre le contenu du code source difficile à lire.
Le fichier obfusqué est créé dans un dossier appelé « Dotfuscated » dans le dossier du fichier .xml enregistré dans Enregistrer le projet. En plus du fichier obfusqué, un fichier « Map.xml » a été créé, mais il est le résultat de l’obscurcissement et n’est pas utilisé.
Si vous désassemblez le fichier obscurci, vous pouvez voir que certains noms de classe et de méthode ont été remplacés par « a » ou « b ».
Cette fois, le projet par défaut créé a été obscurci presque tel quel, donc je pense qu’il y a une image qu’il n’est pas si obscurci, mais je pense que l’effet de l’obscurcissement devient plus clair parce que le nombre de classes, etc. augmente à mesure que le projet grandit.
Soit dit en passant, . Les bibliothèques NET Framework et ne sont pas sujettes à changement de nom car il s’agit d’assemblys déjà installés sur Windows, par exemple.
Silverlight n’utilise pas les DLL telles quelles, elles sont donc empaquetées sous forme de fichiers XAP. Comme mentionné au début, un fichier XAP est juste une modification dans l’extension du fichier ZIP, il crée donc un fichier ZIP en collectant les fichiers contenus dans le fichier XAP et les DLL obscurcies.
La création d’un fichier ZIP peut être effectuée à l’aide des fonctionnalités standard du système d’exploitation.
Un fichier ZIP est créé.
L’extension est remplacée par '. XAP » et si le nom de fichier est différent, remplacez-le par le nom de fichier du package d’origine.
Placez le fichier XAP dans un emplacement de distribution.
Veuillez vérifier l’opération et voir si elle fonctionne correctement.
S’il ne démarre pas, vérifiez jusqu’à ce qu’il fonctionne normalement en réduisant le code obscurci. Notez que Silverlight reste souvent bloqué dans les questions liées au code XAML.
Bien que les instructions ne soient pas répertoriées ici, si vous souhaitez signer un programme, générez-le dans un état signé différément, obscurcissez l’assembly, puis signez à nouveau. Même si vous l’obscurcissez pendant qu’il est signé, le code de signature attaché au moment de la génération et le code de signature après l’obscurcissement ne correspondront pas, vous ne pourrez donc pas le démarrer.
Dans cet article, j’ai énuméré les étapes pour la version gratuite, mais si vous utilisez la version payante, vous pouvez effectuer un obscurcissement plus complexe et empêcher le désassemblage lui-même. Cependant, l’obscurcissement a le potentiel de causer divers effets indésirables, donc lors de l’obscurcissement est fait, il est nécessaire de déterminer s’il fonctionnera correctement dès le début de la conception.