Question

J'ai écrit (la plupart) une application dans Flex et je suis soucieux de protéger le code source.J'ai lancé une démo de Décompilateur swf Trillix et j'ai ouvert le fichier swf qui a été installé dans mon répertoire Program Files.J'ai vu que tous les packages ActionScript que j'avais écrits étaient là.Je ne suis pas trop préoccupé par les packages, même s'il y a une quantité importante de code, car ils semblent encore assez inutilisables sans les fichiers mxml.Je pense qu'ils sont convertis en actionscript, ou du moins je l'espère.Cependant, j'aimerais toujours explorer l'obscurcissement.

Quelqu'un a-t-il une expérience avec les obfuscateurs Flash/Actionscript 3/Flex ?Pouvez-vous me recommander un bon produit ?

Était-ce utile?

La solution

Voici ce que je ferais.

  • Compilez votre application dans un fichier SWF.Chiffrez ensuite le SWF à l’aide d’AES.

  • Créez une application "wrapper" qui charge le SWF chiffré dans un ByteArray à l'aide d'URLLoader

  • Utilisez le as3crypto bibliothèque pour décrypter le swf au moment de l'exécution.

  • Une fois déchiffré, utilisez Loader.loadBytes pour charger le swf déchiffré dans l'application wrapper.

Cela rendra beaucoup plus difficile l’obtention de votre code.Pas impossible, mais plus difficile.

Pour les applications AIR, vous pouvez laisser le fichier SWF chiffré lors de la livraison de l'application à l'utilisateur final.Vous pouvez ensuite fournir une clé d'enregistrement contenant la clé utilisée pour déchiffrer le SWF.

Voici également un lien vers un obfuscateur AS3.Je ne suis pas sûr de savoir à quel point cela fonctionne bien.http://www.ambiera.com/irrfuscator/index.html

Autres conseils

La procédure suggérée par Maclema n'empêchera pas vraiment un attaquant d'obtenir la source - "l'application wrapper" devra être déchiffrée pour que l'attaquant puisse découvrir que vous utilisez AES (ou tout autre algorithme) et obtiendra le clé de déchiffrement de la même manière (car elle doit être en texte clair quelque part).Une fois qu’il l’aura, il pourra décrypter facilement votre fichier SWF.

La seule solution fiable (enfin...) est une sorte d'obfuscateur - nous utilisons Amayeta qui fonctionne pour Flex dans la dernière version - veuillez consulter http://www.amayeta.com/software/swfencrypt/ .

Eh bien, à mon avis, la solution la plus simple et la plus sûre est un mélange de réponse de Maclema et de Borek :

L'obscurcissement du code peut être un gros casse-tête si vous ne l'avez pas inclus dans votre processus dès le départ et si votre application est assez volumineuse :il est probable que l'obfuscation corrompt votre application si vous avez utilisé des packages distants (et ne l'avez pas déclaré à l'obfuscateur) si vous avez utilisé de nombreuses variables non typées dans des objets ou des classes dynamiques....

Donc:si vous appliquez la solution de Maclema sur votre grande application et utilisez l'obscurcissement sur votre wrapper (qui est une petite application susceptible d'être très facile à obscurcir), votre code sera le plus sûr et le moins compliqué.Seul un pirate très en colère prendrait le temps de procéder à une ingénierie inverse de l'obscurcissement pour ensuite décrypter le paquet....Eh bien, si quelqu'un veut tellement votre code d'application, c'est soit lié à la CIA, soit vous êtes déjà très riche (ou les deux)

merci à tous pour vos réponses

J'ai récemment sorti un jeu iOS et Android utilisant Flash.J'ai cherché sur Internet un bon programme gratuit pour protéger le code source de mon SWF et je n'ai rien trouvé, alors j'en ai écrit un.Il est encore en développement et « à utiliser à vos risques et périls », mais cela a fonctionné pour moi.

Il est publié sur github.Vérifiez-le et dites-moi ce que vous en pensez.

https://github.com/Teesquared/flasturbate

J'ai téléchargé un binaire Windows mais je vous recommande de suivre les instructions pour le construire vous-même si vous souhaitez l'essayer.

Cet obfuscateur fonctionne directement sur le fichier SWF.Actuellement, il ne renomme que les symboles, mais il repose sur un cadre qui pourrait prendre en charge la modification des bytecodes à l'avenir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top