Как правило, такие языки, как Java, C # и VB.NET, относительно легко декомпилировать, поскольку они скомпилированы на промежуточный язык, а не на чистый машинный язык. В своей форме IL они сохраняют больше метаданных, чем код C при компиляции на машинный язык.
Технически, вы не получаете исходный исходный код, а вариацию исходного кода, которая при компиляции вернет вам скомпилированный код. Он не идентичен исходному коду, поскольку такие вещи, как комментарии, аннотации и директивы компилятора, обычно не переносятся в скомпилированный код.