我在最终用户计算机上将知识产权编码为.net 2.0完全受信任的程序集(.exe + DLL),我希望防止被黑客攻击/反向工程(WebService /云计算解决方案)不是一种选择)。以下列出了我为实现这一目标而收集的技术。
我的问题是:
提前致谢。
-
建议的技巧
要考虑的要点
答案 0 :(得分:2)
我担心你不会得到你想要的所有安全保障。您看,这是使用中级语言的这些语言/平台的问题。它必须采用所有运行时实现都可以使用的格式,然后生成本机代码。
我看过一些关于篡改签名程序集的博客文章。我还没有尝试过,但我认为它有效。除此之外,混淆工具只会使提取代码变得更难,但并非不可能(尽管有一些非常好的工具使得它变得非常困难)。 NGEN不是为了那个。您仍然需要分发原始程序集。
我认为保护代码最有效和最安全的方法是将其转换为无法反编译的技术,例如,将敏感代码移动到非托管C ++并在C#代码上使用DLLImport。 / p>
这并不意味着您不应该尝试保护您的代码,但您应该记住,您不会受到100%的保护。如果您无法用其他语言重写敏感代码,请使用模糊处理和签名。你不能比那更安全。