Ho scritto un'applicazione C # per un client un paio di anni fa, ma non ho più il codice sorgente. Tutto quello che ho è il file EXE che ho distribuito sul PC del client. Esiste un modo per generare codice sorgente C # da EXE?
Ho scritto un'applicazione C # per un client un paio di anni fa, ma non ho più il codice sorgente. Tutto quello che ho è il file EXE che ho distribuito sul PC del client. Esiste un modo per generare codice sorgente C # da EXE?
Risposte:
Reflector e il suo componente aggiuntivo FileDisassembler .
Reflector consentirà di vedere il codice sorgente. FileDisassembler ti permetterà di convertirlo in una soluzione VS.
Quando Red Gate disse che non ci sarebbe stata più una versione gratuita di .Net Reflector, ho iniziato a usare ILSpy e JustDecompile di Telerik . Ho trovato ILSpy decompilare in modo più accurato di JustDecompile (che è ancora in beta). Red Gate ha cambiato la sua decisione e ha ancora una versione gratuita di .Net Reflector, ma ora mi piace ILSpy.
Dal sito web ILSpy ( https://github.com/icsharpcode/ILSpy/ ):
ILSpy è il browser e decompilatore di assembly .NET open source.
Aggiornare:
15 aprile 2012, ILSpy 2.0 è stato rilasciato. Nuove funzionalità rispetto alla versione 1.0:
Aggiornare:
Reflector non è più gratuito in generale, ma lo offrono gratuitamente agli sviluppatori open source: http://reflectorblog.red-gate.com/2013/07/open-source/
Ma alcune aziende come DevExtras e JetBrains hanno creato alternative gratuite:
Reflector e il componente aggiuntivo Disassemblatore file di Denis Bauer. In realtà produce progetti di origine da assiemi, in cui Reflector da solo mostra solo la fonte disassemblata.
AGGIUNTO: Il mio ultimo preferito è dotPeek di JetBrains .
Telerik JustDecompile è gratuito e ha una funzione per creare progetti da assembly .NET.
Sono sorpreso che nessuno abbia menzionato l' illasmo di Microsoft . Potrebbe non essere bello come ILSpy o Reflector, ma viene fornito con Visual Studio, quindi molti sviluppatori lo hanno già.
Per eseguirlo (supponendo VS 2013, dovrebbe essere simile per altre versioni):
Ora puoi navigare nella struttura DLL. Fai doppio clic sui membri della classe per vedere l'IL. Usa File> Dump per esportare IL in un file.
Vuoi un riflettore .