Retrouver le code sourrce

Retrouver le code sourrce - Divers - Programmation

Marsh Posté le 01-02-2008 à 15:20:33    

Bonjour,
J'ai retrouvé un vieux petit jeu qui était disponible dans le logiciel Théodule (style adibou) quand j'étais plus jeune. C'est un casse brique plutot pas mal et je souhaiterais avoir le code source de ce petit executable pour le modifier sauf que je ne sais pas en quel language il est écrit ni comment faire pour obtenir le code source.  
Si qqun peut m'aider, ca serai sympa
 
Merci
 
(J'ai essayé un resHack mais il me dit que l'executable n'est pas un executable win32!)

Reply

Marsh Posté le 01-02-2008 à 15:20:33   

Reply

Marsh Posté le 01-02-2008 à 15:22:55    

Tu ne peux pas obtenir le code source à partir d'un exécutable.

Reply

Marsh Posté le 03-02-2008 à 23:27:39    

Elmoricq a écrit :

Tu ne peux pas obtenir le code source à partir d'un exécutable.

Bien sur que SI tu peux obtenir le code source à partir d'un exécutable ! :pfff:  
ça s'appelle le reverse engineering !
Maintenant faut trouver les outils capables de le faire (des décompilateurs ou autres...).
Connaitre le langage utilisé pour créer le programme est un plus. Il existe des décompileurs pour un langage particulier.
Sinon dans le pire des cas, tu récupereras un dump en assembleur et là c'est sur que c'est pas gagné pour l'exploiter. :D  

Reply

Marsh Posté le 04-02-2008 à 06:41:04    

Ce que tu obtiens avec un decompiler ce n'est certainement pas le code source, mais une reproduction de celui-ci à partir du code assembleur du programme, et faut voir la tête que ça a hein, y a un sacré gros boulot derrière pour pouvoir y comprendre quelque chose.
Le RE c'est pas magique, ça demande du temps et des compétences...

 

edit : en me renseignant je suis en train de lire que ce n'est pas forcément la même histoire pour, par exemple, des bytecodes Java ou .NET [:dawa] (à condition que le code ne soit pas obfusqué)
mais vu que c'est un "vieux jeu", si c'est du C ou du C++ le decompiler va pas l'aider beaucoup [:dawa]


Message édité par Elmoricq le 04-02-2008 à 06:52:29
Reply

Marsh Posté le 04-02-2008 à 09:56:49    

majikeyric a écrit :

Bien sur que SI tu peux obtenir le code source à partir d'un exécutable ! :pfff:
ça s'appelle le reverse engineering !


N'importe quoi [:pingouino]

 

Le reverse engineering, c'est le processus de découverte des principes et algorithmes d'un objet, d'un système ou d'un protocole par l'analyse de ses structures, fonctions et opérations. Ca permet (avec beaucoup de temps libre) de créer quelque chose qui remplis les tâches de l'original et qui est compatible avec l'original (en théorie), mais ça ne permet en aucun cas d'obtenir le code source originel, ou même quoi que ce soit qui y ressemble.

 

C'est d'ailleurs absolument pas le but.

majikeyric a écrit :

Maintenant faut trouver les outils capables de le faire (des décompilateurs ou autres...).


Un décompilateur n'est pas un outil de reverse-engineering (bien au contraire, il donne des infos sur le contenu du système originel ce qui est une très mauvaise idée en RE et le meilleur moyen de se manger un procès), et à part avec certains bytecodes haut niveau un décompilateur va sûrement pas sortir le code source originel.

Message cité 1 fois
Message édité par masklinn le 04-02-2008 à 09:57:11

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-02-2008 à 10:31:23    

masklinn a écrit :


N'importe quoi [:pingouino]
 
Le reverse engineering, c'est le processus de découverte des principes et algorithmes d'un objet, d'un système ou d'un protocole par l'analyse de ses structures, fonctions et opérations. Ca permet (avec beaucoup de temps libre) de créer quelque chose qui remplis les tâches de l'original et qui est compatible avec l'original (en théorie), mais ça ne permet en aucun cas d'obtenir le code source originel, ou même quoi que ce soit qui y ressemble.
 
C'est d'ailleurs absolument pas le but.


 

masklinn a écrit :


Un décompilateur n'est pas un outil de reverse-engineering (bien au contraire, il donne des infos sur le contenu du système originel ce qui est une très mauvaise idée en RE et le meilleur moyen de se manger un procès), et à part avec certains bytecodes haut niveau un décompilateur va sûrement pas sortir le code source originel.


 
Par code source moi j'entends quelque chose d'exploitable et de recompilable pour créer un exe.
Retrouver le source exact original dans exactement le même langage avec peut être en plus les commentaires du programmeur ( :lol: ). C'est effectivement impossible !
Dans tous les cas, ce qui sera généré demandera beaucoup de travail de compréhension (asm, C ou autre...).
 
J'ai fait du reverse avec du java et le résultat était impressionnant.

Message cité 1 fois
Message édité par majikeyric le 04-02-2008 à 10:35:24
Reply

Marsh Posté le 04-02-2008 à 10:33:24    

majikeyric a écrit :

C'est sur que si vous entendez par code source, le source exact original dans exactement le même langage avec peut être en plus les commentaires du programmeur ( :lol: ). C'est impossible !


En l'occurence non, avec des bytecodes haut niveau (type Java ou C#) on perd uniquement les commentaires et les noms de variables, et avec des bytecodes très haut niveau (Python) on ne perd rien, sauf stripping explicite.

majikeyric a écrit :

J'ai fait du reverse avec du java et le résultat était impressionnant.


C'est pas du RE, c'est de la décompilation.

Message cité 1 fois
Message édité par masklinn le 04-02-2008 à 10:33:44

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-02-2008 à 10:46:53    

masklinn a écrit :


C'est pas du RE, c'est de la décompilation.


Désolé je ne suis pas très à cheval sur les termes !

Reply

Marsh Posté le 04-02-2008 à 10:50:03    

majikeyric a écrit :


Désolé je ne suis pas très à cheval sur les termes !


C'est pas une question d'être "à cheval", c'est surtout que les buts et les moyens sont totalement différents.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-02-2008 à 13:40:42    

Ok merci à tous mais avec quel logiciel je peux faire du RE?

Reply

Marsh Posté le 04-02-2008 à 13:40:42   

Reply

Marsh Posté le 04-02-2008 à 13:46:26    

[:prozac]

 

Le reverse engineering, c'est l'analyse du comportement d'un existant pour pouvoir le reproduire. Donc, si c'est vraiment du RE que tu veux faire, il va te falloir tout programmer depuis le début, après avoir décortiqué le fonctionnement du programme.
Théoriquement, tu n'as pas besoin de connaître les sources du produit pour faire du RE, tu as juste besoin du produit lui-même pour pouvoir en connaître le fonctionnement.

 

http://en.wikipedia.org/wiki/Reverse_engineering


Message édité par Elmoricq le 04-02-2008 à 13:55:02
Reply

Marsh Posté le 04-02-2008 à 14:35:19    

la dé compilation ca fonctionne avec des programmes s'exécutants sous runtime style java ou visual basic mais au final le résultat n'est pas trop exploitable.
pour les autres exécutables, à part avec des outils comme WinDasm qui permettent d'explorer un peu l'exe en assembleur, il est difficile d'imaginer un logiciel qui peut deviner "en quoi" le soft a été codé.


Message édité par djobidjoba le 04-02-2008 à 14:35:27
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed