是的,net二进制文件(EXE和DLL)可以很容易地反编译为接近源代码。检查工具. net Reflector。在任何。net二进制文件上尝试一下。最好的选择是混淆文件,它们仍然可以被。net Reflector反编译,但它们会造成一团不可读的混乱。我不认为好的混淆器是免费或廉价的。一个是Visual Studio附带的Dotfuscator社区版。
.NET有一个名为< em > SuppressIldasmAttribute < / em >的属性,它阻止了代码的反汇编。例如,考虑以下代码:
using System;
using System.Text;
using System.Runtime.CompilerServices;
[assembly: SuppressIldasmAttribute()]
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world...");
}
}
}