2011-04-25 2 views
0

J'ai vu beaucoup de codes obfusqués, cependant, récemment, je suis tombé sur ce code: paste2.org. Ce dernier utilise arguments.callee.toString().replace(/[\s\'\"\)\}\]\[\;\.\{\(]/g, "").length; pour empêcher le programmeur de simplement remplacer eval() par document.write ou quelque chose de similaire. Je me demandais comment j'obscurcis le code de cette façon moi-même? Y a-t-il un outil pour ça? (p.s. note que arguments.callee.toString().repl[..] est appelé deux fois) Aller plus loin. Même lorsque vous obtenez cette étape, le code est complètement désordonné. Les noms de variable/fonction sont randomisés, tandis que les chaînes sont en désordre complet et ressemblent à ceci: $(kj49f+4kd+fgdff+hgd25+fh2fg5+adb5) qui évalue simplement à $('.wrapper .foo[name"bar"]'). Qu'est-ce qui était utilisé pour faire ça? Je suis récemment tombé sur jscrambler.com qui est payé service d'obfuscation JS. Je me demandais si c'était la chose qui était utilisée pour obscurcir le code.inconnu outil d'obfuscation JS

+0

À quelle fin? Si votre code offre quelque chose d'une valeur significative, de sorte que quelqu'un voudrait voler/rétro-ingénierie à votre détriment, alors la même chose aurait lieu même après obfuscation. Comme vous l'avez souligné vous-même, même si la chaîne «était un désordre complet», vous étiez capable de déterminer les valeurs d'origine, et d'autres aussi. Tout ce que vous voulez protéger ne peut vraiment être protégé que sur le serveur. – Matt

+1

Commentaire redondant, @Matt. Oui, je comprends qu'il est impossible d'obscurcir un tel code, qu'il serait impossible de le débloquer. Tout ce que je veux faire est de corrompre le code aussi mauvais que possible - si quelqu'un le veut et ne veut pas le payer, laissez-les travailler pour cela. – Gajus

Répondre

0

Après quelques semaines de recherche, j'ai découvert que le programme utilisé pour obscurcir le code dans l'exemple est http://jscrambler.com/. C'est en fait un logiciel commercial. Est-ce que je le recommande? Hm. Pas sûr, comme j'écris ce commentaire (21 mai 2011), il est encore à un stade assez précoce de développement & J'ai fait face à plusieurs problèmes. Cependant, ils sont assez rapides pour les régler une fois qu'ils ont été signalés.