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.