deja faut voir du coté de la legislation, il me semble que c'est interdit (en france)
ensuite tu peux facilement desassembler un programme (on ne compte plus les desassembleur, c'est l'outil du cracker), il est egalement possible de decompiler du C, mais bien sur sans commentaire, sans le nom des variables local, certainement polué par des temp et surtout sans informations de type donc ca doit se resumer par des 'char* + triturage' pour tout ce qui est plus complexe qu'un type de base (et encore)
pour la decompilation c++, c'est 1000 fois pire, du fait que la compilation C++ est extrement complexe par rapport a la compilation C (et encore plus surjective). Faudrais deja connaitre le compilateur (pour les details d'implementation des mechanisme cachés), pour le paradigme OO on arriverait juste a retrouver les fonctions membres des classes et probablement les membres statique, pour le paradigme générique ca se resumerait a des surcharges (on pourrait egalement avoir le type-name des parametres), pour le reste ca serait toujours aussi deguelasse que pour la decompilation du C (et meme plus)
ca doit etre ca a quelques conneries pret