嗨,有没有办法防止 C# 中的特定 dll 在反射器中打开。我可以打开许多 dll 并且可以使用反射器获取代码。但是当试图打开某些 dll 时,它会显示一条错误消息,指出“特定的 dll 不包含 CLI 标头。”。
我怎样才能制作这样的dll?
您确定这些 DLL 是托管代码 dll 吗?我不这么认为,如果它们不包含 CLI 标头,它们就不是用 C# 编写的。
对于您的问题,您无法阻止在反编译器中打开托管 DLL,您所能做的就是对其进行混淆。
如果你想保护你的 .net dll,你可以混淆你的程序集
你也有商业的...
“特定 dll 不包含 CLI 标头。”。消息出现在反射器中,因为它们不是托管 dll (.net)。
我认为曾经有一个特定的 IL 代码导致反射器崩溃。但是这个错误现在已经修复了。
混淆很好 - 您还可以尝试加密代码的某些关键部分并在运行时解密+加载+编译它。问题是如何存储密码。
你无法阻止它被反光板打开。
没有办法阻止 Reflector 打开 .Net 程序集,但是您通过混淆程序集使其变得毫无意义。混淆后,类/方法/字段被重命名,方法中的内联字符串被加密,方法调用被隐藏,方法控制流被打乱等等。因此,任何使用 Reflector 的人都会看到很多垃圾,并且无法理解其中的大部分内容。
免责声明:我为Crypto Obfuscator的开发人员 LogicNP Software 工作