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 :

avoir le .c depuis l'.exe


Sujet :

Autres éditeurs

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Par défaut avoir le .c depuis l'.exe
    Bonjour, je voudrais savoir s'il est possible et si oui comment on peut afficher le code source d'un programme en c en ayant seulement son éxécutable. Merci d'avance

  2. #2
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Impossible ! Tu peux désassembler un executable avec un désassembleur (w32dasm) pour voir le code machine (assembleur donc) mais tu ne peux récupérer directement le .c !! Sans ça le code source de windows serait déjà disponible depuis longtemps

  3. #3
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Le C à été fait en asembleur, on peut insérer du code assembleur dans un programme C alors on peux modifier ou plutôt rajouter du code a un programme déasemblé.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut
    Bonjour, je voudrais savoir s'il est possible et si oui comment on peut afficher le code source d'un programme en c en ayant seulement son éxécutable. Merci d'avance

    Ca existe et cela s'appelle un decompiler , example boomerang : ici

    A mon avis le code seras illisible , mais bon .

  5. #5
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    ça m'étonnerais que ce genre de cochonneries marche, sinon on le saurais depuis longtemps et Bill Gate serait ruiné

  6. #6
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Idem que shugo, je vais tester mais j'y crois pas trop! Sinon ce serait vraiment une aubaine pour les crackers en tout genre !

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Henkka
    Bonjour, je voudrais savoir s'il est possible et si oui comment on peut afficher le code source d'un programme en c en ayant seulement son éxécutable. Merci d'avance
    Non. Il y a une infinité de code C qui peuvent produire le même exécutable. Il faut apprendre à faire des sauvegardes.

  8. #8
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Je m'en doutais ça marche pas et de toute façon Emmanuel à raison il y a des centanes de façon d'obtenir le même code source, exemple pour un programme qui affiche hello Word en console il y a plusieurs solutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(int argc, char* argv[])
    {
     printf("Hello Word\n");
    return 0;
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(int argc, char* argv[])
    {
     fprintf(stdout,"Hello Word\n");
    return 0;
    }
    ou alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(int argc, char* argv[])
    {
     fputs(sdtout,"Hello Word\n");
    return 0;
    }
    ou encore :
    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
     
    int main(int argc, char* argv[])
    {
     fputc(stdout,"H");
     fputc(stdout,"e");
     fputc(stdout,"l");
     fputc(stdout,"l");
     fputc(stdout,"o");
     fputc(stdout," ");
     fputc(stdout,"W");
     fputc(stdout,"o");
     fputc(stdout,"r");
     fputc(stdout,"d");
     fputc(stdout,"\n");
    return 0;
    }
    ou encore ça :
    [/code]
    ou encore :
    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
     
    int main(int argc, char* argv[])
    {
    int i = 0;
     fputc(stdout,"H");
     fputc(stdout,"e");
     for(i;i<2;i++)
    {
     fputc(stdout,"l");
    }
     fputc(stdout,"o");
     fputc(stdout," ");
     fputc(stdout,"W");
     fputc(stdout,"o");
     fputc(stdout,"r");
     fputc(stdout,"d");
     fputc(stdout,"\n");
    return 0;
    }
    le nombre de possibilitées est quasiment infini alors pour un code source d'OS......

  9. #9
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Citation Envoyé par Shugo78
    ou encore ça :
    [/code]
    ou encore :
    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
     
    int main(int argc, char* argv[])
    {
    int i = 0;
     fputc(stdout,"H");
     fputc(stdout,"e");
     for(i;i<2;i++)
    {
     fputc(stdout,"l");
    }
     fputc(stdout,"o");
     fputc(stdout," ");
     fputc(stdout,"W");
     fputc(stdout,"o");
     fputc(stdout,"r");
     fputc(stdout,"d");
     fputc(stdout,"\n");
    return 0;
    }
    J'aime bien celui là moi personnellement avec le for en plein milieu j'y aurais pas pensé

  10. #10
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Attends j'en ai plein d'autre :
    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
    int main(int argc, char* argv[])
    {
    int passage;
    int i=1;
    while(i)
    {
    passage = 1;
     fprintf(stdout,"Hello Word\n");
    if(passage==1)
    {
    i = 0;
    }
    }
    }
    return 0;
    }
    ou encore ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int main(int argc, char* argv[])
    {
    int x = 2+3;
    if(x == 6-1)
    {
    fprintf(stdout,"Hello Word\n");
    }
    return 0;
    }
    C'est pour prouver que leurs histoires de décompilateur c'est n'importe quoi.

  11. #11
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Shugo78
    C'est pour prouver que leurs histoires de décompilateur c'est n'importe quoi.
    As-tu essayé avant de dire des énormités pareilles ?

    Télécharges boomerang et essaye le.

    Bien sûr que non tu ne retrouvera jamais le code source original mais peut-etre quelque chose qui s'y approche, et sur des programmes faciles pas des machins compliqués.

    http://boomerang.sourceforge.net/cando.php?hidemenu

    Ensuite lis ça.
    http://boomerang.sourceforge.net/cantdo.php

    Donc essaye avant de poster, merci.

  12. #12
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Shugo78
    ça m'étonnerais que ce genre de cochonneries marche, sinon on le saurais depuis longtemps et Bill Gate serait ruiné
    Ca depends ce que tu appelles marcher.

    Si tu t'attends a retrouver exactement le code d'origine, noms et commentaires compris, tu vas evidement etre decu.

    Par contre il est possible de retrouver un code C correct produisant apres compilation le meme executable. Par contre il n'y aura pas de commentaire, les noms vont etre folkloriques et absolument pas parlant et la construction du code pas tres naturelle.

  13. #13
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    J'ai essayé boomerang mais ..... j'ai pas réussi la seule fois où il à bien voulu lancer la décompilation le code était rempli d'erreur et incompilable sous C::B et pourtant c'était pas un programme compliqué, c'était un gestionnaire de commentaire de livre, tu demandes un livre et ça ouvre le fichier avec le commentaire sur le livre et ça te l'affiche , et pour avoir comparé les deux sources cela ne marche pas en tout cas pas pour ça, mais comme c'est en évolution je ne dis pas que ça marcheras jamais car après quelques(petites ) réctifications le code marchais presque mais il ne fonctionnais pas comme l'orginal et avec quelques bugs.

    Mais je ne sais pas cette solution marchera peut être super bien à l'avenir mais pour le moment c'est moyen c'est tout.

  14. #14
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Shugo78
    J'ai essayé boomerang mais
    Boomerang, je ne connais pas, donc je ne saurais pas dire ce qu'il vaut.

    Mais il existe bel et bien des outils qui realisent "correctement" ce type de travail.

    Le souci c'est que le code obtenu est suffisament obscur (le plus souvent une conversion mot a mot de l'assembleur, sans commentaire, avec des noms generes automatiquement sans aucun sens) pour ne pas etre d'une utilite folle.

  15. #15
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Je réponds qu'il est impossible(dire que les décompilateurs étaient n'importe quoi c'était poussé) d'obtenir un *.c propre et correcte(et relisable) depuis un *.exe car c'est la question originellement posée non ?

  16. #16
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Shugo78
    Je réponds qu'il est impossible d'obtenir un *.c propre et correcte(et relisable) depuis un *.exe car c'est la question originellement posée non ?
    La question etait "on peut afficher le code source d'un programme en c en ayant seulement son éxécutable".
    Effectivement d'avoir LE code source original ce n'est pas possible (ou alors avec beaucoup de chance).
    D'avoir UN code source compilable oui, Un code source lisible je n'ai pas encore vu (mais de la a dire que c'est impossible c'est un pas que je me garderais bien de franchir, d'autant que la notion de lisibilite est somme toute assez subjective)

  17. #17
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    du moins pour le moment a moins qu'Henkka ne parlait au futur dans sa question(mais il me semble que non) Je lui réponds que obtenir un code source en fichier *.c propre, correcte et relisable depuis un *;exe est IMPOSSIBLE(du moins pour l'instant).

  18. #18
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Shugo78
    Je lui réponds que obtenir un code source en fichier *.c propre, correcte et relisable depuis un *;exe est IMPOSSIBLE(du moins pour l'instant).
    N'ayant pas essayer tous les logiciels de ce type existant a l'heure actuelle, je prefere ne pas m'avancer a pretendre que c'est impossible.

    Je n'en ai pour l'instant pas vu de reelement satisfaisant (sauf code bien particulier) et il me semble peu probable d'en rencontrer dans un avenir proche. Mais pour avoir deja eu des surprises, le terme impossible me semble un peu fort.

  19. #19
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    C'est vrai mais si un logiciel miracle du tyê éxisté je pense qu'on le saurait non ?

  20. #20
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Pour enfoncer le clou :
    As tu déja réussi a crée une vache a partir de 400 Kg de steack haché ?

    Et ben pour retrouver les sources a partir de l'exécutable, c'est la même chose.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

Discussions similaires

  1. Extraction de fichiers depuis un .exe
    Par daladim dans le forum Autres Logiciels
    Réponses: 13
    Dernier message: 23/02/2011, 19h43
  2. Réponses: 2
    Dernier message: 26/11/2009, 18h38
  3. Lancement du navigateur depuis un exe
    Par Bundy*Al dans le forum Windows
    Réponses: 1
    Dernier message: 05/10/2007, 09h10
  4. Utiliser mon fichier d'aide depuis mon exe
    Par Speed41 dans le forum Delphi
    Réponses: 2
    Dernier message: 16/05/2007, 07h24
  5. Avoir le chemin de mon exe, sans le nom de l'exe.
    Par yosthegost dans le forum Delphi
    Réponses: 4
    Dernier message: 31/05/2006, 17h05

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