Skip to Content
Neue Version 12 verfügbar 🎉

Typische Arbeitsabläufe

Drei gängige Arten, ein Projekt einzurichten, von einer einzelnen Anwendung bis zu einer Gruppe von Bibliotheken, die gemeinsam ausgeliefert werden.

Eine einzelne Anwendung schützen

Gehen Sie so vor, wenn Sie eine einzelne Assembly ausliefern oder eine Anwendung, deren Bibliotheken Sie nicht zusammenführen möchten.

Anwendung hinzufügen

Ziehen Sie die .exe- oder .dll-Datei auf die Zeichenfläche oder klicken Sie auf + Assembly hinzufügen.

Schutzstufe wählen

Führen Sie in der Befehlspalette Verschleierung: Stufe festlegen… aus und wählen Sie Ausgewogen als Ausgangspunkt. Öffnen Sie den Eigenschaftenbereich, um das Ergebnis zu prüfen, etwa um einen anderen Algorithmus für die Zeichenfolgenverschlüsselung zu wählen.

Map-Datei behalten

Aktivieren Sie im Eigenschaftenbereich in der Gruppe Map-Dateien das Kontrollkästchen Schreibt seine Umbenennungs-Map. Mit der Map können Sie die Stacktraces, die Ihre Kunden Ihnen senden, im Stack-Decoder decodieren. Bewahren Sie die Map bei Ihrem Build auf, nicht bei der Anwendung.

Ausführen und prüfen

Klicken Sie auf Projekt ausführen. Sehen Sie sich die Registerkarte Probleme im Bereich „Aktivität“ und den Verschleierungswert auf der Karte des Ziels an. Starten Sie dann die geschützte Anwendung mit Ausführen > Verschleierte App starten (Ctrl+F5, Cmd+F5 unter macOS) und probieren Sie sie aus.

Verwendet die Anwendung Reflexion, Serialisierung oder Datenbindung über Namen, müssen manche Symbole ihre Namen behalten. Schließen Sie sie mit XML-Regeln auf der Registerkarte XML-Regeln oder mit dem Attribut Obfuscation in Ihrem Code aus.

Bibliotheken mit der ausführbaren Hauptdatei zusammenführen

Gehen Sie so vor, um statt einer ausführbaren Datei und ihrer privaten Bibliotheken eine einzige Datei auszuliefern. Ist Internalize eingeschaltet, werden die zusammengeführten Typen internalisiert, sodass auch ihre Namen verschleiert werden können. Siehe Assembly-Zusammenführung.

Alle Assemblys hinzufügen

Fügen Sie die ausführbare Datei und die Bibliotheken, die Sie zusammenführen möchten, alle als Ziele hinzu.

Zusammenführung einrichten

Führen Sie in der Befehlspalette Verschleierung: Zusammenführung in die Hauptassembly einrichten aus oder klicken Sie in der Tabelle auf Zusammenführung einrichten. Die Bibliotheken werden zu Zusammenführungseingaben der ausführbaren Datei. Eine Assembly, die die Engine nicht zusammenführen kann, bleibt ein eigenes Ziel.

Graph prüfen

Auf der Zeichenfläche sind die Bibliotheken über Linien mit der Beschriftung ZUSAMMENFÜHREN mit der ausführbaren Datei verbunden. In der Tabelle ist die ausführbare Datei die einzige Zeile, und die Anzeige lautet zum Beispiel 1 Ziel · 4 zusammengeführt. Öffnen Sie die Registerkarte Eingaben ihrer Zeile, um die zusammengeführten Dateien zu sehen.

Schutz festlegen und ausführen

Wählen Sie eine Stufe für die ausführbare Datei und führen Sie das Projekt aus. Der Ausgabeordner enthält eine einzige Assembly.

Um eine Bibliothek als Ressource in der ausführbaren Datei abzulegen, statt ihren Code zusammenzuführen, ändern Sie ihren Typ auf der Registerkarte Eingaben oder im Popover der Abhängigkeit in Einbetten. Siehe Abhängigkeiten.

Eine Gruppe von Bibliotheken mit öffentlicher Umbenennung verschleiern

Gehen Sie so vor, wenn Sie mehrere Assemblys ausliefern, die einander aufrufen, etwa ein Framework und die darauf aufbauenden Anwendungen, und auch ihre öffentliche API umbenannt werden soll. Jede Assembly muss die neuen Namen der anderen verwenden, deshalb tauschen die Ziele Umbenennungs-Maps aus.

Assemblys hinzufügen

Fügen Sie jede Bibliothek und jede Anwendung, die sie verwendet, als Ziel hinzu.

Voneinander abhängige Ziele verbinden

Ziehen Sie für jede Bibliothek von ihrem rechten Anker zum linken Anker eines Ziels, das sie aufruft, und wählen Sie Map-Datei weitergeben. Die Bibliothek läuft nun zuerst und schreibt ihre Map, und das Ziel, das sie verwendet, liest die Map.

Öffentliche Verschleierung einrichten

Führen Sie Verschleierung: Öffentliche Verschleierung einrichten (alle Assemblys) aus oder klicken Sie in der Tabelle auf Öffentliche Verschleierung einrichten. Jedes Ziel erhält die Regel obfuscate public und schreibt seine Umbenennungs-Map. Ziele, die ein anderes Ziel unter ihren Abhängigkeiten haben, erhalten die Map-Verknüpfung automatisch.

Reihenfolge prüfen

Fügen Sie in der Tabelle die Spalten Ablauf · Schritt und Ausführen nach hinzu und schalten Sie Nach Ablauf gruppieren ein. Jede Bibliothek steht vor den Zielen, die ihre Map lesen.

Ausführen

Führen Sie das Projekt aus. Bewahren Sie alle Map-Dateien des Laufs auf: Sie brauchen sie, um Stacktraces zu decodieren und um einen späteren Build einer Anwendung gegen dieselbe Version einer Bibliothek zu verschleiern.

Details von CrossAssembly1App.dll auf der Registerkarte „Maps“ mit der Anzahl 1: der Eintrag CrossAssembly1.dll.map.xml mit der Markierung „From CrossAssembly1.dll“ und einem PapierkorbsymbolDetails von CrossAssembly1App.dll auf der Registerkarte „Maps“ mit der Anzahl 1: der Eintrag CrossAssembly1.dll.map.xml mit der Markierung „From CrossAssembly1.dll“ und einem PapierkorbsymbolDetails von CrossAssembly1App.dll auf der Registerkarte „Maps“ mit der Anzahl 1: der Eintrag CrossAssembly1.dll.map.xml mit der Markierung „From CrossAssembly1.dll“ und einem Papierkorbsymbol

Eine Anwendung, die die Map ihrer Bibliothek liest

Wurde eine Bibliothek in einem früheren Build verschleiert und gehört sie nicht zum Projekt, fügen Sie ihre Map mit Map-Datei hinzufügen… unter Weitere Map-Dateien im Eigenschaftenbereich jedes Ziels hinzu, das sie verwendet. Siehe Assemblyübergreifende Umbenennung.

Umbenennungs-Maps und Statistikdateien enthalten die ursprünglichen Namen Ihres Codes. Bewahren Sie sie bei Ihren Build-Unterlagen auf und liefern Sie sie nie mit der Anwendung aus.

Das Projekt außerhalb von Babel Desktop erstellen

Ein von Babel Desktop gespeichertes Projekt ist eine MSBuild-Datei. Sobald es so läuft, wie Sie es möchten, erstellen Sie es auf einem Buildserver mit der MSBuild-Aufgabe. Ablaufkanten und Map-Verknüpfungen werden als Abhängigkeiten zwischen MSBuild-Zielen gespeichert, sodass MSBuild die Ziele in derselben Reihenfolge ausführt.

Last updated on