Eu escrevi um aplicativo C # para um cliente alguns anos atrás, mas não tenho mais o código fonte. Tudo o que tenho é o EXE que implantei no PC do cliente. Existe uma maneira de gerar código-fonte C # a partir do EXE?
Eu escrevi um aplicativo C # para um cliente alguns anos atrás, mas não tenho mais o código fonte. Tudo o que tenho é o EXE que implantei no PC do cliente. Existe uma maneira de gerar código-fonte C # a partir do EXE?
Respostas:
Refletor e seu suplemento FileDisassembler .
Refletor permitirá ver o código fonte. O FileDisassembler permitirá convertê-lo em uma solução VS.
Quando o Red Gate disse que não haveria mais uma versão gratuita do .Net Reflector, comecei a usar o ILSpy e o JustDecompile da Telerik . Eu encontrei o ILSpy para descompilar com mais precisão do que o JustDecompile (que ainda está na versão beta). O Red Gate mudou sua decisão e ainda tem uma versão gratuita do .Net Reflector, mas agora eu gosto do ILSpy.
No site do ILSpy ( https://github.com/icsharpcode/ILSpy/ ):
O ILSpy é o navegador e descompilador de montagem .NET de código aberto.
Atualizar:
15 de abril de 2012, o ILSpy 2.0 foi lançado. Novos recursos em comparação com a versão 1.0:
Atualizar:
O Reflector não é mais gratuito em geral, mas eles oferecem gratuitamente para desenvolvedores de código aberto: http://reflectorblog.red-gate.com/2013/07/open-source/
Mas algumas empresas como DevExtras e JetBrains criaram alternativas gratuitas:
Reflector e o suplemento File Disassembler de Denis Bauer. Na verdade, ele produz projetos de origem a partir de montagens, onde o Reflector por si só exibe a fonte desmontada.
ADICIONADO: O meu favorito mais recente é o dotPeek do JetBrains .
O Telerik JustDecompile é gratuito e possui um recurso para criar projetos a partir de assemblies .NET.
Estou surpreso que ninguém tenha mencionado o ildasm da Microsoft . Pode não ser tão bonito quanto o ILSpy ou o Reflector, mas vem com o Visual Studio que muitos desenvolvedores já o possuem.
Para executá-lo (assumindo o VS 2013, deve ser semelhante para outras versões):
Agora você pode navegar na estrutura da DLL. Clique duas vezes nos alunos para ver a IL. Use Arquivo> Dump para exportar a IL para um arquivo.
Você quer refletor .