|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
secureSWF BenutzerhandbuchInhalt
EinführungKindisoft secureSWF v3.2 bietet die folgenden Features, damit Sie Ihr ActionScript komfortabel schützen können:
InstallationUm secureSWF zu installieren, extrahieren Sie die Dateien einfach in einen Ordner Ihrer Wahl. Sie müssen lediglich sicherstellen, dass Sie die vollen Schreibrechte in diesem Ordner besitzen. Danach können Sie secureSWF starten, indem Sie secureSWF.exe in Windows, secureSWF.app in OS X, und secureSWF in Linux (Sie müssen die Datei ggf. erst ausführbar machen) doppelklicken. secureSWF nimmt keine Änderungen an Ihrem System vor (wir sehen das als Feature). Daher können Sie es durch ein Löschen des Ordners deinstallieren. Minimale SystemvoraussetzungenDie minimalen Systemvoraussetzungen für secureSWF sind:
secureSWF nutzenDie grafische Nutzeroberfläche von secureSWF besteht aus vier Hauptsektionen; Projektdateien, Identifier-Umbenennung, Schutzoptionen, und Zusammenfassung der Operationen.
ProjektdateiensecureSWF wurde entwickelt, um entweder eine einzelne SWF-Datei, oder mehrere, miteinander interagierende SWF-Dateien zu verarbeiten. Die Projektdateien-Sektion ermöglicht es Ihnen, eine oder mehrere SWF-Dateien zum Schutz hinzuzufügen. Um zu beginnen, klicken Sie auf den "Hinzufügen"-Button und wählen Sie die SWF-Datei(en) aus, die Sie schützen möchten. Alternativ können Sie die SWF-Datei auch aus Ihrem Dateibrowser in secureSWF hineinziehen.
Jetzt können Sie direkt auf den "SWF-Dateien schützen"-Button in der oberen rechten Ecke klicken, um die SWF-Dateien zu schützen und zu speichern. Alternativ können Sie auch eines der Schutzpresets auswählen, das Ihnen zusagt. Die Dateien speichernSie können mit den Optionen im Kasten "Ausgabeoptionen" die Methode auswählen, mit der die neuen geschützten SWF-Dateie(en) gespeichert werden sollen. Dieser Schritt ist optional, da secureSWF nach den Speicheroptionen fragen wird, wenn Sie auf den "SWF-Dateien schützen"-Button klicken und sie noch nicht eingestellt wurden. Es folgt eine Beschreibung jeder Methode:
SchutzpresetsSie müssen sich nicht mit den Einstellungen auseinandersetzen und können auch einfach eines der Schutzpresets wählen. Sie können secureSWF so einstellen, dass es eine aggressiv geschützte SWF-Datei ausgibt, oder etwa die Dateigröße verringert. Es folgt eine Beschreibung jedes Presets:
Am Aggressivsten: Standard (Default-Einstellung): Sicher: Beste Größe: Test: Umbenennung von IdentifiernEines der mächtigsten Features in secureSWF ist die Möglichkeit, so gut wie jeden Identifier in Ihrer SWF-Datei umzubenennen, von Variablen und Funktionsnamen bis zu Frame-Labels und Symbolnamen, zusätzlich zu AS3 und AS2-Klassen. Nicht nur das, denn secureSWF entscheidet automatisch, welche Identifier sich sicher umbenennen lassen, und welche nicht. secureSWF kann folgende Identifier umbenennen:
Um Identifier-Umbenennung einzuschalten, stellen Sie sicher, dass unter Identifier-Umbenennung ein Häkchen gesetzt ist. Es gibt 6 Registerseiten (2 für AS3) in der Identifier-Umbenennungssektion:
UmbenennungsstufesecureSWF hilft Ihnen, zu entscheiden, welche Identifier sich sicher umbennen lassen. Sie können die Umbenennungsstufe Normal ändern, um entweder alles umzubenennen oder nur Identifier umzubenennen, die von String-Literalen in keinster Weise referenziert werden.
Aggressives UmbenennenAggressives Umbenennen verwandelt Ihre Identifier in Zeichenketten, die Decompiler aus der Bahn werfen, Code-Formatier täuschen, und vor allem die Leser des Codes verwirren. Wenn dieses Feature eingeschaltet ist, können Identifiernamen einfache Zahlen und Operatoren wie +, /, *, ?, !, und so weiter sein. Neue Identifier können auch Namen erhalten, die aus einem Whitespace wie dem Leerzeichen, Tab, oder vielen weiteren ASCII-Zeichen, die nicht dargestellt werden, bestehen. Aggressives Umbenennen wird eine Ziffer oder eines der 51 Symbole (wie &, $, #, Backspace, Enter, usw.) als erstes Zeichen für den Identifier wählen. Dies stellt sicher, dass die neuen Identifiernamen für ActionScript unzulässig sind. Wenn Sie weniger als 61 Identifier in Ihrer ActionScript-Datei haben, werden alle neuen Namen nur 1 Zeichen lang und entweder eine Zahl oder ein Symbol sein. Mit v3.2 haben Sie jetzt die Kontrolle über Aggressives Umbenennen. In vorigen Versionen war das Feature stets eingeschaltet. Jetzt wird es standardmäßig für AS2 Projekte ein- und für AS3 Projekte ausgeschaltet. Bei der Ausschaltung von Aggressivem Umbenennen werden alle neuen Identifiernamen in Zahlen und ein „_-„ Präfix (Ohne Anführungsstriche) verwandelt. Dies macht die neuen Namen für ActionScript ungültig, aber für XML weiterhin gültig. Sie werden die Option zur Abschaltung von Aggressivem Umbenennen praktisch finden, wenn Sie XML-Daten mit Flex anbinden. ActionScript-Keyword nutzenWenn dieses Feature eingeschaltet ist, wird das Umbenennungsverfahren reservierte ActionScript-Wörter (Keywords) wie switch, case, if, while, do...usw. für 38 der neuen Identifiernamen verwenden. Es wird die Identifier, die diese Namen erhalten werden, zufällig auswählen. Diese Option ist für sowohL AS2- und AS3-Projekte standardmäßig eingeschaltet. UmbenennungsregelnSie können Regeln hinzufügen, um gewisse Identifier von der Umbenennung aus- oder einzuschließen. Regeln setzen Ihre anderen getroffenen Wahlen sowie die automatische Auswahl von secureSWF außer Kraft. Um eine Regel hinzuzufügen, klicken Sie auf den Regeln-Button im Registerreiter Identifier-Umbenennung. Wählen Sie aus, ob diese Regel die gefundenen Identifier ein- oder ausschließen soll. Und geben Sie ein Muster ein, um Identifier auszuwählen. Zum Beispiel - um alle Klassennamen im Paket com.kindisoft.api vor der Umbenennung zu schützen, geben Sie “com.kindisoft.api.*" ein. Und um die Klassen-Member ebenfalls auszuschließen, nutzen Sie “com.kindisoft.api.**”. Klicken Sie dann auf den Hinzufügen-Button. Zusätzliche UmbenennungOptionen in Zusätzliche Umbenennung benennen oder entfernen Identifier, die nicht im Identifier-Baum bzw. der Tabelle erscheinen:
Warnungen nach der VerarbeitungWenn Sie SWF-Dateien verarbeiten (durch das Klicken des "SWF-Dateien schützen"-Buttons) wird secureSWF prüfen, ob immer noch Strings in den SWF-Dateien sind, die zu den Identifiern passen. Wenn ein String zu einem Identifier passt, erscheint eine Warnmeldung. Es wird empfohlen, in diesem Fall "Auswahl löschen und neu verarbeiten" zu klicken. secureSWF wird dies automatisch machen, wenn "Warnungen beheben" aktiviert ist.
Code-SchutzCode-TransformationsecureSWF bietet vier verschiedene Methoden, die separat oder zusammen angewandt werden können, um Ihren Quellcode vor Reverse Engineering und Dekompilierung zu schützen. Jedes Schutzverfahren ist mit allen Flash Playern von v5 bis v9 kompatibel und wurde separat auf die Fähigkeit, alle bekannten Decompiler und Disassembler funktionsunfähig zu machen, getestet. Es folgt eine Beschreibung jedes Verfahrens, zusammen mit seinen Vorteilen und Nachteilen:
Statement-Level-Randomisierung
Strukturiert die Bytecode-Anweisungen, aus denen ein ActionScript-Statement besteht, zufällig neu - wodurch es fast unmöglich wird, den Quellcode zu dekompilieren. Die Beeinträchtigung von Leistung und Dateigröße hängen vom Quellcode ab. Ein Code-Block, der keine Verzweigungen besitzt (zum Beispiel If-Statements, For-Schleifen oder Funktionsdefinitionen) wird kleiner und schneller ausführbar werden. Auf der anderen Seite werden zusätzliche Bytecode-Anweisungen hinzugefügt, um mit den Verzweigungen umzugehen, was keine Beeinträchtigung der Leistung und nur eine kleine Vergrößerung der SWF-Dateigröße zur Folge hat. Kontrollstruktur-VerschleierungFügt zusätzliche Verzweigungen zum Bytecode hinzu, die Decompiler und Disassembler verwirren. Dieses Verfahren erhöht die Dateigröße der SWF-Datei abhängig von der gewählten Intensität. Sie können die Intensität zwischen 10% und 100% setzen: Eine 10%ige Intensität generiert eine kleinere SWF-Datei, während 100%ige Intensität zu einer besser geschützten SWF-Datei führen wird. Unsere Testergebnisse haben ergeben, dass selbst eine 10%ige Intensität in den meisten Fällen alle Decompiler funktionsunfähig macht. Dynamic Code WrappingUmgibt ActionScript-Blöcke mit Verzweigungen und Müll-Bytes, die Decompiler und Disassembler täuschen. Die Beeinträchtigung von Größe und Leistung bei diesem Verfahren ist vernachlässigbar. Sie können Code Wrapping dreistufig einstellen - auf Minimum, Medium oder Maximum. Der Grad des Codewrappings bestimmt die Größe des hinzugefügten Codes. Nutzen Sie maximales Codewrapping für maximalen Schutz, und die Minimaleinstellung für eine kleinere Datei. Abbruch von FunktionsaufrufenErschwert es einem Decompiler, herauszufinden, welche Parameter einem Funktionsaufruf übergeben werden. Zum AnfangOptimierungIndem Identifier in kurze Namen (ein bis zwei Buchstaben) geändert und Code-Optimierungsverfahren angewendet werden, kann secureSWF auch genutzt werden, um SWF-Dateien zu generieren, die kleiner sind und schneller laufen als die Originale. Verschlüsselung von String-LiteralenWährend Verschleierung den logischen Teil des Codes schützt, bleiben wichtige Daten wie Zugangspasswörter und sensible URLs weiterhin klar als Text in der SWF-Datei einsehbar. Angreifer können die SWF-Datei einfach mit einem Texteditor öffnen (und die SWF-Datei, falls komprimiert, vorher dekomprimieren) und die String-Literale in Ihrem Code einsehen. secureSWF ermöglicht Ihnen, die String-Literale in Ihrer SWF-Datei auszuwählen, sie in der SWF-Datei mithilfe eines sehr sicheren, symmetrischen Verschlüsselungsalgorithmus zu verschlüsseln, und sie dann nur bei Gebrauch zur Laufzeit entschlüsseln zu lassen. Bitte beachten Sie, dass dies jedes Mal zu einem zusätzlichen Overhead führt, wenn auf einen String zugegriffen wird. Um dieses Feature zu nutzen, müssen Sie die Strings in der Tabelle finden. Sie zeigt alle String-Literale, die Häufigkeit der Nennung, und ihre Position. Machen Sie ein Häkchen bei den Strings, die Sie verschlüsseln möchten. Zum AnfangVerschlüsseltes Domain LockingDas Einfügen eines verschlüsselten Domain Locks in Ihrer/n SWF-Datei(en) wird die Chancen, dass Ihre Applikation offline oder auf anderen Webseiten genutzt wird, drastisch verringern. Die Applikation wird einfach nicht laufen, wenn sie an einen anderen Ort kopiert wurde, der dem Domain Lock nicht entspricht. Was dieses Feature wirklich verlässlich macht, ist die Tatsache, dass die Orte (URLs oder Domains), auf die Sie das Lock angewandt haben, innerhalb der SWF-Datei verschlüsselt sind und nur zur Laufzeit entschlüsselt werden. Dadurch wird es ein sehr aufwändiger und langwieriger Prozess, herauszufinden, was passiert und es zu ändern - so aufwändig, dass es einfacher ist, die Applikation einfach neu zu schreiben. Domain Locking funktioniert in AS2 und AS3 auf unterschiedliche Art und Weisen. Nutzen Sie bei ActionScript 2 die URL oder ihren Anfang, um den Lock zu aktivieren. Wenn Sie zum Beispiel möchten, dass die Applikation nur auf website.com laufen soll, müssen Sie "http://www.website.com/" und "http://website.com" eingeben. Sie sollten ggf. auch "https://" hinzufügen. Das wird Nutzern gestatten, die Applikation zu verwenden, solange die URL , von der sie läuft, mit "http://www.website.com/" oder "http://website.com/" beginnt. Sie können auch genauer werden und einen Ordner festlegen. Zum Beispiel können Sie "http://www.website.com/ordner/" und "http://website.com/ordner" angeben. Jetzt muss die SWF-Datei im Ordner "ordner" oder seinen Unterordnern auf website.com liegen. Um schließlich Nutzern zu ermöglichen, Ihre Applikation auch lokal auszuführen, fügen Sie "file://" zur Domainliste hinzu. Für ActionScript sollten Sie den Domainnamen nutzen, nicht die URL. Zum Beispiel: Geben Sie "website.com" und "www.website.com" ein, um Nutzern die Ausführung der Applikation zu ermöglichen, wenn sie auf website.com gehostet ist. Sie können bei AS3 keinen Ordner oder Unterordner festlegen. Um Nutzern zu ermöglichen, Ihre SWF-Dateien lokal auszuführen, fügen Sie "localhost" zur Domainliste für ActionScript 3 hinzu. Stellen Sie sicher, dass Sie alle Domains und ihre Variationen hinzugefügt haben, von denen aus Nutzer Ihre Applikation ausführen können sollen. Zum AnfangErstellen von verschlüsselten LoadernDieses Tool hilft Ihnen, die Chancen, dass Ihre SWF-Dateien heruntergeladen oder offline genutzt werden, leicht zu verringern. Es erstellt einfach eine neue SWF-Datei, die Ihre ursprüngliche SWF-Datei dynamisch hineinlädt. Um die Effektivität und Zuverlässigkeit dieses Features zu verbessern, werden Name und Ort der ursprünglichen SWF-Datei verschlüsselt. Zusätzlich dazu können Sie die Dateinamenerweiterung der ursprünglichen SWF-Datei in irgendeinen String ändern (z.B. .mp3 oder .js) Dadurch wird es viel schwerer, die ursprüngliche SWF-Datei im Browsercache zu finden. Der Hauptvorteil der Nutzung dieses Tools liegt darin, dass die Nutzung von SWF-Rippern (Grabbern) verhindert wird, denn diese werden die ursprüngliche SWF-Datei nicht finden. Zum AnfangDas Erstellen von verschlüsselten Loadern
Stack Trace DeobfuscatorDieses Tool hilft Ihnen, Fehlermeldungen von AS3-basierten, verschleierten SWF-Dateien zu übersetzen, wenn sie im Stand-Alone-Player ausgeführt werden. Dieses Tool ist beim Troubleshooting sehr nützlich. Es gibt eine XML-Zuweisungsdatei, die für jede geschützte Datei generiert wird, wenn Zuweisungstabelle generieren eingeschaltet ist. Die Zuweisungstabelle wird mittels des Musters protectedFileName_map.xml generiert und im selben Pfad wie die geschützte Datei gespeichert. Um dieses Tool zu nutzen, klicken Sie auf "Durchsuchen" und wählen Sie die Zuweisungstabelle für die Datei, die den Fehler verursacht hat. Fügen Sie dann die Fehlermeldung des Flash-Players in das Textfeld ein und klicken Sie auf "Trace". Das wird die Verschleierung aufheben und die ursprünglichen Namen der Identifier in der Fehlermeldung anzeigen. Zum AnfangTroubleshootingNach dem Schutz Ihrer SWF-Dateien empfehlen wir es Ihnen, sie zu testen. Wenn die geschützten Dateien nicht richtig funktionieren, müssen meist eine oder mehrere der Schutzoptionen von secureSWF feiner eingestellt werden. Bitte folgenden Sie diesen einfachen Schritten, um herauszufinden, was schiefgegangen ist.
Troubleshooting für die Umbenennung von IdentifiernObwohl secureSWF versucht, automatisch Identifer zu umgehen, die bei der Umbenennung Probleme verursachen könnten, können einige Identifier immer noch Probleme verursachen und erfordern es, dass Sie sie manuell deselektieren. Zunächst setzen Sie bitte den Identifier-Umbenennungslevel auf "Sicher", und vergewissern Sie sich dann, dass "Warnungen automatisch beachten" und "Zuweisungstabelle generieren" eingeschaltet sind. Verarbeiten Sie die Dateien. Wenn die geschützten Dateien weiterhin nicht funktionieren, folgen Sie bitte diesen Schritten:
Command-line InterfacesecureSWF besitzt ein Befehlszeilen-Interface, das für die Stapelverarbeitung und Build-Prozess-Integration genutzt werden kann. Die Nutzung des CLI unterscheidet sich auf jeder Plattform: WindowsSie können das Befehlszeilen-Interface in zwei Formen nutzen:
ssCLI.exe Project_file Output_folder [override_options]
Oder
ssCLI.exe SWF_file Output_folder [options]
Die Optionen überschreiben die Projekteinstellungen und Ausgangseinstellungen von secureSWF wie folgt:
Zum Beispiel:
ssCLI.exe myProject.sspj c:\output\ -slr:off -controlFlow:50 -wrap:3
Lädt die SWF-Dateien und Einstellungen für die Projektdatei, schaltet Statement-Level-Randomisierung ab, setzt Kontrollstrukturverschleierung auf 50%, setzt Dynamic Code Wrapping auf Maximum, und speichert die geschützten Dateien im Ordner c:\output. Sie können für jede Option auch nur den jeweiligen ersten Buchstaben verwenden (außer -safe). Zum AnfangOS XSie können das Befehlszeilen-Interface in zwei Formen nutzen:
ssCLI Project_file Output_folder [override_options]
Oder
ssCLI SWF_file Output_folder [options]
Die Optionen überschreiben die Projekteinstellungen und Ausgangseinstellungen von secureSWF wie folgt:
Zum Beispiel:
ssCLI myProject.sspj output/ -slr:off -controlFlow:50 -wrap:3
Lädt die SWF-Dateien und Einstellungen für die Projektdatei, schaltet Statement-Level-Randomisierung ab, setzt Kontrollstrukturverschleierung auf 50%, setzt Dynamic Code Wrapping auf Maximum, und speichert die geschützten Dateien im Ordner output. Sie können für jede Option auch nur den jeweiligen ersten Buchstaben verwenden (außer -safe).
ssCLI myFile.swf output/ -s:off -c:50 -w:3 -g:on
Zum Anfang LinuxYou can use the command-line interface in two forms:
secureSWF Project_file Output_folder [override_options]
Or
secureSWF SWF_file Output_folder [options]
Sie können das Befehlszeilen-Interface in zwei Formen nutzen:
Zum Beispiel:
ssCLI myProject.sspj output/ -slr:off -controlFlow:50 -wrap:3
Lädt die SWF-Dateien und Einstellungen für die Projektdatei, schaltet Statement-Level-Randomisierung ab, setzt Kontrollstrukturverschleierung auf 50%, setzt Dynamic Code Wrapping auf Maximum, und speichert die geschützten Dateien im Ordner output. Sie können für jede Option auch nur den jeweiligen ersten Buchstaben verwenden (außer -safe).
ssCLI myFile.swf output/ -s:off -c:50 -w:3 -g:on
Zum Anfang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||