web-dev-qa-db-fra.com

Décompiler le code source précompilé ASP.NET

nous avons une application en production et le code est pré-compilé. Le développeur qui a développé cette application a quitté la société et nous n’avons aucune sauvegarde du code source. le seul accès que nous avons est le code pré-compilé sur le serveur. Nous devons résoudre les problèmes dans l'application maintenant.

Existe-t-il un moyen de décompiler (extraire dans le code source actuel) le code pré-compilé? 

15
msbyuva

Ouvrez les DLL dans .NET Reflector .

13
adamjford

Pour mettre à jour la réponse de @ xOn:

En raison d'un récent désastre de contrôle de source, j'ai dû récupérer mon projet à partir des DLL. Donc, malheureusement, je suis au courant de la procédure:

  1. Obtenez .Net Reflector à partir d’ici: http://www.red-gate.com/products/dotnet-development/reflector/

  2. Vous ne semblez pas avoir besoin de FileDisassembler.

  3. Chargez vos bacs dans Reflector ou double-cliquez dessus.

  4. Notez que le framework .Net n'a peut-être pas conservé la structure de fichier de projet d'origine. Ainsi, si certaines de vos pages ASPX partagent le même nom de classe de base dans différents fichiers .cs (la balise IE Inherits est identique, mais la balise CodeFile est différente), vous ne pourrez pas simplement "exporter le code source". N'exportez pas aveuglément les fichiers sources. Ça ne marchera pas.

  5. Il reste encore du travail à faire avant de pouvoir lancer l'ancien bouton de compilation. Par exemple, les DLL peuvent faire directement référence aux getter/setters de la propriété. Vous devrez résoudre ce problème.

Bonne chance.

3
Vaiden

Commencer avec:

http://www.red-gate.com/products/dotnet-development/reflector/

...plus:

http://www.denisbauer.com/NETTools/FileDisassembler.aspx

Vous devrez recompiler ce dernier pour le lier à la v6.5 du réflecteur (le dernier en date à ce jour.). C’est un bon complément si vous voulez éviter de copier et coller une classe unique dans des fichiers en main. Il va vider une assemblée entièrement en tant que fichiers .cs. Je pense que cela peut même générer un csproj.

Les deux outils sont gratuits.

2
x0n

J'ai eu le même problème et j'ai utilisé Reflector pour le décompiler. J'ai eu le code source, puis changé le bit que je voulais et le reconstruire. Ensuite, j'ai copié cette dll à nouveau sur le site de production. Cela a commencé à refléter mes changements. C'était très facile et pas du tout difficile, peut-être parce que le site précompilé avait des DLL pour chaque page, et pouvait être mis à jour, donc n'avait que le fichier code-behind dans la DLL.

Pour référence: http://www.reflector.net/

0
Bhavjot

Lorsque vous installez .net reflector.its dans Visual Studio. , Vous avez alors vu les outils de réflecteur .net dans la barre de menus.

Cliquez sur le réflecteur .net >> Choisissez Assemblées (fichier Dll) pour déboguer.

0
Wafa Abbas

J'ai trouvé que les dll peuvent être simplement lues en utilisant l'outil .NET Reflector mais je ne peux pas extraire le code source. De plus, une fois les formulaires Web précompilés, nous ne pouvons même pas récupérer le code derrière les fichiers. Tout ce que nous pouvons faire est de déboguer et d'analyser le code.

0
msbyuva