<分区>
这是真的吗? 有人可以从 MSIL 反编译我用 C# 编写的代码吗? 来自 .exe 文件?
<分区>
这是真的吗? 有人可以从 MSIL 反编译我用 C# 编写的代码吗? 来自 .exe 文件?
最佳答案
大部分是真的。一位名叫 Lutz Roeder 的非常聪明的程序员编写了一个出色的反编译器,名为 Reflector (现在归 redgate 所有)。它非常擅长将 IL 转换回 C# 或 VB.NET 代码。这不是完全的魔法,它不能
并且有一些错误使它不得不使用 goto 语句或失败。它在其他方面非常用作调试辅助工具,可帮助您发现和诊断您未编写的代码中的错误。没有文献记载任何人使用它从反编译获得的盗版源代码开始成功的业务。它的效果太好了。
否则,它已经为“混淆器”开辟了一个活跃的市场领域,混淆器是一种重写程序集内容以使其难以反编译的工具。典型的策略是重写标识符,使它们变得很难解释和/或修改程序集的结构,这样反编译器会崩溃但 CLR 不会。 Reflector 的当前所有者 Redgate 也销售混淆器。 Visual Studio 付费许可证中包含一个,称为“Dotfuscator Community Edition”。不知道它有多好,这从来没有经过测试。
只需在代码中使用大量 lambda 和迭代器就已经是混淆代码的极佳方法。将其逆向工程为原始代码非常困难。 Lutz 在同一时间放弃 Reflector 并非巧合,那是 C# 变得太难可靠地反编译的时候。
关于C#反编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480091/