Każdy Kod mozna "rozkodować", C++, Java, C#.... (natywny i nienatywny)
Różnica jest taka że rozkodowanie kodu natywnego można jedynie do języka bardzo niskopoziomowego, o wiele trudniej do języków średnio i wysoko poziomych
przeczytaj o Zaciemnianie kodu
Tu masz bardzo podobny i ciekawy temat: http://forum.4programmers.net/Java/166653-Zaciemnianie_kodu