Partager via


Obfuscation d'assemblys dotés de noms forts

Les assemblys dotés de noms forts bénéficient d'une signature numérique. Cela permet au runtime de déterminer si un assembly a été modifié après sa signature. La signature est un hachage SHA1 signé à l'aide de la clé privée d'une paire de clés publique/privée RSA. La signature et la clé publique sont incorporées dans les métadonnées de l'assembly.

Dans la mesure où Dotfuscator modifie l'assembly, il est essentiel que la signature ait lieu après l'exécution de Dotfuscator sur l'assembly.

Dotfuscator Professional Edition peut gérer cette étape dans le cadre du processus d'obfuscation. Si vous utilisez Dotfuscator Community Edition, vous devez effectuer la signature au cours d'une étape de génération distincte, une fois l'obfuscation terminée.

Nouvelle signature manuelle après l'obfuscation

Vous devez différer la signature de l'assembly au cours du développement et avant l'obfuscation, puis compléter le processus de signature. Consultez la documentation du .NET Framework pour obtenir des informations détaillées sur les assemblys à signature différée.

Pour réussir l'obfuscation d'un assembly doté de nom fort, suivez les étapes ci-après :

  • Différez la signature de l'assembly durant le développement. Pour ce faire, incorporez deux attributs personnalisés dans votre assembly. En C#, vous devez inclure les lignes suivantes dans AssemblyInfo.cs :
[assembly:AssemblyKeyFileAttribute("keyfile.snk")] [assembly:AssemblyDelaySignAttribute(true)]
  • Où keyfile.snk représente le nom du fichier qui contient votre clé publique.
  • Utilisez l'outil Strong Name Tool (sn.exe) livré avec le .NET Framework pour désactiver la vérification de nom fort pendant que vous testez votre assembly :
sn -Vr TestAsm.exe
  • Obfusquez l'assembly à signature différée à l'aide de Dotfuscator.
  • Après avoir exécuté Dotfuscator, activez la vérification de l'assembly obfusqué à l'aide de sn.exe. Cela annule l'inscription de l'assembly obfusqué pour l'omission de la vérification :
sn -Vu TestAsm.exe 
  • À présent, terminez le processus de signature de l'assembly obfusqué, où keyfile.snk représente le nom du fichier qui contient votre clé privée :
sn -R TestAsm.exe keyfile.snk

N'oubliez pas de désactiver la validation des noms forts lorsque vous testez les assemblys à signature différée.

© 2002-2007 PreEmptive Solutions. Tous droits réservés.