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

Développement Web en Java Discussion :

Obfuscation du code Java


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut Obfuscation du code Java
    Bonjour
    je travaille sur application un peu "sensible" et le client souhaite protéger le code source et éviter le décompilation des classe.

    le projet est composé de deux sous-projets
    +1) XXXCore.jar (spring hibernate): c'est le projet à obfusquer
    +2)XXXWeb.war (interface web JSF): (pas besoins d'obfusquer).

    le XXXCore sera inclut dans le lib du war.

    seul le projet core a obfusquer.

    - quelqu'un à déjà travaillé sur projet identique?
    - quelqu'un aurait dans ces carton des doc pour l'obfuscation (proguard ou autre) en français de préférence?
    - ou y a t'il moyen d'obfusquer tous le war.

    merci d'avance

    le XXXWeb dépend du core, la communication se fait par des appel service via une factorySpring

    exemple
    dans mon bean (UtilisateurBean)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void login(...){
       ....
       ....
     IUtilisateurService userService = (IUtilisateurService) (MyServiceFactory.getInstance()
                        .get(IUtilisateurService.INSTANCE_PROXY_NAME));
     
      UtilisateurDto dto = userService.login("ghiwani", "password2010");
     
    ....
    ...
     
    }

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    Bonjour,

    Quelqu'un pourra toujours décompiler le code et si le jeu en vaut la chandelle il pourra reconstituer un code source lisible.
    Il faut obfusquer assez pour rendre ce travail plus cher que le gain espéré quand à l'obtention du code source.
    Par contre je vois qu'il y a un login ... par expérience on n'obfusque jamais ce type de code. Toute sécurité par l'obscure est mauvaise.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut
    le projet core contient un code qui vérifié une licence.
    une fois le projet livré chez "les clients de mon client", la vérification se fera en local en se basant sur un algorithme nomMachine, date, ....

    donc mon client veut obfusquer ce bout de code

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    Ok je vois dans ce cas pas trop le choix.

    voici un tuto : http://cyberzoide.developpez.com/securite/obfuscation/


    Mais de toute manière il y aura forcement quelqu'un qui va s'atteler à ce travail.
    Les meilleures protections que j'ai vu dans ce domaine étaient redondantes et dispersées un peu partout dans le code.
    Si bien que même si on parvenait à en comprendre une partie, il en restait une autre qui prenait le relais plus loin...

    Ce que je veux dire, c'est qu'il faut non seulement obfusquer le code, mais en plus insérer dès la conception des leurres et des vérifications supplémentaires. Ne pas uniquement se reposer sur l'obfuscation.

    Bon courage,

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut
    ok merci,
    je regarde, mais à premier vue, c'est que du java, je ne sais pas trop comment le war vas ce comporter puisque toutes les classe seront renommées en a.a.a.a.a...

    je fais le tuto et je vous fais un retour.

    merci bcp

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut
    Re:
    ce tuto explique juste le principe, auriez-vous un autre qui montre comment le mettre en pratique sur un projet .

    merci d'avance

Discussions similaires

  1. Obfuscation de code Java ?
    Par darioo2 dans le forum Langage
    Réponses: 1
    Dernier message: 20/08/2012, 18h09
  2. crypter *obfuscation* le code Java
    Par elhoussain dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 24/01/2011, 16h37
  3. cryptage code java *obfuscation*
    Par elhoussain dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 23/01/2011, 21h20
  4. [andromda]Infos sur andromda, générateur de code JAVA
    Par ugos dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 08/09/2009, 15h30

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