Deklaratives Verbergen mit benutzerdefinierten Attributen

.NET Framework, Version 2.0, bietet zwei neue benutzerdefinierte Attribute, die ein automatisches Verbergen von Assemblys erleichtern sollen, ohne Konfigurationsdateien einrichten zu müssen. In diesem Abschnitt wird erläutert, wie Sie diese Attribute mit Dotfuscator verwenden können. Dabei wird vorausgesetzt, dass Sie mit benutzerdefinierten Attributen und deren Anwendung in Ihrer Entwicklungssprache vertraut sind.

System.Reflection.ObfuscateAssemblyAttribute

Dieses Attribut wird auf Assemblyebene verwendet, um Dotfuscator anzuweisen, wie die Assembly insgesamt verborgen werden soll. Wenn Sie die AssemblyIsPrivate-Eigenschaft auf false festlegen, weisen Sie Dotfuscator an, die Assembly im Bibliothekenmodus auszuführen. Wenn Sie die Eigenschaft auf true festlegen, führt Dotfuscator die Assembly nicht im Bibliothekenmodus aus und benennt so viele Elemente wie möglich um, einschließlich öffentlicher Typen und Member.

System.Reflection.ObfuscationAttribute

Dieses Attribut wird für Typen und ihre Member verwendet und weist Dotfuscator an, wie das Element verborgen werden soll.

Feature-Eigenschaft

Diese Zeichenfolgeneigenschaft besitzt den Standardwert all. Sie wird bereitgestellt, damit Sie mehrere unabhängige Verbergungstransformationen konfigurieren können, indem Sie ein Element mit mehreren ObfuscationAttributes markieren, von denen jedes eine andere Featurezeichenfolge verwendet.

Dotfuscator ordnet der Zeichenfolge renaming die Featurezeichenfolgen default und all zu.

Die folgende Liste enthält andere von Dotfuscator unterstützte Featurezeichenfolgen.

Featurezeichenfolge Aktion
renaming Attribut konfiguriert Umbenennung
controlflow Attribut konfiguriert Verbergen der Ablaufsteuerung
stringencryption Attribut konfiguriert Zeichenfolgenverschlüsselung
trigger Attribut konfiguriert Pruning durch Markieren des angegebenen Elements als Einstiegspunkt
conditionalinclude Attribut konfiguriert Pruning durch bedingtes Einschließen des angegebenen Elements

Sofern erforderlich, können Sie der Zeichenfolge renaming auf der Registerkarte Setup im Eigenschaftenblatt Featurezuordnungszeichenfolgen andere Featurezeichenfolgen zuordnen.

Dotfuscator ignoriert Attribute mit unbekannten Featurezeichenfolgen.

Exclude-Eigenschaft

Diese boolesche Eigenschaft besitzt den Standardwert true. Wenn der Wert true lautet, wird das markierte Element von den Transformationen ausgeschlossen, die durch die Feature-Eigenschaft abgeleitet werden können. Wenn der Wert false lautet, wird das markierte Element eingeschlossen.

Die aktuelle Version von Dotfuscator unterstützt für eine bestimmte Transformation nur einen Wert der Exclude-Eigenschaft. Dotfuscator ignoriert Regeln, die nicht unterstützte Exclude-Werte enthalten. Die folgende Liste enthält eine Zusammenfassung der unterstützten Werte.

Featurezeichenfolge Unterstützter Exclude-Wert
renaming True
controlflow True
stringencryption False
trigger False
conditionalinclude False

ApplyToMembers-Eigenschaft

Diese boolesche Eigenschaft besitzt den Standardwert true. Wenn das Attribut auf eine Assembly oder einen Typ angewendet wird, gibt der Wert true an, dass der Vorgang auch auf alle Member (einschließlich geschachtelter Typen) der ausgewählten Typen angewendet werden soll. Wenn der Wert false lautet, wird der Vorgang nur auf die Typen und nicht auf ihre Member (und geschachtelten Typen) angewendet.

Aktivieren oder Deaktivieren des deklarativen Verbergens

Dotfuscator ermöglicht es Ihnen, deklaratives Verbergen für alle Eingabeassemblys zu aktivieren bzw. zu deaktivieren. Wenn es nicht aktiviert ist, ignoriert Dotfuscator benutzerdefinierte Attribute, die sich auf das Verbergen beziehen. Sie können es auch für bestimmte Assemblys ausschalten.

Entfernen von Attributen für deklaratives Verbergen

Durch Dotfuscator können die Verbergungsattribute nach abgeschlossener Verarbeitung entfernt werden, sodass die Ausgabeassemblys keine Hinweise darauf enthalten, wie die Verbergung erfolgt ist. Beide deklarativen Verbergungsattribute besitzen eine boolesche StripAfterObfuscation-Eigenschaft, die den Standardwert true aufweist.

Dotfuscator verfügt auch über Konfigurationseinstellungen, die mit dem Wert der StripAfterObfuscation-Eigenschaft zum Zeitpunkt des Verbergungsvorgangs interagieren.

Die Einstellungen, die Einfluss auf das Entfernen von Attributen für deklaratives Verbergen und deren Interaktion haben, sind in der folgenden Tabelle zusammengefasst.

Attribute werden von Dotfuscator berücksichtigt Attribute werden von Dotfuscator entfernt StripAfterObfuscation-Eigenschaft des Attributs Ergebnis
Ja Ja True oder False Attribut wird entfernt
Ja Nein True Attribut wird entfernt
Ja Nein False Attribut wird beibehalten
Nein Ja True oder False Attribut wird entfernt
Nein Nein True oder False Attribut wird beibehalten

Verwenden von Featurezuordnungszeichenfolgen

In Dotfuscator können Sie Werte, die in der Feature-Eigenschaft eines Verbergungsattributs enthalten sind, von Dotfuscator unterstützten Featurezeichenfolgen zuordnen.

Beispielsweise können Sie die Anwendung mit Verbergungsattributen markieren, die auf ein Feature mit dem Namen testmode verweisen. Dotfuscator erkennt diese Featurezeichenfolge nicht standardmäßig und ignoriert die Attribute daher. Wenn Dotfuscator diese Attribute später verwenden soll, um das Umbenennen und das Verbergen der Ablaufsteuerung zu konfigurieren, können Sie die Featurezeichenfolge testmode den in Dotfuscator integrierten Zeichenfolgen renaming und controlflow zuordnen.

© 2002-2007 PreEmptive Solutions. Alle Rechte vorbehalten.