Skip to Content
Neue Version 12 verfügbar 🎉

Zieleinstellungen

Jedes Ziel hat eigene Einstellungen für Babel Obfuscator. Der Eigenschaftenbereich bearbeitet sie für jeweils ein Ziel. Die Einrichtungsbefehle und die Schutzstufen ändern viele davon in einem Schritt.

Der Eigenschaftenbereich

Wählen Sie ein Ziel aus und klicken Sie oben rechts in der Symbolleiste auf die Schaltfläche Eigenschaften, drücken Sie bei ausgewähltem Knoten Enter oder wählen Sie Eigenschaften im Menü eines Knotens oder einer Zeile. Der Bereich wird rechts angedockt und trägt den Titel Assembly-Eigenschaften mit dem Namen des Ziels. Er hat zwei Registerkarten: Einstellungen und XML-Regeln.

Die Registerkarte Einstellungen führt alle Optionen von Babel Obfuscator für das ausgewählte Ziel auf, gegliedert in die Gruppen Map-Dateien, Umbenennung, Kontrollfluss, Codeverschlüsselung, Optimierung, Signierung und Schutz, Dateien und Abhängigkeiten, Output & diagnostics und Advanced. Jede Gruppe zeigt, wie viele Optionen sie enthält, und lässt sich einklappen. Tippen Sie in das Feld Einstellung suchen, um die Liste zu filtern.

Eigenschaftenbereich „Target properties“ des Ziels BubbleBurst.exe, neben der Zeichenfläche auf der Registerkarte „Settings“ geöffnet, mit dem Suchfeld „Find a setting“, der Gruppe „Map files“ mit aktiviertem „Writes its rename map“ und der Gruppe „Renaming“ mit „Flatten Namespaces“, „Unicode Normalization“ und „Detect If Obfuscated“Eigenschaftenbereich „Target properties“ des Ziels BubbleBurst.exe, neben der Zeichenfläche auf der Registerkarte „Settings“ geöffnet, mit dem Suchfeld „Find a setting“, der Gruppe „Map files“ mit aktiviertem „Writes its rename map“ und der Gruppe „Renaming“ mit „Flatten Namespaces“, „Unicode Normalization“ und „Detect If Obfuscated“Eigenschaftenbereich „Target properties“ des Ziels BubbleBurst.exe, neben der Zeichenfläche auf der Registerkarte „Settings“ geöffnet, mit dem Suchfeld „Find a setting“, der Gruppe „Map files“ mit aktiviertem „Writes its rename map“ und der Gruppe „Renaming“ mit „Flatten Namespaces“, „Unicode Normalization“ und „Detect If Obfuscated“

Der Eigenschaftenbereich des ausgewählten Ziels

Die Einstellungen tragen die Optionsnamen der MSBuild-Aufgabe. Was sie bewirken, beschreiben daher die Referenz der Babel-Aufgabe und die Seiten der einzelnen Schutzfunktionen. Jede Option erhält ein Steuerelement, das zu ihrem Typ passt: Kontrollkästchen für Schalter, Listen für Algorithmen, Datei- und Ordnerauswahl für Pfade sowie Editoren für Filter und Eigenschaftszuordnungen. Eine Liste, die auf Standard steht, lässt die Option im Projekt weg, sodass die Engine ihren eigenen Standardwert verwendet. Änderungen gelten nur für das ausgewählte Ziel. Um mehrere Ziele gleichzeitig zu ändern, verwenden Sie die Tabelle.

Eigenschaftenbereich mit der Gruppe „Code encryption“: „String Encryption“ eingeschaltet, „Msil Encryption“ eingeschaltet mit dem Filter .*, „Dynamic Proxy Call Filters“ auf ICollection.* gesetzt und „Value Encryption“ mit int32, int64, single, double und array eingeschaltetEigenschaftenbereich mit der Gruppe „Code encryption“: „String Encryption“ eingeschaltet, „Msil Encryption“ eingeschaltet mit dem Filter .*, „Dynamic Proxy Call Filters“ auf ICollection.* gesetzt und „Value Encryption“ mit int32, int64, single, double und array eingeschaltetEigenschaftenbereich mit der Gruppe „Code encryption“: „String Encryption“ eingeschaltet, „Msil Encryption“ eingeschaltet mit dem Filter .*, „Dynamic Proxy Call Filters“ auf ICollection.* gesetzt und „Value Encryption“ mit int32, int64, single, double und array eingeschaltet

Einstellungen der Codeverschlüsselung: Zeichenfolgen-, MSIL- und Wertverschlüsselung

Zusammengesetzte Optionen wie Control Flow Obfuscation zeigen ein Steuerelement je Eigenschaft. Das nächste Bild zeigt die Schalter für den Kontrollfluss. Der letzte, chain, schaltet den Algorithmus Chained State der Ultimate-Edition ein.

Eigenschaftenbereich, gefiltert nach „ControlFlow“: die Zuordnung „Control Flow Obfuscation“ mit eingeschaltetem enable, goto, switch, case, if, call und value, ausgeschaltetem token und underflow und chain auf dem StandardwertEigenschaftenbereich, gefiltert nach „ControlFlow“: die Zuordnung „Control Flow Obfuscation“ mit eingeschaltetem enable, goto, switch, case, if, call und value, ausgeschaltetem token und underflow und chain auf dem StandardwertEigenschaftenbereich, gefiltert nach „ControlFlow“: die Zuordnung „Control Flow Obfuscation“ mit eingeschaltetem enable, goto, switch, case, if, call und value, ausgeschaltetem token und underflow und chain auf dem Standardwert

Eigenschaften von Control Flow Obfuscation

Passwörter, etwa für einen Signaturschlüssel oder eine Map-Datei, werden nur für die laufende Sitzung behalten. Sie werden nie in die Projektdatei geschrieben, nach einem Neustart geben Sie sie daher erneut ein. Braucht die Engine während eines Laufs ein Passwort, fragt Babel Desktop danach.

Map-Dateien

Die Gruppe Map-Dateien oben auf der Registerkarte Einstellungen fasst die Map-Einstellungen des ausgewählten Ziels zusammen:

  • Schreibt seine Umbenennungs-Map schaltet die Map-Datei des Ziels ein oder aus. Die Zeile darunter zeigt, wohin die Map geschrieben wird: standardmäßig Neben der verschleierten Assembly oder der Dateiname, den Sie mit Ändern… gewählt haben.
  • Maps aus anderen Zielen führt die Map-Verknüpfungen auf, die an diesem Ziel enden. Klicken Sie auf den Namen eines Ziels, um es auszuwählen, oder auf sein ×, um die Verknüpfung zu entfernen.
  • Weitere Map-Dateien führt die Maps auf, die dieses Ziel liest und die kein Ziel des Projekts schreibt, etwa die Map einer Bibliothek, die in einem früheren Build verschleiert wurde. Map-Datei hinzufügen… fügt eine hinzu, Entfernen nimmt sie wieder heraus.
Eigenschaften des Ziels CrossAssembly1App.dll auf der Registerkarte „Settings“: die Gruppe „Map files“ mit aktiviertem „Writes its rename map“ und der Datei CrossAssembly1App.dll.map.xml mit der Schaltfläche „Change...“, CrossAssembly1.dll unter „Maps from other targets“ mit einer Schaltfläche zum Entfernen und die Schaltfläche „Add map file...“ unter „Other map files“Eigenschaften des Ziels CrossAssembly1App.dll auf der Registerkarte „Settings“: die Gruppe „Map files“ mit aktiviertem „Writes its rename map“ und der Datei CrossAssembly1App.dll.map.xml mit der Schaltfläche „Change...“, CrossAssembly1.dll unter „Maps from other targets“ mit einer Schaltfläche zum Entfernen und die Schaltfläche „Add map file...“ unter „Other map files“Eigenschaften des Ziels CrossAssembly1App.dll auf der Registerkarte „Settings“: die Gruppe „Map files“ mit aktiviertem „Writes its rename map“ und der Datei CrossAssembly1App.dll.map.xml mit der Schaltfläche „Change...“, CrossAssembly1.dll unter „Maps from other targets“ mit einer Schaltfläche zum Entfernen und die Schaltfläche „Add map file...“ unter „Other map files“

Die Gruppe „Map-Dateien“ eines Ziels, das die Map einer Bibliothek liest

XML-Regeln

Auf der Registerkarte XML-Regeln bearbeiten Sie die eingebetteten XML-Verschleierungsregeln des ausgewählten Ziels. Der Editor hebt die XML-Syntax hervor, und Validieren prüft die Regeln gegen das Schema der Babel-Regeln und meldet Zeile und Spalte jedes Fehlers. XML öffnen lädt eine Regeldatei in den Editor, XML-Datei speichern schreibt den Inhalt des Editors in eine Datei, und Auf Assembly anwenden legt die Regeln im Ziel ab. Eingebettete Regeln werden in der Projektdatei gespeichert.

Registerkarte „XML rules“ des Ziels mit einer eingebetteten Regel für die zusammengeführte Assembly BubbleBurst.View, die die Eigenschaft „Dynamic Proxy Call Filters“ auf IEnumerator.* setzt, und den Schaltflächen „Open XML“, „Validate“, „Save XML file“ und „Apply to assembly“Registerkarte „XML rules“ des Ziels mit einer eingebetteten Regel für die zusammengeführte Assembly BubbleBurst.View, die die Eigenschaft „Dynamic Proxy Call Filters“ auf IEnumerator.* setzt, und den Schaltflächen „Open XML“, „Validate“, „Save XML file“ und „Apply to assembly“Registerkarte „XML rules“ des Ziels mit einer eingebetteten Regel für die zusammengeführte Assembly BubbleBurst.View, die die Eigenschaft „Dynamic Proxy Call Filters“ auf IEnumerator.* setzt, und den Schaltflächen „Open XML“, „Validate“, „Save XML file“ und „Apply to assembly“

Eingebettete XML-Regeln eines Ziels

Solange Regeln noch nicht übernommen sind, bleibt der Bereich beim selben Ziel. Übernehmen Sie sie oder verwerfen Sie sie mit Einstellungen: Nicht übernommene Änderungen verwerfen und neu laden in der Befehlspalette, bevor Sie ein anderes Ziel auswählen oder das Projekt ausführen. Regeldateien, die außerhalb des Projekts liegen, stehen auf der Registerkarte Regeln der Details in der Tabelle.

Engine-Plugins

Plugins für Babel Obfuscator werden je Ziel mit Engine-Plugins: DLL-Pfade konfigurieren in der Befehlspalette oder auf der Registerkarte Plug-ins der Details in der Tabelle festgelegt. Engine-Plugins: Argumentnamen ermitteln liest die Argumentnamen, die ein Plugin deklariert, sodass Sie seine Argumente ausfüllen können. Plugins sind .NET-Code, der innerhalb der Engine läuft. Verwenden Sie deshalb nur Plugins, denen Sie vertrauen.

Einrichtungsbefehle

Die beiden Einrichtungsbefehle konfigurieren ein ganzes Projekt in einem einzigen Schritt, und Verschleierung: Stufe festlegen… wendet eine Schutzstufe auf das ausgewählte Ziel an. Fügen Sie zuerst die Assemblys hinzu und führen Sie dann den Befehl aus, der zur Anwendung passt. Alle drei stehen in der Befehlspalette. Die beiden Einrichtungsbefehle finden Sie außerdem in der Symbolleiste der Tabelle als Öffentliche Verschleierung einrichten und Zusammenführung einrichten.

Befehlspalette, gefiltert nach „Obfuscation: Set“, mit den Einträgen „Obfuscation: Setup public obfuscation (all assemblies)“, „Obfuscation: Setup merge into main assembly“ und „Obfuscation: Set level...“Befehlspalette, gefiltert nach „Obfuscation: Set“, mit den Einträgen „Obfuscation: Setup public obfuscation (all assemblies)“, „Obfuscation: Setup merge into main assembly“ und „Obfuscation: Set level...“Befehlspalette, gefiltert nach „Obfuscation: Set“, mit den Einträgen „Obfuscation: Setup public obfuscation (all assemblies)“, „Obfuscation: Setup merge into main assembly“ und „Obfuscation: Set level...“

Die Einrichtungsbefehle in der Befehlspalette

BefehlWirkung
Verschleierung: Zusammenführung in die Hauptassembly einrichtenFührt alle anderen Ziele mit der Hauptassembly zusammen, sodass das Projekt eine einzige Ausgabedatei erzeugt. Die Hauptassembly ist die einzige .exe des Projekts oder, wenn es keine oder mehrere gibt, das erste Ziel. Eine Assembly, die die Engine nicht zusammenführen kann, bleibt unverändert.
Verschleierung: Öffentliche Verschleierung einrichten (alle Assemblys)Bereitet eine Gruppe von Assemblys, die gemeinsam ausgeliefert werden, darauf vor, dass ihre öffentlichen Symbole umbenannt werden. Jedes Ziel erhält eine XML-Regel namens obfuscate public und schreibt seine Umbenennungs-Map. Ein Ziel, das ein anderes Ziel unter seinen Abhängigkeiten zum Zusammenführen, Einbetten oder Referenzieren hat, liest dessen Map über eine Map-Verknüpfung.
Verschleierung: Stufe festlegen…Wendet eine von drei Schutzstufen auf das ausgewählte Ziel an.

Die beiden Einrichtungsbefehle überspringen Paketziele (.apk, .appx und .xap). Keiner der drei Befehle wird ausgeführt, solange ein Auftrag läuft oder eine Änderung noch nicht übernommen ist. Sie ändern das geöffnete Projekt, speichern es aber nicht. So können Sie das Ergebnis zuerst auf der Zeichenfläche, in der Tabelle und im Eigenschaftenbereich prüfen.

Schutzstufen

Verschleierung: Stufe festlegen… in der Befehlspalette wendet eine Stufe auf das ausgewählte Ziel an. Verschleierungsstufe festlegen im Zeilenmenü der Tabelle wendet sie auf alle ausgewählten Zeilen an. Die Stufen setzen die folgenden Optionen und lassen alle anderen unverändert:

StufeSchutz
LeichtUmbenennung von Typen, Methoden, Feldern, Eigenschaften und Ereignissen. Der Kontrollfluss, die Verschlüsselungsfunktionen und die Schutzmaßnahmen gegen Analyse sind ausgeschaltet.
AusgewogenUmbenennung, Kontrollflussverschleierung mit dem Algorithmus goto, Zeichenfolgenverschlüsselung und ILDASM-Unterdrückung.
MaximalUmbenennung, Kontrollflussverschleierung mit goto, switch, case, if und Chained State, Zeichenfolgenverschlüsselung mit dem Algorithmus „stream“, Wertverschlüsselung, MSIL-Verschlüsselung, Manipulationserkennung, Debugging-Schutz und ILDASM-Unterdrückung. Wenn die Lizenz den Algorithmus „stream“ nicht einschließt, wird die Standard-Zeichenfolgenverschlüsselung verwendet.

Wenden Sie nach einer höheren Stufe eine niedrigere an, werden die zusätzlichen Schutzmaßnahmen wieder ausgeschaltet. Eine Stufe ist ein Ausgangspunkt: Sie können danach jede einzelne Option ändern.

Maximal schaltet die MSIL-Verschlüsselung ohne Filter ein. Sie verschlüsselt dann nur die Methoden, die Sie mit einer XML-Regel oder dem Attribut Obfuscation auswählen. Um nach Namespace oder Typ zu verschlüsseln, fügen Sie in der Gruppe Codeverschlüsselung einen Filter zu Msil Encryption hinzu. Siehe Codeverschlüsselung.

Eine Stufe ändert nichts an der Umbenennung öffentlicher Symbole, an Map-Dateien, an der Zusammenführung oder an der Signierung. Diese hängen davon ab, wie die Assemblys ausgeliefert werden, und dafür sind die Einrichtungsbefehle da.

Last updated on