web-dev-qa-db-fra.com

Comment obtenir le code source d'un exécutable Windows?

J'ai d'anciens fichiers exécutables Windows. Comment puis-je les modifier avec Visual Studio 2010? Quelles sont les façons de voir le code source d'un exe?

17
Ali Poder

Vous ne pouvez pas obtenir la source C++ à partir d'un exe, et vous ne pouvez obtenir une version de la source C # que par réflexion. Aucun ne vous sera très utile, à en juger par la façon dont vous avez posé la question.

23
i_am_jorf

Si le programme a été écrit en C #, vous pouvez obtenir le code source dans presque sous sa forme originale en utilisant . NET Reflector . Vous ne pourrez pas voir les commentaires et les noms de variables locales, mais c'est très lisible.

S'il a été écrit en C++, ce n'est pas si facile ... même si vous pouviez décompiler le code en C++ valide, il est peu probable qu'il ressemble à la source d'origine en raison des fonctions intégrées et des optimisations difficiles à inverser.

Veuillez noter qu'en inversant l'ingénierie et en modifiant le code source, vous risquez de rompre les conditions d'utilisation des programmes, sauf si vous les avez écrits vous-même ou si vous avez la permission de l'auteur.

18
Mark Byers

S'il s'agit de code natif, vous pouvez le démonter. Mais vous ne verrez pas le code original écrit par le programmeur. Vous verrez le code produit par le compilateur (assembleur). Ce code est peut-être optimisé et bien qu'il soit sémantiquement équivalent, il peut être beaucoup plus difficile à lire que l'ASM normal.

S'il s'agit de bytecode (MSIL ou javabytecode), il existe un décompilateur qui peut produire un très bon code source. Pour .net, ce serait un réflecteur.

6
Henri

J'aurais (et aurais) utilisé IDA Pro pour décompiler les exécutables. Il crée du code semi-complet, vous pouvez décompiler en Assembly ou C.

Si vous avez une copie des symboles de débogage, chargez-les dans IDA avant de les décompiler et il pourra nommer de nombreuses fonctions, paramètres, etc.

3
ssube

Il n'y a rien que vous puissiez faire à ce sujet, je le crains car vous ne pourrez pas le voir dans un format lisible, il est à peu près intentionnel et il affichera le code machine interprété, il n'y aurait pas de mise en forme ou de commentaires comme vous le faites normalement obtenir dans les fichiers .cs/.c.

C'est à peu près un scénario aléatoire.

Quelqu'un a déjà posé des questions à ce sujet sur un autre site Web

0
Jamie Keeling