Verschleierung von HTML5-Spielen

8

HTML5-Spiele haben sichtbaren Quellcode. Gibt es eine Möglichkeit, sie wie eine SWF-Datei zu machen?

Wie verstecke ich den Spielalgorithmus?

Was halten Sie vom Firefox JavaScript Deobfuscator Plugin und der Verschleierung?

Rustam
quelle
1
Wenn Sie uns den Grund mitteilen, aus dem Sie verschleiern möchten, können wir Ihnen eine viel bessere Antwort geben, die Ihnen (wahrscheinlich) möglich ist und Ihnen zeigt, dass Sie Ihren Code nicht wirklich verstecken müssen.
JCora
3
Auch eine SWF-Datei ist nicht geschützt. Sie können alle Assets und den Code einfach dekompilieren und daraus extrahieren. Es gibt Verschleierer da draußen, aber sie halten nichts auf, was wirklich entschlossen ist.
Bummzack
Wie viel Zeit benötigen Sie, um die SWF-Anwendung nach dem Dekompilieren vollständig wiederherzustellen?
Rustam
Und warum solltest du das wollen?
Brice

Antworten:

10

Wenn Sie Ihre Quelle schützen möchten, schreiben Sie sie nicht in HTML / Javascript?

Ein Teil der wirklich schönen Dinge im Web, da alles für Menschen lesbar ist. Dies macht es zu einer hervorragenden Lernressource. Wenn Sie mir sagen, dass Sie noch nie auf die Quelle einer Website geschaut haben, um zu erfahren, wie sie etwas bewirkt, können Sie mir gerne sagen, dass ich falsch liege.

Ich möchte die Liebe mit Code teilen, sonst würde ich auf einer Website keine Fragen zum kostenlosen Anbieten von Hilfe beantworten, oder?

Bearbeiten: Ich habe gesagt, was ich davon halte, gibt es eine Möglichkeit, es nicht lesbar zu machen? Nein, nicht in reinem JS / HTML. Der Grund dafür ist einfach: Irgendwann wird es lesbar. Wenn Sie es verschleiern, bekommt Sie ein Deobfuscator. Wenn Sie eine Chiffre verwenden oder sie irgendwie übersetzen, müssen Sie sie irgendwann wieder in Javascript übersetzen (und der Code, um sie zurück zu übersetzen, muss sich auch in Ihrer Quelle befinden!).

Das Beste, was Sie tun können, ist, sich vor Bandbreitendiebstahl zu schützen und zu verschleiern, wenn Sie wirklich das Bedürfnis haben, aber es wird die Menschen nicht aufhalten, wenn sie wirklich entschlossen sind.

Matt Kemp
quelle
6
Flash und Java können dekompiliert werden, Binärdateien können zerlegt werden, Javascript kann deobfusciert werden. Ihre Quelle ist nicht geschützt, nur weil Sie sie nicht in Javascript geschrieben haben.
Esailija
2
@Esailija Der durchschnittliche Aufwand ist nicht der gleiche, außer dass Sie ein ausgebildeter Reverse Engineer / Sicherheitsexperte / Hacker / Waht sind.
Daemonfire300
3
Nur ein Zitat von überall: "Was ein Mann tut, kann jeder andere Mann rückgängig machen." und ich füge hinzu: "Mit der richtigen Absicht und dem richtigen Willen ist nichts wirklich geschützt."
Ricardo Souza
Nun, ich würde es nicht wirklich schön nennen. eher eine "Segen und ein Fluch" Situation
CobaltHex
Ich würde es als "Basismechaniker" bezeichnen: Es ist wirklich einfach, im Web zu stehlen. Deshalb haben wir die Geschwindigkeit und Komplexität von Innovationen, die wir machen. Newton, Picasso, Eliot und ich sind sicher, dass alle mehr Maximen um direkten Diebstahl geprägt haben, auch wenn dies durch die Schultern der Riesen edel gerechtfertigt ist. Shakespeare war hervorragend im Diebstahl.
Matt Kemp
5

Sie können viel davon über Node.js auf den Server stellen und einfach die Ergebnisse der Funktionen zurückgeben. aber anders als das ist es wie Matt Kemp sagt. Der Code, der ausgeführt wird, kann von einem Menschen gelesen werden. Es ist unmöglich, ihn auszublenden.

David Gillen
quelle
2

Auch wenn Sie Ihren Code nicht verschleiern, hat HTML / JS bereits den gleichen Schwierigkeitsgrad beim Reverse Engineering wie SWF.

SWF-Dateien enthalten den ursprünglichen Actionscript-Code (IIRC) mit Kommentaren usw., sofern sie nicht verschleiert sind. Namen von Objekten usw. sind ebenfalls in der SWF enthalten.

SWF-Dekompilierer / -Recompiler existieren, und nur weil Sie sie mit einem Texteditor nicht sehen können, bedeutet dies nicht, dass SWF in irgendeiner Weise vor Reverse Engineering sicher ist.

Tatsächlich unterscheidet sich der Grad der Verschleierung nicht von einem SWF. Sie könnten Ihren JS-Code mit einem Obfuscator verschleiern, aber das erschwert die Interpretation von Fehlerberichten.

Sie möchten Ihre Bemühungen wahrscheinlich darauf konzentrieren, etwas zu machen, das es wert ist, gestohlen zu werden, anstatt zu verhindern, dass Menschen es stehlen. Viele SWFs werden abgezockt und für nicht autorisierte Zwecke verwendet (mit geänderten Grafiken usw.)

MarkR
quelle
2

Verwenden Sie den kostenlosen Yahoo YUI-Kompressor.

Ich benutze es, weil es meinen Code drastisch komprimiert (einschließlich des Entfernens von Kommentaren und unnötigen Leerzeichen). Auf diese Weise kann ich meinen Code genau so kommentieren und strukturieren, wie ich es möchte, ohne mir Gedanken darüber machen zu müssen, wie einfach ich es für Diebe mache.

Außerdem, wenn Sie das Javascript für eine komplexe Site lesen möchten, nachdem alle Variablen- und Funktionsnamen im Wesentlichen zerstört wurden - nun, viel Glück damit. Es ist viel schwieriger herauszufinden, was Code tut, wenn Sie keine Hinweise haben.

(Mit dem YUI-Kompressor müssen Sie möglicherweise seine Funktionalität erweitern, um auch Funktionsnamen zu entfernen. Ich habe die Art und Weise, wie ich Funktionen benenne, speziell geändert, um die meisten Funktionsnamen automatisch und selektiv zu entfernen. Dies erfordert möglicherweise benutzerdefinierten Code auf Ihrer Seite .)

DAG
quelle
1

Nein, und es gibt wirklich keinen Grund dazu! Wenn Sie Ihre Arbeit verkaufen möchten, können Sie dies ohne Verschleierung tun. Die Leute bezahlen für Inhalte, nicht für Code. Verkaufen Sie Ihre Kunstwerke, Geschichten, Musik usw. und geben Sie den Code frei weiter (jedenfalls schon).

Alekop
quelle
1

HTML5-Spiele haben sichtbaren Quellcode. Gibt es eine Möglichkeit, sie wie SWF-Dateien zu machen?

Ja, verwenden Sie Flash und übersetzen Sie Ihren Code in ActionScript.

Wie würde man die Spielalgorithmen verstecken?

In absoluten Zahlen kann man das nicht machen.

Was halten Sie vom Firefox JavaScript Deobfuscator Plugin und der Verschleierung?

Verschleierung ist nichts anderes als eine sehr dünne Barriere für jemanden, der es ernst meint, Ihren Code zu stehlen. Trotzdem ist es einfach einzurichten, es kann die dümmsten Script-Kiddies abwehren und es ist das einzige, was Sie tun können, um clientseitigen Code zu schützen. Es hat den zusätzlichen Vorteil, dass es die Skriptgröße reduziert (schnellerer Download) und sogar den Code optimieren kann (schnellere Ausführung). Überprüfen Sie diesen Eintrag im Stapelüberlauf auf Details zur Verschleierung. Zusammenfassung: Sie haben viele Möglichkeiten. Ich persönlich habe UglifyJS ausprobiert und hatte sehr zufriedenstellende Ergebnisse.

Laurent Couvidou
quelle
0

Wie wir alle wissen, basiert HTML5 auf JavaScript als Programmiersprache. Theoretisch sollten alle Tools, die JavaScript schützen, mit HTML5 funktionieren.

Das einzige mir bekannte Tool, das derzeit HTML5 im Rahmen der Gaming-Entwicklung unterstützt, ist JScrambler . Ich bin mir nicht sicher, ob andere funktionieren werden.

Für den Schweinswal der Diskussion ist Verschleierung keine Silberkugel. Wir haben Software, die verschlüsselt kompiliert, mit mehreren Anti-Kopier-Lösungen geschützt ist und diese trotzdem ohne Bezahlung erhalten kann. Das heißt, ich glaube, dass die Verschleierung besser ist, als Ihren Code offen zu lassen, damit jeder ihn lesen kann, wenn Sie dies nicht beabsichtigen.

Ich liebe Open Source wirklich und unterstütze die Bewegung, aber manchmal macht es sehr viel Sinn, die Quelle zu schließen.

rmribeiro
quelle
0

Sie können nativen Code verwenden. Programmieren unter C ++ und Kompilieren für HTML5. Cocos2d-X ist eine Bibliothek, die unter iOS, Android und HTML5 funktioniert. Ihr Code wird ausgeblendet.

vgonisanz
quelle