J'ai écrit une application C # pour un client il y a quelques années, mais je n'ai plus le code source. Je n'ai que l'EXE que j'ai déployé sur le PC du client. Existe-t-il un moyen de générer du code source C # à partir de l'EXE?
J'ai écrit une application C # pour un client il y a quelques années, mais je n'ai plus le code source. Je n'ai que l'EXE que j'ai déployé sur le PC du client. Existe-t-il un moyen de générer du code source C # à partir de l'EXE?
Réponses:
Reflector et son complément FileDisassembler .
Le réflecteur permettra de voir le code source. FileDisassembler vous permettra de le convertir en solution VS.
Lorsque Red Gate a dit qu'il n'y aurait plus de version gratuite de .Net Reflector, j'ai commencé à utiliser ILSpy et JustDecompile de Telerik . J'ai trouvé ILSpy pour décompiler plus précisément que JustDecompile (qui est toujours en version bêta). Red Gate a changé sa décision et a toujours une version gratuite de .Net Reflector, mais maintenant j'aime ILSpy.
Depuis le site Web ILSpy ( https://github.com/icsharpcode/ILSpy/ ):
ILSpy est le navigateur et décompilateur d'assembly .NET open source.
Mettre à jour:
Le 15 avril 2012, ILSpy 2.0 est sorti. Nouvelles fonctionnalités par rapport à la version 1.0:
Mettre à jour:
Reflector n'est plus gratuit en général, mais ils le proposent gratuitement aux développeurs open source: http://reflectorblog.red-gate.com/2013/07/open-source/
Mais quelques entreprises comme DevExtras et JetBrains ont créé des alternatives gratuites:
Reflector et le complément File Disassembler de Denis Bauer. Il produit en fait des projets source à partir d'assemblages, où Reflector à lui seul n'affiche que la source désassemblée.
AJOUT: Mon dernier favori est le dotPeek de JetBrains .
Telerik JustDecompile est gratuit et dispose d'une fonctionnalité pour créer des projets à partir d'assemblages .NET.
Je suis surpris que personne n'ait mentionné l' ildasm de Microsoft . Il n'est peut-être pas aussi joli qu'ILSpy ou Reflector, mais il est livré avec Visual Studio, de nombreux développeurs l'ont déjà.
Pour l'exécuter (en supposant que VS 2013, devrait être similaire pour les autres versions):
Vous pouvez maintenant naviguer dans la structure DLL. Double-cliquez sur les membres de la classe pour voir l'IL. Utilisez Fichier> Dump pour exporter IL dans un fichier.
Vous voulez un réflecteur .