Como faço para decompor um .NET EXE em código # fonte legível C?
-
05-07-2019 - |
Pergunta
Eu escrevi um aplicativo C # para um cliente um par de anos atrás, mas eu já não tenho o código fonte. Tudo o que tenho é o EXE que eu implantado no PC do cliente. Existe uma maneira que eu possa gerar C # código fonte do EXE?
Solução
refletor e seu add-in FileDisassembler
refletor permitirá ver o código fonte. FileDisassembler permitirá que você convertê-lo em uma solução VS.
Outras dicas
Quando Red Gate disse que não deixaria de ser uma versão gratuita do Net Reflector, eu comecei a usar ILSpy e Telerik de JustDecompile . Eu descobri ILSpy descompilar mais precisão do que JustDecompile (que ainda está em Beta). Red Gate mudou sua decisão e ainda tem uma versão gratuita do Net Reflector, mas agora eu como ILSpy.
A partir do site ILSpy ( http://www.ilspy.net/ ):
ILSpy é o navegador assembly .NET de código aberto e decompiler.
ILSpy Características
- navegação Assembleia
- IL Desmontagem
- Decompilation para C #
- Suporta lambdas e 'rendimento retorno'
- documentação mostra XML
- Saving de recursos
- Pesquise tipos / métodos / propriedades (substring) baseada em Hyperlink
- Tipo / método / navegação de propriedade
- Base / Derivado de navegação tipos
- Histórico de navegação
- BAML para XAML decompiler
- Save Assembléia como C # projeto
- Encontre o uso de campo / método
- Extensible via plugins (MEF)
Update:
15 abril de 2012, ILSpy 2.0 foi lançado. Novos recursos em comparação com a versão 1.0:
- Listas de montagem
- Suporte para Decompiling Árvores de expressão
- Suporte para operatores levantadas em nullables
- Decompile para Visual Basic
- Pesquise várias cadeias separadas por espaço (em busca de "manager Assembléia" em ILSpy.exe iria encontrar AssemblyListManager)
- Ao clicar em uma variável local irá destacar todas as outras ocorrências de essa variável
- Ctrl + F pode ser usado para procurar dentro da visualização de código decompiled
Update:
- ILSpy 2,1 suportes async / await decompilation
refletor não é mais livre em geral, mas eles oferecê-lo 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:
Telerik JustDecompile é gratuito e tem um recurso para criar projetos de .NET assembléias.
Estou surpreso que ninguém tenha mencionado Microsoft é ildasm . Pode não ser tão bonita quanto ILSpy ou refletor, mas ele vem com Visual Studio tantos desenvolvedores já tê-lo.
Para executá-lo (assumindo VS 2013, devem ser semelhantes para outras versões):
- Selecione Iniciar> Todos os Programas> Visual Studio 2013> Visual Studio Tools.
- Clique duas vezes no desenvolvedor Command Prompt para VS2013.
- Executar "ildasm" do comando resultante alerta.
- Na ferramenta, selecione File> Open e abra o seu executável ou DLL.
Agora você pode navegar na estrutura de DLL. Clique duas vezes em membros da classe para ver o IL. Use Arquivo> Dump para exportar IL em um arquivo.
Você quer refletor .