为什么我们可以很容易地反编译.net程序集

本文关键字:编译 net 程序集 很容易 我们 为什么 | 更新日期: 2023-09-27 18:10:33

为什么我们可以很容易地反编译。net程序集?

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

有很多软件我可以用来混淆我的应用程序代码,但为什么它需要混淆保护?难道微软就不能让人们很难知道吗?主要原因可能是。net代码应该变成IL代码吗?这是真的吗?

为什么我们可以很容易地反编译.net程序集

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

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

为什么微软不这么做?因为你不能保护你的代码不受黑客的攻击。像最大的软件供应商一样,他们不做这样的内置功能,但他们让你有一个工具市场,在那里你可以根据你的需求和口袋大小选择最适合你的工具。

当你用DotPeek或Reflector打开。net DLL时,你正在将IL转换回你选择的语言的代码。可视化这一点很重要,因为它不会给你完全相同的代码,只是代码会产生相同的IL。