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

Autres éditeurs Discussion :

obtenir le code source à partir du .exe


Sujet :

Autres éditeurs

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut obtenir le code source à partir du .exe
    Salut,
    comment obtenir le code source à partir d'un fichier .exe!!!!!!!!

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par rimeh
    Salut,
    comment obtenir le code source à partir d'un fichier .exe!!!!!!!!
    Le C est compilé, on ne peut pas...

    Je ressort ma célèbre citation :

    "On ne fabrique pas une vache en état de marche avec 500 kg de viande hachée..."
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Je rappelle d'ailleurs que cette pratique, connue sous le nom d'ingénieurie inverse est interdite.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    "On ne fabrique pas une vache en état de marche avec 500 kg de viande hachée..."
    En état de marche non mais qui ressemble à une vache, de loin avec un épais brouillard, si : http://boomerang.sourceforge.net/


    Citation Envoyé par mujigka
    Je rappelle d'ailleurs que cette pratique, connue sous le nom d'ingénieurie inverse est interdite.
    Je dirais plutot réglementé ! Si c'est ton programme tu as le droit

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    si pas possibilité d'avoir du code source à partir du .exe, comment peut on obtenir .exe à partir d'un fichier(.cpp ou un package .dsw) développé en c++ ??

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Parce que la conversion est à sens unique, parce qu'il y a perte d'informations dans cette conversion.

    C'est comme pour la vache : On sait que la viande hachée vient de la vache, mais impossible de dire quel bout était où avant hachage...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre habitué Avatar de mamiberkof
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2005
    Messages : 290
    Points : 155
    Points
    155
    Par défaut
    j'ai lu une fois dans un bouquin l'existance des décompilateurs
    est ce que cela veut dire, que les ingénieurs travaillent pour le reverse-enginnering ?
    ¤-------------------------------------------------------------------
    |لا تبكي يا بُـنية، فإن الله مانع أباك...
    | Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
    | L'effet developpez.com : ->geek
    | It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
    ¤-------------------------------------------------------------------

  8. #8
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par mamiberkof
    j'ai lu une fois dans un bouquin l'existance des décompilateurs
    est ce que cela veut dire, que les ingénieurs travaillent pour le reverse-enginnering ?
    C'est possible.
    C'est peut être plus simple à décompiler du byte code java plutot que du binaire d'un executable.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Il y a beaucoup de méta-données incluses dans du code Java ou .Net de base (comme les noms de tous les types, variables, méthodes, etc), indispensable pour la réflexion.
    C'est pour cela qu'il existe des programmes dits obfuscateurs qui pourissent le code et les métadonnées, notamment en renommant les classes et leurs membres (il faut alors paramétrer correctement le programme pour indiquer les classes pour lesquelles la réflexion est utilisée, car celles-ci ne doivent pas être obfusquées).

    Ainsi, tu te retrouves avec des classes comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    namespace a
    {
    class a
    {
    	void a();
    	void a(int);
    	void b();
    }
    }
    Aucune de ces informations n'est généralement présente dans du code natif (sauf si on compile en mode debug), donc il n'y a pas vraiment d'obfuscateurs pour le C et le C++...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Médinoc
    Parce que la conversion est à sens unique, parce qu'il y a perte d'informations dans cette conversion.
    .
    Pour te donner une exemple, le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int a;
    a= 2;
    if(a==2*3+1)
    {
     int a = 1;
    }
    else
    {
     a = 2;
    }
    Va déjà être passé en code 3 adresses (avant d'être compilé) qui ressemblent à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    /*variable utilisateur*/
    int u1, u2;
    /*variable temporaire*/
    int v1,v2;
    bool v3;
     
    u1 = 2;
    v1 = 2;
    v2 = 3;
    v1 = v1 * v2;
    v2 = 1;
    v1 = v1 + v2;
    u1 = v1;
    v3 = u1==v1
    if(!v3) goto else
     u2 = 1;
    goto fin
    else:
     u1 = 2;
    fin:
    Il a perte d'information : au niveau des structures de contrôles, au niveau du nom des variables. Et il y a ajout de variables temporaires. Evidemment l'exemple que j'ai donné dépend du code 3 adresses que l'on choisi.
    Tu pourras également remarquer que 2 variables déclarées dans deux blocs différents ont des noms différents.

    D'ailleurs, si l'on compile avec -S -O0, on trouve le code assembleur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /*on met 2 dans a qui est représenté par un registre = la pile ici*/
    movl	$2, -4(%ebp)
    cmpl	$7, -4(%ebp) /*on voit qu'il a optimisé la partie 2*3+1 que j'avais découpé*/
    jne	L2	
    /*on met dans une autre partie de la pile, pas comme a*/
    movl	$1, -8(%ebp)
    jmp	L3
    L2:
    /*on met bien dans a*/
    movl	$2, -4(%ebp)
    L3:
    Ce qui serait équivalent au code 3 adresses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    v1 = 2;
    if(!v1==7) goto L2
    v2 = 1;
    goto L3:
    L2:
    v1 = 2;
    L3:
    Si tu testes, tu peux te rendre compte que le code d'origine (je parle sans optimisation) est totalement équivalent dans le code exe à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int d;
    int salut;
    d= 2;
    if(d==7)
     salut = 1;
    else
     d = 2;
    Si tu fais une optimisation, tout le bloc des if/else va disparaitre...
    Je ne répondrai à aucune question technique en privé

  11. #11
    Membre confirmé Avatar de aziz jim
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 455
    Points : 567
    Points
    567
    Par défaut
    rimeh:

    Salut,
    comment obtenir le code source à partir d'un fichier .exe!!!!!!!!
    Pas besoin de mots "abracadabra..."
    DEMENDE LE CODE SOURCE GENTILLEMENT ET TU AURAS 99% DE CHANCE DE L'AVOIR!!!!!!!!!!!!!!
    Ce n'est qu'en forgeant qu'on devient forgeron.

  12. #12
    Membre du Club
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    53
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 53
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par mamiberkof
    j'ai lu une fois dans un bouquin l'existance des décompilateurs
    est ce que cela veut dire, que les ingénieurs travaillent pour le reverse-enginnering ?
    si c'est vrai coment sauront ils en quel langage ça a ete ecrit?
    Life is what happens while you've made other plans...

  13. #13
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par Phoenix_Blue
    si c'est vrai coment sauront ils en quel langage ça a ete ecrit?
    Je vois pas à quoi cela pourrait bien servir de toute façon...
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  14. #14
    Membre habitué Avatar de mamiberkof
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2005
    Messages : 290
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par hegros
    Je vois pas à quoi cela pourrait bien servir de toute façon...
    ça peut aider énormement, imagines que tu vois le code source d'un fichier binaire, celui d'un logiciel par exemple. c'est vrai , les décompilateurs sont médiocre mnt en terme de reverse enginnering mais à l'avenir des recherches peuvent aller dans ce sens là.

    Décompilateur
    ¤-------------------------------------------------------------------
    |لا تبكي يا بُـنية، فإن الله مانع أباك...
    | Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
    | L'effet developpez.com : ->geek
    | It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
    ¤-------------------------------------------------------------------

  15. #15
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par mamiberkof
    ça peut aider énormement, imagines que tu vois le code source d'un fichier binaire, celui d'un logiciel par exemple. c'est vrai , les décompilateurs sont médiocre mnt en terme de reverse enginnering mais à l'avenir des recherches peuvent aller dans ce sens là.

    Décompilateur
    Beh tu peux toujours t'amuser à décompiler un binaire il faut encore comprendre derrière la logique du programme dans le cas ou tu arriverais a avoir quelque chose que tu puisses lire et comprendre.

    Je vois pas 1000 cas dans lesquels ce besoin se ferait sentir :

    1-On veut maintenir un vieux projet dont on n'a plus le source et donc la réecriture nécessiterait trop de temps ou trop d'argent
    2-Système d'expert.
    3-Pour tester son décompilateur perso
    4-je ne vois pas
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

Discussions similaires

  1. Obtenir le code source Java à partir du .exe
    Par LAT78130 dans le forum Général Java
    Réponses: 7
    Dernier message: 27/06/2014, 10h01
  2. trouver le code source à partir du .exe en C et C++
    Par boubounagh dans le forum Assembleur
    Réponses: 10
    Dernier message: 10/10/2012, 10h33
  3. Obtenir le code source a partir d'un exe
    Par Msysteme dans le forum Débuter
    Réponses: 14
    Dernier message: 23/02/2009, 12h02
  4. Code source à partir d'un EXE
    Par Mr NGANZI dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/01/2008, 12h15
  5. Code Source à partir d'un .exe
    Par trati dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/08/2006, 23h00

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