2010-09-26 5 views
1

Possible en double:
Jar executable that cannot be decompiledcode source "undecompilable" en java

Comment puis-je faire la source "undecompilable" en java? J'ai une application de micro-édition qui a un code que j'ai besoin de cacher Est-ce possible?

Merci d'avance

+5

Cette question a été posée * plusieurs fois * auparavant sous de nombreuses formes. Les réponses sont 1) utiliser un obfuscator, et 2) même cela n'arrêtera pas un ingénieur inverse déterminé. –

+0

Stephen C a raison. Voici un livre intéressant sur le sujet qui n'est pas référencé dans la question croisée: http://apress.com/book/view/9781590592656 – gkrogers

+0

Essayez [Proguard] (http://proguard.sourceforge.net/). – Mot

Répondre

0

Vous pouvez Obfuscation, mais personne ne voudra voler votre code de sauce de toute façon, donc je suppose que c'est plus pour la tranquillité d'esprit. En fin de compte, tout est décompilable dans une certaine mesure, sinon les systèmes d'exploitation ne pourraient exécuter aucun programme!

+0

Huh? Je ne comprends pas la partie sur les systèmes d'exploitation ... – Mchl

+1

Si un système d'exploitation peut convertir les données dans un exécutable en instructions de processeur, alors cela peut être converti en assemblage, qui peut théoriquement au moins, être converti en n'importe quel langage de programmation connu à l'homme, même LOLCODE. –

+1

@Mchl: Même le code machine binaire doit signifier quelque chose, et peut donc être traduit en une représentation de niveau supérieur avec quelque difficulté – IanGilham

1

En bref. Vous pouvez masquer votre code pour qu'il soit difficile pour quelqu'un de le lire et de le réutiliser. Si c'est ce que vous voulez, cela pourrait également rendre difficile pour quelqu'un de voir ce qu'il fait. Mais pas impossible.

-3

Si vous voulez que vos utilisateurs en fait, vous le savez, utilisation le programme, ils doivent être en mesure de terme le programme. Afin de pouvoir exécuter le programme, le CPU doit pouvoir comprendre le programme. Les processeurs sont beaucoup plus stupides que les humains, ce qui signifie que les humains peuvent aussi comprendre le programme.

Si vous masquez votre programme de manière à ce qu'il ne puisse pas être compris par les humains, cela signifie également qu'il ne peut pas être exécuté.

Si vous ne voulez pas que les gens aient accès à votre code, il n'y a qu'un seul moyen: ne pas le leur donner. Mettez-le sur un serveur et laissez vos utilisateurs s'y connecter via le réseau.

Mais tout cela est complètement inutile, puisque votre code est automatiquement protégé par la loi sur les droits d'auteur, ce qui est beaucoup plus puissant que n'importe quel obscurcissement.

+1

Le code est à l'intérieur des téléphones portables, je ne le cache pas – iberck

+0

örg Eh bien, ce que vous écrivez n'est vrai qu'en théorie, et même ainsi, seulement sur un niveau très généralisé. Certes, il existe des moyens de «obscurcir votre programme de telle manière qu'il ne puisse pas être compris par les humains» mais de le faire fonctionner. Peut-être pas dans ce contexte technique spécifique cependant. – bzlm

Questions connexes