IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Gros problème : comment rendre une appli Java indécompilable ?


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut Gros problème : comment rendre une appli Java indécompilable ?
    Bonjour à tous,

    j'ai codé une appli en java et il faudrait que les sources de cette appli ne soient pas accessibles or le code java est facilement décompilable, d'où ma question, existe-t'il un moyen de rendre son code indécompilable ?

    Merci à vous

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Bien sûr que non, mais tu peux toujours compliquer la compréhension de cette décompilation avec un obfuscateur. Genre ProGuard ou yGuard.

    Par contre, je te préviens, c'est la porte ouverte à de nombreux ennuis.
    La faute à cette volonté de rendre les choses indécompilables, totalement déraisonnable. Pour l'amour du ciel, la compilation ne consiste pas à cacher le code source, elle consiste à transformer le code source en une chose facilement exécutable. Jamais il n'a été question de cacher le fonctionnement, ce n'était qu'un effet secondaire et gênant.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Bien sûr que non, mais tu peux toujours compliquer la compréhension de cette décompilation avec un obfuscateur. Genre ProGuard ou yGuard.

    Par contre, je te préviens, c'est la porte ouverte à de nombreux ennuis.
    La faute à cette volonté de rendre les choses indécompilables, totalement déraisonnable. Pour l'amour du ciel, la compilation ne consiste pas à cacher le code source, elle consiste à transformer le code source en une chose facilement exécutable. Jamais il n'a été question de cacher le fonctionnement, ce n'était qu'un effet secondaire et gênant.
    je suis d'accord avec toi sur le but de la compilation mais dans ce cas comment fournir une application à des clients tout en rendant les sources inaccessibles ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ma foi, je dirais que c'est impossible, tout comme faire tenir un éléphant en équilibre sur sa trompe.

    Tout aussi difficile l'un que l'autre, et tout autant à gagner si seulement on y arrivait.


    Non, moqueries à part, pour essayer de faire ça en Java je ne vois que l'obfuscation, qui apporte beaucoup de problèmes et aucun avantage mis à part une certaine tranquillité d'esprit basée sur l'illusion d'avoir accompli un but qui avait l'air nécessaire.
    L'obfuscation complique vraiment la vie de celui qui essaie de lire le code source. Le truc, c'est qu'on se demande bien l'intérêt de lui compliquer la vie. Comme si le fait de ne pas lui donner le code source n'était pas déjà suffisant dans cette poursuite de l'inutile.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Ma foi, je dirais que c'est impossible, tout comme faire tenir un éléphant en équilibre sur sa trompe.

    Tout aussi difficile l'un que l'autre, et tout autant à gagner si seulement on y arrivait.


    Non, moqueries à part, pour essayer de faire ça en Java je ne vois que l'obfuscation, qui apporte beaucoup de problèmes et aucun avantage mis à part une certaine tranquillité d'esprit basée sur l'illusion d'avoir accompli un but qui avait l'air nécessaire.
    L'obfuscation complique vraiment la vie de celui qui essaie de lire le code source. Le truc, c'est qu'on se demande bien l'intérêt de lui compliquer la vie. Comme si le fait de ne pas lui donner le code source n'était pas déjà suffisant dans cette poursuite de l'inutile.
    je ne veux pas que mon code source soit lisible car je développe une appli pour mon boulot, elle va être disctribuée à des clients qui auront payé et on souhaite donc la protéger... l'open source c'est très bien je suis d'accord mais là dans mon cas l'appli doit être protégée. C'est normal, il y a des enjeux économiques derrière.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par _LittleFlea_ Voir le message
    je ne veux pas que mon code source soit lisible car je développe une appli pour mon boulot, elle va être disctribuée à des clients qui auront payé et on souhaite donc la protéger... l'open source c'est très bien je suis d'accord mais là dans mon cas l'appli doit être protégée. C'est normal, il y a des enjeux économiques derrière.
    Protéger l'appli est le travail du copyright, pas de la compilation.

    Je comprends qu'on puisse n'avoir aucun intérêt pour l'open source, raison pour laquelle je ne cherche pas à pointer les nombreux avantages à fournir le code source avec l'appli.
    Mais l'obfuscation, et toute autre méthode d'empêcher la tentative de décompilation, est source de gros problèmes, qui eux ont un vrai coût concret, contrairement à la vague possibilité que les clients violent le copyright et le contrat d'utilisation de l'application et qu'une réparation ne puisse pas être exigée en conséquence.
    Je dis les choses comme elles sont, pour protéger tes intérêts et ton retour sur investissement, à toi et à tes employeurs/sponsors/je ne sais quoi. Les mécanismes de protection anti-décompilation sont souvent, et en Java toujours, des escroqueries visant à facturer plus cher un produit de qualité égale ou moindre. Tu me crois ou tu ne me crois pas, peu m'importe, mais je pense que tu as plus besoin de ces explications que d'être encouragé à t'entêter.


    Quant aux désobfuscateurs, il y en a bien plus d'un par obfuscateur, mais ils ne servent qu'à guider le travail, ils ne peuvent pas rétablir les choses comme avant.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 138
    Par défaut
    L'obfuscation empeche de lire du code source qui a été obtenu pas décompilation.

    Avantage:

    - si vous vendez votre logiciel, le client ne pourra pas regarder dans les sources ni revendre les sources
    - le programme peut etre plus rapide (je ne sais pas en fait, il faudrait vérifier)

    Inconvénients:

    - l'obfuscation peut être buggé, il faut tester le logiciel après obfuscation, cela ajoute de la lourdeur
    - quand le logiciel plante, les logs sont difficiles à lire et c'est plus difficile à débugger, mais cela reste faisable

    Si j'ai un conseil à donner, il faut utiliser l'obfuscation pour les parties vraiment stratégique du programme, là où il y a l'algorithmique ou la valeur ajouté du programme par rapport aux concurrents, pas la peine de tout obfusquer

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par toto828 Voir le message
    L'obfuscation empeche de lire du code source qui a été obtenu pas décompilation.

    Avantage:

    - si vous vendez votre logiciel, le client ne pourra pas regarder dans les sources ni revendre les sources
    - le programme peut etre plus rapide (je ne sais pas en fait, il faudrait vérifier)

    Inconvénients:

    - l'obfuscation peut être buggé, il faut tester le logiciel après obfuscation, cela ajoute de la lourdeur
    - quand le logiciel plante, les logs sont difficiles à lire et c'est plus difficile à débugger, mais cela reste faisable

    Si j'ai un conseil à donner, il faut utiliser l'obfuscation pour les parties vraiment stratégique du programme, là où il y a l'algorithmique ou la valeur ajouté du programme par rapport aux concurrents, pas la peine de tout obfusquer
    j'ai entendu dire qu'à chaque obfuscateur il y avait un desobfuscateur, est-ce vrai ? si c'est le cas, mon appli ne sera pas réellement protégée ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/12/2013, 10h31
  2. Réponses: 1
    Dernier message: 01/05/2010, 17h21
  3. Problème mémoire d'execution d'une appli java en commande shell
    Par Djinner² dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/07/2008, 17h34
  4. Comment utiliser une classe Java dans une appli PB ?
    Par bobychezA56 dans le forum Powerbuilder
    Réponses: 0
    Dernier message: 09/04/2008, 18h07
  5. Réponses: 4
    Dernier message: 30/07/2007, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo