É possível recuperar o arquivo de origem de um exe?

5

Eu vi meu amigo recuperando o arquivo de código-fonte de um arquivo java '* .class' . Ele usou algum tipo de software para ele.

É possível fazer o mesmo com um '*. exe' ? Se sim, como posso fazer isso? Também é ético fazer uma coisa dessas, considerando que o executável é apenas um pequeno arquivo que não tem o direito de cópia?

    
por Pavitar 12.05.2011 / 15:29

6 respostas

8

Depende da linguagem subjacente usada pelos desenvolvedores.

Para linguagens Java e .NET, é possível na maioria das vezes "descompilar" o código-fonte. não será o verdadeiro código original (os nomes das variáveis serão diferentes, as otimizações pelo compilador terão código reorganizado, etc), mas estarão próximas.

Outras linguagens como C / C ++ não são tão fáceis.

No que diz respeito à ética, se você é apenas um programador de hobbies interessado em brincar, tudo bem. No entanto, se você é um profissional e está tentando obter um código-fonte para copiar um aplicativo, isso é muito antiético e um grande não-não!

    
por 12.05.2011 / 15:43
4

Se o aplicativo estiver escrito em um dos idiomas .NET (VB / C #), você pode usar o Reflector reflector.red-gate do Red Gate .com para desmontar o aplicativo nos arquivos de origem correspondentes. Nem toda aplicação é escrita em linguagens gerenciadas como esta, e decompilar uma aplicação C ++, ou uma escrita em Delphi ou outra linguagem não gerenciada não é tão fácil, e tudo o que você pode realmente obter é hexadecimal, que é muito difícil então reconstrua em uma aplicação real.

    
por 12.05.2011 / 15:40
2

Você não pode fazer isso se o código .exe estiver em C / C ++, mas se estiver em C # você pode fazê-lo. Eu não conheço uma boa ferramenta para isso, mas uma maneira é usar o ANTS Profiler. Ele mostra todos os objetos, métodos e argumentos de um binário C #.

    
por 12.05.2011 / 15:34
1

Sim, é possível descompilar os arquivos .exes usando ferramentas como O Decompilador dcc . Isso produzirá bons resultados se o programa original foi escrito em C. Se foi escrito em outro idioma, talvez seja necessário tentar outra ferramenta adequada para esse idioma.

Ao descompilar o software, quanto mais linguagem de montagem você conhecer, melhor será necessário examinar o código de alto nível do assembly de baixo nível se o decompilador ficar confuso ou se algum código tiver sido escrito na linguagem Assembly.

O descompilar é uma excelente maneira de estudar como os programas funcionam no nível mais baixo. Você também descobrirá que, em muitos casos, o programa descompilado será compilado de volta ao exe, mas os símbolos usados para descrever as variáveis são totalmente sem sentido. Você pode ter que fazer um trabalho de detetive para realmente entender o que o código significa e faz.

Não vejo nada de errado eticamente em descompilar o código para sua própria diversão ou educação, mas se você tiver intenções maliciosas, como descompilar software comercial para alterar a mensagem de direitos autorais para a sua ou para procurar uma vulnerabilidade para exploração maliciosa, isso pode ser considerado antiético.

Você pode descobrir que o desenvolvedor fez alguns esforços para evitar a descompilação criando um carregador que descompacte o software na memória ou que o código confunda explicitamente os descompiladores. Isso tudo é parte da diversão.

    
por 12.05.2011 / 15:47
1

O lado técnico: Sim, é possível descompilar o código ... mais ou menos. O que você receberá de volta não será o código-fonte original e nem mesmo poderá se assemelhar ao código-fonte original, a menos que o executável tenha sido compilado com os símbolos de depuração completos ativados. As compilações de produção final geralmente têm os símbolos de depuração desativados, no entanto, a fim de manter o executável o menor possível e evitar dar mais do que o mínimo de informações para qualquer pessoa que examine o executável.

O lado legal: sob o Digital Millennium Copyright Act, tentando descompilar ou fazer engenharia reversa de qualquer software que o detentor dos direitos autorais tenha tentado proteger contra isso. Conforme interpretado pelos tribunais até agora, não importa quão ridiculamente fraca a tentativa possa ser, ainda é ilegal. Mesmo que não existam medidas tecnológicas para proteger o código, é provável que haja um contrato de licença declarando que você não tem permissão para descompilar ou fazer a engenharia reversa do executável.

Como regra geral, eu costumo considerar essas coisas totalmente éticas, contanto que você não as esteja fazendo com a intenção de prejudicar ninguém, mas a lei tende a discordar.

    
por 12.05.2011 / 16:22
0

Obtendo o código-fonte dos arquivos .class, o java é fácil, mas é difícil obter código dos arquivos .exe.Use este link para desmontar arquivos .exe, mas este código gerado não será o mesmo que original, pois perde muitas linhas que são ignoradas pelo compilador, o que dificulta a leitura.

    
por 27.01.2016 / 13:34