En général, les langages Java, C# et VB.NET sont relativement faciles à décompiler car ils sont compilés dans un langage intermédiaire et non dans un langage machine pur. Dans leur forme IL, ils conservent plus de métadonnées que le code C lorsqu'il est compilé en langage machine.
Techniquement, vous ne récupérez pas le code source d'origine, mais une variante du code source qui, une fois compilé, vous redonnera le code compilé. Il n'est pas identique au code source, car les éléments tels que les commentaires, les annotations et les directives du compilateur ne sont généralement pas reportés dans le code compilé.