Bonjour à Tous,
Je recherche un décompilateur en C suite à une perte du code source.
Merci
Bonjour à Tous,
Je recherche un décompilateur en C suite à une perte du code source.
Merci
Salut
Pour ma part, je crois n'avoir jamais entendu/vu de logiciel comme celui ci.
Mais si tu en trouves un fais moi signe![]()
Non, j'arrête de sourire ! Malheureusement pour toi, il n'existe pas de "decompilateur". Le seul logiciel qui peut s'en approcher est un "désassembleur" qui te donneras le source de ton programme, mais en....assembleur.
En fonction de ton OS, si tu es sous windows, je crois que Borland pourras faire l'affaire voir Les outils gratuits, sinon sous linux, il te faudrat demander l'aide de qql d'autre.
Désolé...a moins que, on ne sait jamais
Voila....
Je pense que tu parles de déssanssembleur et non de décompilateur c car ca n'existe pas autrement.
euh désolé cela doit exister car j'ai déjà trouvé (ce qui n'a pas de rapport) un décompilateur pour Delphi...Envoyé par Elijha
Et je ne rigole pas...
Salut
Tu veux dire qu'il y a un gars qui a réussi à écrire des lignes de codes C ou Pascal juste avec le fichier exécutableEnvoyé par Thcan
.
Bon, bah moi je lui tire mon chapeau !
Bonne chance dans ta recherche, mais je reste plutôt septique quand au fait de l'existence d'un logiciel comme celui ci!
ZA+
paix et félicité,
le programme JAD permet aussi de retrouver le contenu des classes d'un programme java.
Chapeau bas à ceux qui ont fait: le code orienté objet est par définition celui de plus haut niveau (et donc loin de l'asm).Envoyé par Hypnos
Oui mais là c'est un peu différent => c'est du byte-code.Envoyé par Hypnos
Oui puis c'est du Java sur un forum C !!!Envoyé par lsdInside
![]()
Tu confonds pas avec un prog tout con qui se contente de ressortir le code des Froms depuis les ressources d'un soft fait avec Delphi / BCB ? Car ça n'a rien de prodigieu (ouvre ton exe avec wordpad et tu les trouveras) et ça n'a rien à voir ...euh désolé cela doit exister car j'ai déjà trouvé (ce qui n'a pas de rapport) un décompilateur pour Delphi...
Et je ne rigole pas...
Un décompilateur C, ça n'existe pas, et même, si ça existait, faut pas se leurer. Il serait incapable de retrouver :
- le nom des variables
- le nom des fonctions
- les commentaires
partant de là, le code qui serait produit serait pas franchement trivial ...
Désolé mais je ne confonds pas du tout...Envoyé par HW
J'ai décompilé un programme que j'ai ensuite ouvert avec Delphi (désolé rien à voir avec le C) et il m'a ressorti les forms avec tous les composants en place ainsi que tout le code source...
Peut être qu'un coup derépondra à cette question ?
![]()
Ehh avecun début de réponse :
http://www.program-transformation.or...eneralApproachhttp://www.program-transformation.or.../DeCompilation
Si t'as compile avec des infos de debuggages, tu as le code inclus (valable surement pour le delphi).
Par exemple si tu compile avec gcc -g ... si tu fais un objdump -S il te mets le code assembleur intercale avec les instructions c. C'est pratique pour voir si on peut optimiser le C (sans passer par l'asm).
Si t'as resolu, c'est quoi ta soluce ? (aucune??)
Bonjour, j'ai un petit article là-dessus, écrit par Olivier Pécheux (opie):
<<
Supposons tout d'abord que l'on ait un exécutable mais que l'on ne sache pas comment il a été compilé. Le problème est déjà terminé. Chaque compilateur a sa façon de coder et d'appeler ses librairies. Il sera donc impossible de remonter au niveau évolué (j'entends au source Basic, C ou Pascal).
"Je SAIS que mon programme a été compilé avec la version 2.00 de Borland (des fois ce renseignement est dans les premiers octets du programme). Peut-on revenir au source?" La réponse est un peu la même, car ce fameux compilateur a pas mal d'options différentes (avec ou sans contrôle des entrées sorties, de la pile, création d'un modèle large, petit, compact... avec ou non les instructions de débuggage, optimisation temps ou taille, ...). C'est un peu comme si chaque compilateur se démultipliait.
"Non, j'ai le temps (c'est mon ordinateur préféré qui fait le travail) et je vais étudier toutes les possibilités et ne garder que celle qui ne me conduisent pas à une absurdité. Puis-je le faire enfin?" Supposons presque que le compilateur n'ait pas d'options et que celui qui a écrit le compilateur ait aussi écrit le "décompilateur". Lors de la compilation, nous avons perdu tous les commentaires (c'est pas grave disent certains, "je n'en met jamais"). Parmi ces commentaires, il y a ce que j'appelle les variables autocommentées: Soit la fonction Cercle(Abscisse,Ordonnee,Rayon,Couleur). Quand je dis qu'il y a des noms autocommentés, cela s'ignifie que l'on comprend bien que cet appel trace un cercle dont on donne le centre le rayon et la couleur. De même Multiplie(reelle1,immaginaire1,reelle2,immaginaire2) va faire la multiplication de deux nombres complexes. Mais si on compile, on va aussi perdre les noms, Un décompilateur va assigner des nom quelconques et on va se retrouver dans les deux cas à un résultat du style: Fonc_A(A,B,C,D). Et là, on est bien embêté pour savoir ce que cela fait: cela peut faire un cercle ou une multiplication ou bien d'autres choses...
"OK. Et en assembleur? On peut toujours décomposer un programme, et même l'exécuter instruction pas à pas en regardant ce qui se passe. On finira par comprendre!" Cela se fait effectivement, cela permet de faire sauter les protections des programmes. Je l'ai fait personnellement sur un virus (stoned nommé ainsi par un antivirus). J'avais découvert ce virus par hasard, et les antivirus ne permettaient pas de nettoyer des disquettes en moins de 3 minutes (il me fallait quand j'ai compris le virus moins d'une seconde pour nettoyer une disquette). Stoned fait moins de 512 octets, soit en comptant une moyenne de 3 octets par ligne de programme, environ 170 lignes ou encore environ 3 pages pleines de mystères. Si je prends le super logiciel de dessin à 100 kF (on parle en kilo Francs!) qui fait seulement un petit compact pas plein. Comprte tenu des librairies, il ne reste plus que 10 Mo de programme, soit 3 millions de lignes ou encore 50000 pages à analyser. Écrit recto verso, cela fait un dossier d'environ 2 mètres de haut. (100 rames de papier). La solution la plus rapide consiste à tout réécrire, c'est moins cher et en plus, c'est légal.
>>
perso pour ce que tu veux dire, j'utilise dcc (http://www.itee.uq.edu.au/~cristina/dcc.html) qui va bien pour des programmes dont on a déjà une petite idée de ce qu'ils font (en particulier bien utile pour les études de virii etc..)
Partager