Behandeln von Assemblys mit starkem Namen mit Dotfuscator

Assemblys mit starkem Namen enthalten eine digitale Signatur. Dadurch kann von der Laufzeit bestimmt werden, ob eine Assembly nach dem Signieren geändert wurde. Bei der Signatur handelt es sich um einen SHA1-Hash, der mit dem privaten Schlüssel eines Paars aus einem öffentlichen und einem privaten RSA-Schlüssel signiert ist. Signatur und öffentlicher Schlüssel sind in die Metadaten der Assembly eingebettet.

Da die Assembly von Dotfuscator geändert wird, darf sie auf jeden Fall erst nach der Behandlung mit Dotfuscator signiert werden.

Dotfuscator Professional Edition kann diesen Schritt als Teil des Verbergungsvorgangs behandeln. Wenn Sie die Community Edition verwenden, müssen Sie das Signieren in einem eigenen Schritt des Buildvorgangs nach dem Verbergungsvorgang ausführen.

Manuelles Neusignieren nach dem Verbergen

Sie sollten bei der Entwicklung der Assembly und vor dem Behandeln mit Dotfuscator das Signieren verzögern, und den Signierungsprozess später abschließen. Ausführliche Informationen über verzögertes Signieren von Assemblys finden Sie in der Dokumentation zu .NET Framework.

Um eine Assembly mit starkem Namen zu verbergen, führen Sie die folgenden Schritte aus:

  • Verwenden Sie bei der Entwicklung der Assembly die verzögerte Signierung. Dazu betten Sie zwei benutzerdefinierte Attribute in die Assembly ein. In C# schließen Sie hierfür die beiden folgenden Zeilen in AssemblyInfo.cs ein:
[assembly:AssemblyKeyFileAttribute("keyfile.snk")] [assembly:AssemblyDelaySignAttribute(true)]
  • Hierbei ist keyfile.snk der Name der Datei, der den öffentlichen Schlüssel enthält.
  • Verwenden Sie das Strong Name-Tool (sn.exe), das Teil von .NET Framework ist, um die Überprüfung starker Namen während des Testens der Assembly zu deaktivieren:
sn -Vr TestAsm.exe
  • Verbergen Sie die verzögert signierte Assembly mit Dotfuscator.
  • Aktivieren Sie nach dem Ausführen von Dotfuscator die Überprüfung der verborgenen Assembly mit sn.exe. Hierdurch wird die Registrierung der mit Dotfuscator verborgenen Assembly als nicht zu überprüfende Assembly aufgehoben:
sn -Vu TestAsm.exe 
  • Schließen Sie nun den Signierungsvorgang der mit Dotfuscator verborgenen Assembly ab, wobei keyfile.snk der Name der Datei mit dem privaten Schlüssel ist:
sn -R TestAsm.exe keyfile.snk

Achten Sie darauf, die Überprüfung des starken Namens beim Testen der verzögert signierten Assemblys zu deaktivieren.

© 2002-2007 PreEmptive Solutions. Alle Rechte vorbehalten.