Salut,
comment obtenir le code source à partir d'un fichier .exe!!!!!!!!
Salut,
comment obtenir le code source à partir d'un fichier .exe!!!!!!!!
Le C est compilé, on ne peut pas...Envoyé par rimeh
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
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++
+
En état de marche non mais qui ressemble à une vache, de loin avec un épais brouillard, si : http://boomerang.sourceforge.net/Envoyé par Emmanuel Delahaye
Je dirais plutot réglementé ! Si c'est ton programme tu as le droitEnvoyé par mujigka
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++ ??
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.
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.
¤-------------------------------------------------------------------
C'est possible.Envoyé par mamiberkof
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 ]
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:
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++...
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(); } }
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.
Pour te donner une exemple, le code suivant :Envoyé par Médinoc
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 int a; a= 2; if(a==2*3+1) { int a = 1; } else { a = 2; }
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.
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:
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 :
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
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:
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 v1 = 2; if(!v1==7) goto L2 v2 = 1; goto L3: L2: v1 = 2; L3:
Si tu fais une optimisation, tout le bloc des if/else va disparaitre...
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;
Je ne répondrai à aucune question technique en privé
Pas besoin de mots "abracadabra..."rimeh:
Salut,
comment obtenir le code source à partir d'un fichier .exe!!!!!!!!
DEMENDE LE CODE SOURCE GENTILLEMENT ET TU AURAS 99% DE CHANCE DE L'AVOIR!!!!!!!!!!!!!!
Ce n'est qu'en forgeant qu'on devient forgeron.
si c'est vrai coment sauront ils en quel langage ça a ete ecrit?Envoyé par mamiberkof
Life is what happens while you've made other plans...
Je vois pas à quoi cela pourrait bien servir de toute façon...Envoyé par Phoenix_Blue
" 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 ]
ç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à.Envoyé par hegros
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.
¤-------------------------------------------------------------------
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.Envoyé par mamiberkof
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 ]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager