Condividi tramite


Offuscamento di assembly con nome sicuro

Gli assembly con nome sicuro sono dotati di firma digitale. Ciò consente al runtime di determinare se un assembly è stato alterato in seguito alla firma. La firma è costituita da un hash SHA1 firmato con la chiave privata di una coppia di chiavi pubblica/privata RSA. Sia la firma che la chiave pubblica vengono incorporati nei metadati dell'assembly.

Poiché Dotfuscator modifica l'assembly, è essenziale che la firma venga elaborata dopo l'esecuzione di Dotfuscator.

Dotfuscator Professional Edition è in grado di gestire questa fase nell'ambito del processo di offuscamento. Se si utilizza Dotfuscator Community Edition, è necessario completare il processo di firma in una fase di generazione distinta al termine dell'offuscamento.

Nuova firma manuale dopo l'offuscamento

È opportuno ritardare la firma dell'assembly durante lo sviluppo e prima dell'offuscamento con Dotfuscator, quindi completare il processo di firma in un secondo momento. Per informazioni dettagliate sulla firma ritardata degli assembly, vedere la documentazione di .NET Framework.

Per offuscare correttamente un assembly con nome sicuro, attenersi alla procedura riportata di seguito.

  • Ritardare la firma dell'assembly durante lo sviluppo. A questo scopo, incorporare nell'assembly due attributi personalizzati. Per C#, includere in AssemblyInfo.cs le seguenti righe:
[assembly:AssemblyKeyFileAttribute("keyfile.snk")] [assembly:AssemblyDelaySignAttribute(true)]
  • Dove keyfile.snk rappresenta il nome del file contenente la chiave pubblica.
  • Utilizzare lo strumento per i nomi sicuri (sn.exe) fornito con .NET Framework per disattivare la verifica del nome sicuro durante il controllo dell'assembly:
sn -Vr TestAsm.exe
  • Offuscare l'assembly con firma ritardata utilizzando Dotfuscator.
  • Dopo l'esecuzione mediante Dotfuscator, attivare la verifica dell'assembly offuscato utilizzando sn.exe. In tal modo, si annulla la registrazione dell'assembly offuscato per l'omissione della verifica:
sn -Vu TestAsm.exe 
  • Completare infine il processo di firma dell'assembly offuscato, dove keyfile.snk è il nome del file contenente la chiave privata:
sn -R TestAsm.exe keyfile.snk

Durante il test degli assembly con firma ritardata, assicurarsi di disattivare la convalida del nome sicuro.

© 2002-2007 PreEmptive Solutions. Tutti i diritti riservati.