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

avec Java Discussion :

Comment protéger mon jar contre la décompilation ?


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 54
    Points : 59
    Points
    59
    Par défaut Comment protéger mon jar contre la décompilation ?
    Salut,

    J’ai lu qq part que les .class peuvent être décompilés pour obtenir le code source… est-ce qu’il ya un moyen pour protéger mon code source contre la décompilation ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par byubi Voir le message
    Salut,

    J’ai lu qq part que les .class peuvent être décompilés pour obtenir le code source… est-ce qu’il ya un moyen pour protéger mon code source contre la décompilation ?

    Merci.
    Le seul moyen est d'utiliser un obfuscateur qui va brouiller ton code, mais ne le rendra pas indécompilable.

    Il n'y a pas de moyen de rendre impossible la décompilation de fichier .class.

    Si tu veux vraiment quelque de non-décompilable, tu seras obligé de passer par la compilation native.

  3. #3
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Oui, cela s'appelle l'obfuscation.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 563
    Points : 15 505
    Points
    15 505
    Par défaut
    Oui, cela s'appelle l'obfuscation.
    Attention l'obfuscation n'interdit pas le reverse-engineering, mais le rend plus difficile vu qu'il consiste à rendre le code volontairement complexe.

    Si tu veux vraiment quelque de non-décompilable, tu seras obligé de passer par la compilation native.
    La compilation native ne protège absolument pas contre le reverse-engineering. La seule différence est que d'un coté, on a du bytecode et de l'autre du langage machine.
    Le langage machine est peut-être un peu plus complexe a comprendre que le bytecode, pour un débutant, mais ça n'a jamais arrêté un cackeur.

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par Uther Voir le message
    La compilation native ne protège absolument pas contre le reverse-engineering. La seule différence est que d'un coté, on a du bytecode et de l'autre du langage machine.
    Le langage machine est peut-être un peu plus complexe a comprendre que le bytecode, pour un débutant, mais ça n'a jamais arrêté un cackeur.
    C'est évident, mais c'est le meilleur moyen de protection possible.

    Il est impossible (du moins à ma connaissance) de faire quelque chose qui ne sera pas décompilable au moins en langage machine.

    Sinon, il reste une autre solution : Utiliser son propre ClassLoader qui travaille avec des fichiers .class cryptés, ce qui rendra plus difficile leur décodage, mais pas impossible.

  6. #6
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 563
    Points : 15 505
    Points
    15 505
    Par défaut
    Je pense qu'un bon obfuscateur sera plus bien plus efficace pour décourager le reverse-engineering que la compilation native.
    Vu que les crackeur maitrisent généralement l'assembleur sur le bout des doigts, ce n'est pas ça qui va leur faire peur.

  7. #7
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par Baptiste Wicht Voir le message
    Sinon, il reste une autre solution : Utiliser son propre ClassLoader qui travaille avec des fichiers .class cryptés, ce qui rendra plus difficile leur décodage, mais pas impossible.
    je suis déjà tombé sur un truc rigolo: un ClassLoader bien truqué ... mais une fois le ClassLoader lui même décompilé le pot aux roses fut découvert! (c'était assez amusant: en fait le binaire était caché dans un autre fichier .class après la limite déclarée du .class .. je ne savais pas qu'on pouvait faire ça!)
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2013, 10h32
  2. Protéger mon programme contre la copie
    Par dayr dans le forum Outils
    Réponses: 75
    Dernier message: 06/01/2009, 02h59
  3. Comment protéger mon programme contre une copie ?
    Par bolanoy dans le forum Langage
    Réponses: 4
    Dernier message: 18/07/2008, 17h11
  4. Réponses: 17
    Dernier message: 31/10/2005, 15h59

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