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

EDI et Outils pour Java Discussion :

[Décompilateur] Comment empecher la Reverse Engeneering


Sujet :

EDI et Outils pour Java

  1. #1
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut [Décompilateur] Comment empecher la Reverse Engeneering
    Comment arrêter les decompilateurs java de faire la reverse engeneering
    Il y a til un moyen de crypter son code pour qu'il ne soit pas decompiler, es ce que les ide ont un outils et rendre la decompilation d'une class difficile
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Les obfuscateurs domme proGuard, yGuard, retroguard & cie complexifie ton code de façon à ce qu'il soiit quasi impossible à lire après décompilation

    Sinon tu peux aussi voir du coté des compilateurs natifs, mais le support de java est aléatoire (ceux supportant l'intégralité de java 5 sont payants)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Cf. la ici !
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  4. #4
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut RetroGuard for Java Obfuscation
    web site

    http://www.retrologic.com/
    ca passe pas sur mon decompilateur
    jessaye les autres ..........
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

  5. #5
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    COMMENTAIRE:

    Aucun code ne résiste à une longue et patiente RE. C'est seulement une question de temps.
    Bien le bonjour chez vous
    Jowo

  6. #6
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut
    Citation Envoyé par jowo
    COMMENTAIRE:

    Aucun code ne résiste à une longue et patiente RE. C'est seulement une question de temps.


    Donc Java Obfuscation, c'est seulement une ruse pour embrouiller le faire perdre du temps augmenter les chemins du labirynte.
    [B]Il y a donc pas un moyen pour stoper la RE d'une .class
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

  7. #7
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Non, excepté la compilation native (cf Excelsior JET)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  8. #8
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par liquideshark


    Donc Java Obfuscation, c'est seulement une ruse pour embrouiller le faire perdre du temps augmenter les chemins du labirynte.
    [B]Il y a donc pas un moyen pour stoper la RE d'une .class
    Je connais aucun moyen très efficace de stopper la RE. Même en transformant en natif ton programme java, il est toujours possible de RE sur un éxecutable (même si c'est difficile).

    Mais dans la plupart du temps un bon obfuscateur suffit...
    Bien le bonjour chez vous
    Jowo

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par sinok
    Non, excepté la compilation native (cf Excelsior JET)
    Même les applications natives peuvent être décompilées...


    La principale question est : pourquoi as-tu besoin d'un tel niveau de protection ?

    a++

  10. #10
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par adiGuba


    Même les applications natives peuvent être décompilées...


    a++
    En même les humains lisant nativement l'assembleur ne doivent pas être légion sur terre
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sinok
    En même les humains lisant nativement l'assembleur ne doivent pas être légion sur terre
    Tout comme les humains lisant nativement le bytecode

    Bref je ne pense pas qu'il soit plus facile de lire du bytecode offusqué que de l'assembleur...

    a++

  12. #12
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut
    un GRO projet sur Information retrival. Et nous voulons pas que le code source soit visible pour tous !
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

  13. #13
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut
    Donc il y a pas de moyen pour rendre ca un peu compliquer. dz astuces pour rendre le code moins lisible à la competition donc WALO NADA. JAVA == Opensource lol
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

  14. #14
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par liquideshark
    Donc il y a pas de moyen pour rendre ca un peu compliquer.
    Oui et on l'a déjà dit : les obfuscateurs !
    Mais cela ne peut pas garantir un résultat sûr...

    Si tu es vraiment si parano il faut te tourner vers des systèmes de cryptages...

    Citation Envoyé par liquideshark
    dz astuces pour rendre le code moins lisible à la competition donc WALO NADA. JAVA == Opensource lol
    Evite de tout confondre ! Cela n'a rien à voir avec Java ou l'OpenSource

    Pour qu'un programme puisse être exécuté il faut qu'il soit compris par la machine qui le fait tourner... à partir de là il est toujours possible de faire du reverse engineering... et ce quel que soit le langage !

    a++

  15. #15
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut
    merci
    jai dis java == opensource dans le sens que le code source de ton projet sera vu de toute facon, apres un RE,
    mais pour d'autre language c'est pas aussi simple par exemple le code en c est recoder en assembleur et c'est pas tout le monde qui s'est lire ca
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

  16. #16
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par liquideshark
    merci
    jai dis java == opensource dans le sens que le code source de ton projet sera vu de toute facon, apres un RE,
    Ben cela n'a quand même rien à voir : l'open source est un mode de distribution !

    Citation Envoyé par liquideshark
    mais pour d'autre language c'est pas aussi simple par exemple le code en c est recoder en assembleur et c'est pas tout le monde qui s'est lire ca
    Tu es en train de comparer un décompilateur avec un désassembleur !


    Un désassembleur permet de convertir un code machine en langage d'assemblage, par exemple un fichier *.class en instruction bytecode, ou un fichier exécutable en instruction assembleur.

    Un décompilateur permet de reconstituer le code source d'un logiciel à partir de son exécutable, et il en existe pour la plupart des langages et pas seulement Java ! Un exemple pour le C : boomerang

    Toutefois il faut nuancer car ces outils sont quand même loin de donner le code source d'origine (et en particulier lorsqu'il a été offusqué).



    Bref évites de cataloguer cela comme un problème de Java, c'est commun à tous les langages...

    a++

  17. #17
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Si ton code source ne doit pas être dévoilé, je ne vois que la solution d'utiliser un serveur contenant ton executable, et interrogé à distance par ton application.

    Ainsi, ton code ( sur ton serveur ) est innaccessible par l'utilisateur, qui n'a pas la main dessus. Il ne peut que décompiler l'application en local, mais toutes les logiques métiers restent sur le serveur.

    Personnellement, je pars du principe que obfusquer ton code ne sert à rien; Quelqu'un de motivé arrivera toujours à décompiler, si il y a un gain substentiel à la manipulation. Tu lui donneras plus de fil à retordre, mais ton code reste visible et exploitable; Pareil pour les applications natives.

    Personnellement, à moins que ton application soit une application de sécurité avec des algorithmes qui doivent rester indéchiffrables, je ne vois pas l'interêt de cacher le code source... Au pire, tu auras un concurrent sur le marché, il suffira que tu fasses un meilleur programme que lui ( qui aura pompé ton code source ) et tu auras toujours ta place sur le marché. C'est beaucoup plus sain comme façon de voir les choses. Il ne faut pas empêcher les gens de voir ton code source ( je suis pro open-source ), et je répète, sauf dans le cas d'une application gérant la sécurité.

    A+
    K

  18. #18
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    +1 pour KiLVaiDeN, un éxecutable distribué pourra toujours (après c'est une question de rapport coût/interêt de le faire) être décompilé.
    D'ailleurs c'est pour ça que toutes les applications finissent par être crackée non? Je pense que si les industriels du logiciels avaient une solution pour protéger à 100% leurs bébé ils l'appliqueraient.

  19. #19
    Membre averti Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Points : 325
    Points
    325
    Par défaut
    Merci du conseilv Kilvaden

    Au pire, tu auras un concurrent sur le marché, il suffira que tu fasses un meilleur programme que lui ( qui aura pompé ton code source ) et tu auras toujours ta place sur le marché. C'est beaucoup plus sain comme façon de voir les choses. Il ne faut pas empêcher les gens de voir ton code source
    ===================================
    ===Accroche ta charrue à l'Open source===
    ===================================

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Sinon il existe une autre astuce, bien plus complexe, c'est d'utiliser la crypto.

    Concretement, tu vas compiler ton programme "normallement". Puis tu vas crypter tous tes fichiers .class (ou le .jar, a toi de voir).

    Ensuite tu vas creer un tout petit programme tres simple, qui vas uniquement ouvrir tes .class (ou ton .jar) et le decrypter "on the fly" grace a un ClassLoader adapté, et lancer le main.

    Je ne sais pas si un outil existe deja, mais sinon ce n'est pas tres compliqué (y'a meme des exemples dans le tuto officiel je crois).

Discussions similaires

  1. Comment empecher le Alt + F2 ??
    Par phoenix007 dans le forum Access
    Réponses: 12
    Dernier message: 25/08/2006, 09h52
  2. [C#] Comment empecher les modification dans un DataGrid ?
    Par layate dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2005, 18h11
  3. Comment empêcher le démarrage d'un service ?
    Par narmataru dans le forum Administration système
    Réponses: 2
    Dernier message: 17/01/2005, 11h15
  4. [MFC] COmment empecher le resize d'un SDI ?
    Par Soulsurfer dans le forum MFC
    Réponses: 12
    Dernier message: 28/06/2004, 18h28
  5. [JBuilder9][JSP] Comment empêcher la recompilation
    Par lamimolette75 dans le forum JBuilder
    Réponses: 2
    Dernier message: 11/07/2003, 16h20

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