Comment obscurcir le code Java rapidement?
Comment obscurcir le code rapidement. J'ai un très petit Application Java et je veux livrer l'obfuscation de code à mon client. J'ai beaucoup entendu parler de ProGuard d'obfuscation de code et l'ai téléchargé, mais ne sait pas comment obscurcir mon "abc.jar" fichier.
J'ai vérifié son site web, mais il contient beaucoup de documents à lire. Je n'ai pas besoin lourds de l'obscurcissement. J'ai juste besoin de dissimuler que, tout simplement, de changer le nom des variables, des méthodes et des classes pour certains illisible. Je sais ProGuard fournir tout cela avec des tonnes d'autres fonctionnalités aussi.
T1. Si quelqu'un pourrait-il me dire s'il vous plaît quelques simples obfuscators ou quelques étapes simples pour utiliser proguard de sorte que je peux juste à l'entrée "abc.jar" et il renvoie "obfuscate_abc.jar" ou quelque chose de simple comme ça.
T2. Une chose de plus, comme mon programme Java utilise des bibliothèques externes, dois-je donc besoin de dissimuler ces bibliothèques trop?
T3. Eclipse ou NetBeans plugin disponible pour cette dissimulation?
J'ai aussi entendu dire que l'on ne devait retenir la table de mappage de fichier avec nous afin que dans l'avenir on peut corriger ou de les modifier de code masqué par le premier de brouillage avec l'aide de la cartographie de table qui a été créé au moment de l'obscurcissement.
T4. Donc, encore une question est de savoir Pourquoi avons-nous besoin pour garder que le mappage de table avec nous? Nous ne pouvons tout simplement de conserver une copie de l'onu-obfuscation application, afin d'apporter des modifications à ce que (si nécessaire, dans l'avenir). Est-il une raison de conserver ce mappage de fichier de la table avec nous?
Christopher a dit, il y a un manuel, on ne peut pas (et ne pas le lire pour vous)
Pourquoi ne pas prendre un coup d'oeil à l'amende plein d'exemples dans le proguard.sourceforge.net/manual/examples.html et ensuite poser une question sur quelque chose de spécifique que vous avez des problèmes avec?
par le temps que l'OP a lire (et +1) toutes les réponses, il pourrait avoir 'lu sur le site" et obscurci son code
Je voudrais réfléchir à deux fois sur l'introduction de nouvelles technologies de deux secondes avant l'expédition avec le code non testé la technologie à un client.
OriginalL'auteur Yatendra Goel | 2010-01-23
Vous devez vous connecter pour publier un commentaire.
Aller juste pour ProGuard, c'est certainement un bon outil (recommandé dans beaucoup de réponses ici, AINSI comme le cette une, cette une et cette une).
Pas besoin à mon humble avis (même pas de mentionner que vous ne pouvez pas).
Je préfère vous suggérons d'utiliser le Tâche Ant ou la proguard-maven-plugin. Voir cette question sur le plugin maven si nécessaire.
Oui, pour "traduire" stacktrace.
ProGard
a me perdre je ne sais pas combien de temps à regarder râteliers à fusils. Votre réponse pourrait ainsi venir avec une prescription de Ritaline.OriginalL'auteur Pascal Thivent
J'ai essayé ce à partir de zéro. Il devrait vous obtenir a commencé. Je pense que la clé est de comprendre les "options" dans le fichier de configuration.
L'aide de ce code:
J'ai créé un Example.jar. J'ai copié le proguard.jar à partir de la ProGuard répertoire lib, et de l'exécution de cette ligne de commande
où maconfig.pro contient:
Ce produit ExampleOut.jar qui contient les mêmes fonctionnalités et est brouillée (vérifié avec JAD). Notez que je n'ai pas utiliser un manifeste, afin de tester les fonctionnalités, je unjarred et testé la classe. L'exécution de points d'accès dans les bocaux sont laissés au lecteur.
Il y a beaucoup plus garder les options répertoriées dans la section " Utilisation de la.
OriginalL'auteur Michael Easter
Vous avez seulement besoin d'occulter les autres bibliothèques dans le cas où vous avez besoin de les protéger contre tout ce que vous pensez que l'obfuscation est fait pour votre code. Toutefois, vous devriez lire les licences de ces autres bibliothèques pour voir si ils vous empêcher de distribuer des versions modifiées.
OriginalL'auteur Paul Clapham
concernant T4: La cartographie est utilisée lorsque les utilisateurs de vous envoyer des rapports de bugs qui contiennent exception stacktraces de l'obfuscation de code. ProGuard permet de traduire ces stacktraces en arrière à l'original de la classe des noms et des numéros de ligne, si vous avez la cartographie.
OriginalL'auteur x4u
Juste de répondre à T4...
Il y a une bonne raison de garder la cartographie. Si le client vous envoie un stacktrace, il peut être très utile de savoir où dans le code que stacktrace sont venus. Le but d'un obfuscateur est de se débarrasser de cette information 😉 En maintenant la cartographie, vous permettent la transformation de la stacktrace de l'endroit où le problème est survenu dans le code d'origine.
OriginalL'auteur Paul Wagland
Je peux répondre à la question 4. Vous devez le conserver à des fins de débogage. Disons que vous avez un bug dans la fonction "printTheAlphabet()" sur la ligne 23, après ôtant la trace de la pile pourrait dire quelque chose comme "Erreur dans j6z9r() à la ligne 27", ce qui fait qu'il est impossible de localiser l'erreur dans votre code source.
OriginalL'auteur ZoFreX
Comment obscurcir le code rapidement & sale:
Essayer: http://www.daftlogic.com/projects-online-javascript-obfuscator.htm ou: http://javascriptobfuscator.com/default.aspx ou Google "javascript obfuscator en ligne".
Je sais que c'est pour le Javascript, mais vous pouvez obtenir le
résultat de la fonction à l'aide d'un Javascript eval pour Java (voir: https://stackoverflow.com/a/2605051/450148)
Il n'est pas le meilleur aprouch, mais il peut être utile si vous êtes vraiment pressé et vous n'êtes pas un paranoic au sujet de la sécurité.
EDIT: Le prochain morceau de code utilise la simple ROT13 de ne pas les exposer directement votre mot de passe. La bonne chose est le "hacker" ne savent pas de l'algorithme que vous utilisez (vous pouvez remplacer ROT13 pour l'algorithme que vous voulez), mais il est toujours très facile de le décomposer:
OriginalL'auteur Felipe
J'ai eu un coup d'oeil à yGuard avant et aimé le fait que vous pourriez intégrer l'obscurcissement étapes dans un script Ant. Cela vous permet de l'utiliser très facilement dans Eclipse, etc si vous le souhaitez.
La documentation, il est livré avec de fournir un certain nombre de ready made scripts Ant pour obtenir vous avez commencé. Ces juste besoin d'être modifié pour fonctionner avec vos projets de mise en page, c'est à dire le choix d'un paquet de noms etc.
Si vous n'êtes pas clair sur la façon d'obtenir Ant d'aller dans Eclipse, vous avez à peu près juste besoin d'ajouter un build.xml fichier au projet, copiez l'exemple de script qui vient avec yGuard, modifier le script pour le travail avec votre projet et exécutez le yGuard tâche de la Fourmi vue.
En ce qui concerne votre table de correspondance en question. La seule raison pour laquelle je peux penser que vous pourriez avoir besoin de quelque chose comme ce serait le cas si vous ne pouvez pas reproduire un bug caché de votre pot expositions, de votre code d'origine. À ce stade, vous pourriez avoir besoin de travailler avec l'obfuscation version, peut-être à déterminer si l'obscurcissement a causé un problème.
OriginalL'auteur Binary Nerd