为什么我们可以轻松地反编译.NET程序集?

时间:2011-10-04 06:38:28

标签: c# decompiler

为什么我们可以轻松地反编译.NET程序集?

我们可以轻松地反编译.NET EXE文件的主要原因是什么?

我可以使用很多软件来混淆我的应用程序代码,但为什么需要混淆保护?难道微软基本上难以理解吗?可能主要原因是.NET代码应该变成IL代码吗?这是真的吗?

3 个答案:

答案 0 :(得分:2)

IL代码(.NET程序集包含的内容)是一种更高级别(虚拟)的机器语言(并且更简单 - 仅基于堆栈,没有寄存器等,就像在CPU中一样)而不是CPU程序集( x86,ARM等)更低级别且不容易(因为有各种寄存器等)。

因此,当C#编译器编译为IL代码时,构造(猜测)原始C#代码要容易得多。

答案 1 :(得分:1)

微软为什么不这样做?因为您无法保护您的代码免受确定的黑客攻击。像最大的软件提供商一样,他们不会制作这样的内置产品,但是它们让您拥有一个工具市场,您可以根据自己的需求和口袋大小为您选择最合适的工具。

答案 2 :(得分:0)

当您使用DotPeek或Reflector打开.NET DLL时,您将使用您选择的语言将IL转换回代码。重要的是要将其可视化,因为它不会返回与编写完全相同的代码,只会产生相同IL的代码。