Obfuscation de jeu HTML5

8

Les jeux HTML5 ont un code source visible. Existe-t-il un moyen de les rendre comme un fichier swf?

Comment masquer l'algorithme de jeu?

Que pensez-vous du plug-in et de l'obfuscation de Firefox JavaScript Deobfuscator ?

Rustam
la source
1
Si vous nous indiquez la raison pour laquelle vous souhaitez masquer, nous pouvons vous donner une bien meilleure réponse, possible (probablement), vous montrer que vous n'avez pas réellement besoin de cacher votre code.
jcora
3
Un fichier SWF n'est pas non plus protégé. Vous pouvez facilement décompiler et extraire tous les actifs et le code. Il y a des obscurcisseurs, mais ils n'arrêtent pas quelque chose de vraiment déterminé.
bummzack
De combien de temps avez-vous besoin pour restaurer complètement l'application swf après la décompilation?
Rustam
Aussi, pourquoi voudriez-vous?
brice

Réponses:

10

Si vous voulez protéger votre source, ne l'écrivez pas en HTML / Javascript?

Une partie des choses vraiment sympa sur le web car tout est lisible par l'homme. Cela en fait une excellente ressource d'apprentissage. Si vous me dites que vous n'avez jamais regardé la source d'un site Web pour savoir comment il fait quelque chose, n'hésitez pas à me dire que je me trompe.

Je suis sur le point de partager l'amour avec le code, sinon je ne répondrais pas aux questions sur un site Web sur l'offre d'aide, gratuitement, n'est-ce pas?

Edit: j'ai dit ce que j'en pense, y a-t-il un moyen de le rendre illisible? Non, pas en JS / HTML pur. La raison en est simple: quelque part sur la ligne, il devient lisible. Si vous l'obscurcissez, un désobfuscateur vous récupère. Si vous utilisez un chiffre ou le traduisez d'une manière ou d'une autre, à un moment donné, vous devez le traduire à nouveau en javascript (et le code pour le traduire doit également être dans votre source!).

Le mieux que vous puissiez faire est de vous protéger contre le vol de la bande passante et de masquer si vous en ressentez vraiment le besoin, mais cela n'empêchera pas les gens s'ils sont vraiment déterminés.

Matt Kemp
la source
6
flash et java peuvent être décompilés, les binaires peuvent être désassemblés, javascript peut être désobfusqué. Votre source n'est pas protégée simplement parce que vous ne l'avez pas écrite en javascript.
Esailija
2
@Esailija l'effort moyen nécessaire n'est pas le même, sauf que vous êtes un ingénieur inversé / expert en sécurité / hacker / waht formé.
daemonfire300
3
Juste une citation de n'importe où: "Qu'est-ce qu'un homme peut faire à n'importe quel autre homme." et j'y ajoute: "Avec la bonne intention et la bonne volonté, rien n'est vraiment protégé."
Ricardo Souza
eh bien je ne dirais pas que c'est vraiment une bonne chose; plus d'une situation de "bénédiction et malédiction"
CobaltHex
Je l'appellerais son «mécanisme de base»: il est vraiment facile de voler sur le Web. C'est pourquoi nous avons la rapidité et la complexité de l'innovation que nous faisons. Newton, Picasso, Eliot et je suis sûr que plus ont tous inventé des maximes autour du vol direct, même si noblement justifiées par les épaules de géants. Shakespeare était excellent au vol.
Matt Kemp
5

Vous pouvez en mettre beaucoup sur le serveur via Node.js et simplement renvoyer les résultats des fonctions. mais à part ça, c'est comme le dit Matt Kemp. Le code qui s'exécute est lisible par un humain, il est impossible de le cacher.

David Gillen
la source
2

Même si vous n'obscurcissez pas votre code, HTML / JS est déjà à peu près au même niveau de difficulté pour effectuer une rétro-ingénierie que SWF.

Les fichiers SWF contiennent le code Actionscript original, (IIRC), avec des commentaires, etc., sauf s'ils sont obscurcis. Les noms des objets, etc. sont également contenus dans le SWF.

Les décompilateurs / recompilateurs SWF existent, et ce n'est pas parce que vous ne pouvez pas le voir avec un éditeur de texte que SWF est à l'abri de l'ingénierie inverse.

En fait, le niveau d'obfuscation n'est vraiment pas différent d'un SWF. Vous pouvez obscurcir votre code JS à l'aide d'un obscurcisseur, mais cela rend les rapports de bogues plus difficiles à interpréter.

Vous voulez probablement concentrer vos efforts sur la fabrication de quelque chose qui vaille la peine, plutôt que d'empêcher les gens de le voler. De nombreux fichiers SWF sont arrachés et utilisés à des fins non autorisées (avec des graphiques modifiés, etc.)

MarkR
la source
2

Utilisez le compresseur gratuit Yahoo YUI.

Je l'utilise car il compresse considérablement mon code (y compris la suppression de commentaires et d'espaces inutiles). Cela me permet de commenter et de structurer mon code exactement comme je veux sans me soucier de la facilité avec laquelle je le fais pour les voleurs.

De plus, si vous souhaitez lire le Javascript pour un site complexe après que tous les noms de variables et de fonctions ont été essentiellement détruits - eh bien, bonne chance avec ça. Il est beaucoup plus difficile de comprendre ce que fait le code lorsque vous n'avez aucune indication.

(Bien qu'avec le compresseur YUI, vous devrez peut-être augmenter ses fonctionnalités pour également vous débarrasser des noms de fonctions. J'ai modifié la façon dont je nomme les fonctions spécifiquement dans le but de supprimer automatiquement et sélectivement la plupart des noms de fonctions. Cela peut nécessiter un code personnalisé de votre côté .)

DAG
la source
1

Non, et il n'y a vraiment aucune raison de le faire! Si vous voulez vendre votre travail, vous pouvez le faire sans obstruction. Les gens paient pour le contenu, pas pour le code. Vendez vos œuvres d'art, votre histoire, votre musique, etc. et distribuez le code librement (il l'est déjà, de toute façon).

alekop
la source
1

Les jeux HTML5 ont un code source visible. Existe-t-il un moyen de les rendre comme des fichiers swf?

Oui, utilisez Flash et traduisez votre code en ActionScript.

Comment cacherait-on les algorithmes de jeu?

En termes absolus, vous ne pouvez pas faire ça.

Que pensez-vous du plug-in et de l'obfuscation de Firefox JavaScript Deobfuscator?

L'obfuscation n'est rien d'autre qu'une barrière très mince pour quelqu'un qui voudrait vraiment voler votre code. Pourtant, il est simple à configurer, il peut repousser les scripts les plus stupides, et c'est la seule chose que vous pouvez faire pour protéger le code côté client. Il a l'avantage supplémentaire de réduire la taille du script (téléchargement plus rapide) et peut même optimiser le code (exécution plus rapide). Vérifiez cette entrée sur Stack Overflow pour plus de détails sur l'obscurcissement. Résumé: vous avez beaucoup d'options. J'ai personnellement essayé UglifyJS et j'ai eu des résultats très satisfaisants.

Laurent Couvidou
la source
0

Comme nous le savons tous, HTML5 s'appuie sur JavaScript comme langage de programmation. En théorie, tous les outils qui protègent JavaScript devraient fonctionner sur HTML5.

Le seul outil que je connaisse qui prend actuellement en charge HTML5 dans le contexte du développement de jeux est JScrambler . Je ne sais pas si d'autres fonctionneront.

Pour le marsouin de la discussion, l'obscurcissement n'est pas une solution miracle. Nous avons un logiciel compilé chiffré, protégé par plusieurs solutions anti-copie et nous pouvons toujours les obtenir sans payer. Cela dit, je crois que l'obscurcissement bat en laissant votre code ouvert pour que quiconque puisse le lire lorsque vous n'avez pas l'intention.

J'adore vraiment l'open source et je soutiens le mouvement, mais parfois la fermeture de la source a beaucoup de sens.

rmribeiro
la source
0

Vous pouvez utiliser du code natif. Programmation en C ++ et compilation pour HTML5. Cocos2d-X est une bibliothèque qui fonctionne sur iOS, Android et HTML5. Votre code sera masqué.

vgonisanz
la source