我在等有一定使用很多读者卢茨罗德的.NET反射反编译他们的.NET代码。 我很惊讶只是如何准确地我们的源代码可以从我们编译的程序集被recontructed。
我很希望听到你们中使用模糊许多,和什么样的产品?
我敢肯定,这是对,比方说,你下载在互联网上提供的,而不是被内置定制特定客户端的东西.NET应用程序一个更重要的问题。
我在等有一定使用很多读者卢茨罗德的.NET反射反编译他们的.NET代码。 我很惊讶只是如何准确地我们的源代码可以从我们编译的程序集被recontructed。
我很希望听到你们中使用模糊许多,和什么样的产品?
我敢肯定,这是对,比方说,你下载在互联网上提供的,而不是被内置定制特定客户端的东西.NET应用程序一个更重要的问题。
我不会担心太多。 我宁愿专注于扑灭一个真棒产品,获得了良好的用户基础,并处理客户的权利不是担心涉及窃取您的密码或查看源用户的最小百分比。
请记住,模糊是不加密的。 恕我直言,如果有人在逆向工程代码感知价值,他们会做的。 这对于托管代码或本机代码的真实,混淆与否。 当然,混淆阻止漫不经心的观察者,但您的业务实际上是由这样的人受到威胁? 我见过的每一个.NET扰乱方法让你的生活,作为一个开发者更难。
有服务,提供真正的加密技术,如微软SLPS。 见http://www.microsoft.com/slps/default.aspx
目前,我们混淆我们所有的输出,即使我们是一个小的衣服谁销售专业软件的客户端数量很小。
我们做了一个简单的原因这个决定 - 我们发现了一个心怀不满的前雇员被积极地接近我们的客户请求的二进制文件 - 有一些有些担忧,他正打算扭转以提供竞争性的功能工程师新功能。
当然,他还是能够做到这一点,如果他使用的软件,但没有理由让他轻松。
没有新的困惑,但是很多编译器的技巧,因为1.1
例如每次使用匿名类型你IL,编译回来一个漂亮的晦涩的名字。 每次使用时产量你同时实现IEnumerable和IEnumerator的(聪明的优化,不可读代码)一类全新的。 每次使用匿名委托时你得到这在我所知道的每一个.NET语言无效名称的新方法,但在IL这很好。
@Rob库珀
有过一些讨论,我在工作中的经理,他说他不混淆,但确实NGEN上安装,apparantly应该是不足以阻止反射器上的组件的工作,但我不知道这是不是真的到什么程度,所以请不要把它当作福音:)
这不提供任何针对拆卸保护。 首先我想它很可能从任何安装包像一个MSI或CAB文件中提取原始数据文件。
但更重要的是,NGEN已安装该组件后,客户机上运行。 NGEN只是强制装配编译现在,而不是以后使用JIT。 原来的组件保持与未改性的,它必须保持,因为NGEN可能无法编译整个组件。
NGEN是性能,而不是安全性,也无法抑制拆卸或使其甚至略有更加困难。
容易的,我 - 如果你需要保护知识产权 - obfuicate - 如果不是不。
这很容易做到使用正确的工具。
我认为在一定程度上,我们都应该担心我们的IP :)
好问题,但它的东西,我很希望更多地了解(我目前不混淆)。
有过一些讨论,我在工作中的经理,他说他不混淆,但确实NGEN上安装,apparantly应该是不足以阻止反射器上的组件的工作,但我不知道这是不是真的到什么程度,所以请不要把它当作福音:)
问得好:) +1
我们不使用“非公共”应用程序的模糊,但我们使用它的公众可用的应用程序。 混淆的应用程序包含了大量的非常复杂的代码,它把我们的时间量过高写,就是这样让我觉得迷惑是必须的原因 - 至少在这种情况下。
Obsfucation在它的效力有限,可能保持休闲的人离开。 最有效的obsfucation正在仅提供给用户的最小数量的代码。 如果可以,让你的应用程序运行在很大程度上取决于脂肪的服务器上。
同意,谁知道如何编写哪怕一点点不需要偷你的代码大部分人!