3

嗨,有没有办法防止 C# 中的特定 dll 在反射器中打开。我可以打开许多 dll 并且可以使用反射器获取代码。但是当试图打开某些 dll 时,它会显示一条错误消息,指出“特定的 dll 不包含 CLI 标头。”。

我怎样才能制作这样的dll?

4

4 回答 4

11

您确定这些 DLL 是托管代码 dll 吗?我不这么认为,如果它们不包含 CLI 标头,它们就不是用 C# 编写的。

对于您的问题,您无法阻止在反编译器中打开托管 DLL,您所能做的就是对其进行混淆。

于 2009-05-14T10:16:56.203 回答
4

如果你想保护你的 .net dll,你可以混淆你的程序集

免费的 .NET 混淆工具

你也有商业的...

“特定 dll 不包含 CLI 标头。”。消息出现在反射器中,因为它们不是托管 dll (.net)。

于 2009-05-14T10:21:11.263 回答
2

我认为曾经有一个特定的 IL 代码导致反射器崩溃。但是这个错误现在已经修复了。

混淆很好 - 您还可以尝试加密代码的某些关键部分并在运行时解密+加载+编译它。问题是如何存储密码。

你无法阻止它被反光板打开。

于 2009-05-14T10:47:44.990 回答
2

没有办法阻止 Reflector 打开 .Net 程序集,但是您通过混淆程序集使其变得毫无意义。混淆后,类/方法/字段被重命名,方法中的内联字符串被加密,方法调用被隐藏,方法控制流被打乱等等。因此,任何使用 Reflector 的人都会看到很多垃圾,并且无法理解其中的大部分内容。

免责声明:我为Crypto Obfuscator的开发人员 LogicNP Software 工作

于 2011-08-11T05:04:46.217 回答