É possível recuperar o código-fonte de um executável?: ciência, algoritmos e limites da descompilação