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

Langages de programmation Discussion :

language non décompilation (question idiote :)


Sujet :

Langages de programmation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 76
    Points
    76
    Par défaut language non décompilation (question idiote :)
    Bonjours, une petite question idiote:

    Est-ce que tous les langages sont dé compilable?

    Je sais que pour beaucoup le sont (haut niveau), mais il y en a t'il quelque un qui ne le soient pas? Avec la programmation bas niveau?

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Bonjour.

    Tout est décompilable, simplement c'est plus ou moins difficile selon la nature du flux d'instructions dont on dispose.

    * Ainsi un exécutable natif contient des instructions assembleur primitives (par exemple "charger le contenu de l'adresse du registre a dans registre b"). C'est ardu à décompiler car on peut difficilement savoir à quoi correspondent ces adresses: charge t-on l'adresse d'une instance, d'une fonction, etc?

    * Un exécutable généré par un langage dotnet ou java est en revanche très différent : il contient un court lanceur natif (instructions assembleur) suivi d'un flux d'instructions intermédiaires (bytecode) qui seront interprétées et compilées à la volée. Ces instructions sont de plus haut niveau (appeler méthode M, instancier type T) et facilitent grandement la décompilation.


    Alors que le flux bytecode préserve l'information sur les types et méthodes, cette information a été détruite lors de la compilation en assembleur. Décompiler c'est reconstruire l'information. Note enfin que l'on ne peut pas en général reconstruire à l'identique l'information supprimée, et que plus il manque d'informations plus le résultat final sera différent de la source.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Tout est décompilable, simplement c'est plus ou moins difficile selon la nature du flux d'instructions dont on dispose.
    Je dirais surtout que c'est ardu à déchiffrer/comprendre/utiliser

    @vb159753 :

    Quand tu as "décompilé", tu as une suite d'instructions assembleur, où les références aux variables sont simplement R1, R2, etc, les noms des registres.. Tu n'as plus aucun commentaire, pas de noms de variables, les nom des "fonctons" sont tronqués à X caractères, quand ils ne sont aps simplement des adresses, les opérations sont juste MOV, ADD, SUB, DIV, JMP, etc...

    Alors sur un "petit progr" ou "pette bibliothèque" ça peut à la limite se récupérer (en général si c'est < 500 lignes). mais si tu as 5000 ou plus lignes c'est déjà relativement incompréhensible, et alors au-dessus de 10000 c'est pratiquement infaisable..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup,

    Je me doute bien que la décompilation est une "reconstruction pas terrible" du code source.

    Du coups, les langages plus difficilement dé-compilable, serait plus le C,C++?,
    sans "langage intermédiaire" .

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par vb159753 Voir le message
    Du coups, les langages plus difficilement dé-compilable, serait plus le C,C++?,
    sans "langage intermédiaire" .
    Non..

    TOUS les langages compilés seront au même niveau de complexité une fois décompilés. Les langages objets sans doute encore plus au vu de la duplication des méthodes....

    Maintenant, comme l'a dit DonQuiche, les langages s'exécutant via du bytecode, des scripts, etc, seront plus "facilement" lisibles (en partie) une fois dé-compilés..

    Mais en ce qui concerne les langages compilés, ils seront tous au même niveau d'incompréhensibilité, en gros..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 76
    Points
    76
    Par défaut
    Ha d'accord, je vois, merci à vous
    Je met tout de suite en résolut

  7. #7
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Emmanuel Delahaye fait souvent le parallele suivant a propos de la "decompilation" : "avec 500 Kg de viande hachee, on ne fait pas une vache en etat de marche".

    C'est tres vrai : tu perds beaucoup de choses lors de la compilation (plus ou moins), choses que tu peux ensuite essayer de deviner, mais sur un vrai programme, il te sera toujours impossible de retrouver le code source d'origine.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 30/05/2006, 18h43
  2. chtite question idiote d'un débutant
    Par pepper18 dans le forum Langage
    Réponses: 1
    Dernier message: 30/05/2006, 13h54
  3. Language (non sur serveur) lire/ecrire fichier texte / BDD
    Par jorisvh dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 11/05/2006, 20h31
  4. [Language][1.5]Question interfaces multiple:
    Par FreshVic dans le forum Langage
    Réponses: 16
    Dernier message: 18/11/2005, 09h41
  5. question idiote sur terme utilisé dans les offres
    Par coyott dans le forum Emploi
    Réponses: 4
    Dernier message: 24/08/2005, 17h16

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