IL - независимый от платформы уровень абстракции над собственным кодом.Код, написанный на платформе .NET на C #, VB.NET или другом языке .NET, компилируется в сборку .EXE / .DLL, содержащую IL.Как правило, при первом выполнении кода IL среда выполнения .NET запускает его через NGen, который снова компилирует его в собственный код и сохраняет выходные данные во временном месте, где он фактически выполняется.Это позволяет развертывать код платформы .NET на любой платформе, поддерживающей эту платформу .NET, независимо от процессора или архитектуры системы.
Как вы уже видели, Reflector отлично подходит для просмотра кода в сборке.потому что IL можно легко просмотреть в форме C # или VB.NET.Это связано с тем, что IL, как правило, представляет собой инструкции более высокого уровня и также содержит много метаданных, которых обычно не было бы в собственном коде, таких как имена классов, методов и переменных.
Также возможно скомпилировать a.NET проект напрямую в собственный код, установив платформу проекта Visual Studio или вызвав Ngen.exe непосредственно в сборке.После этого действительно трудно понять нативный код.