C# ORM和.NET代码保护器

C# ORM和.NET代码保护器,c#,.net,orm,obfuscation,source-code-protection,C#,.net,Orm,Obfuscation,Source Code Protection,我们将要使用代码保护器(obsfaction和本机编译),我假设ORMs将稍微依赖于反射,我担心obsfaction和本机编译保护技术会产生任何问题吗 有没有人尝试过为任何好的桌面应用程序提供成功的ORM和代码保护?我们有WPF桌面应用程序 我们的主要开发语言是C#,我们正在使用我们的定制ORM,但我想评估任何商业ORM或ADO.NET EF等 问题不在于什么是代码保护以及我应该使用哪种保护,我想问的是保护对ORM的影响。Try.Net Reactor。可在 它比周围的一些便宜得多,而且可以做得

我们将要使用代码保护器(obsfaction和本机编译),我假设ORMs将稍微依赖于反射,我担心obsfaction和本机编译保护技术会产生任何问题吗

有没有人尝试过为任何好的桌面应用程序提供成功的ORM和代码保护?我们有WPF桌面应用程序

我们的主要开发语言是C#,我们正在使用我们的定制ORM,但我想评估任何商业ORM或ADO.NET EF等


问题不在于什么是代码保护以及我应该使用哪种保护,我想问的是保护对ORM的影响。

Try.Net Reactor。可在

它比周围的一些便宜得多,而且可以做得更多。您还可以禁用某些选项(如模糊处理,以保留反射的使用),并且只启用某些选项,如ILDASM抑制,这仍将保护代码

“干杯”

Redgate是不久前获得的,如果我需要这样做,我会考虑这一点

不久前,我试着让CodeViel研究模糊/加密代码,并取得了一定程度的成功。我认为,如果你真的这么做的话,这并不像在一端放下一个程序集然后弹出一个受保护的程序集那么简单。您必须考虑代码中的部分(即命名空间、类、方法、字段、属性、结构、事件和资源),这些代码只在内部使用,而那些需要暴露于其他资源和库的代码。在我所看到的例子中,我能够加密(或使用本机编译)来隐藏一些方法实现,但保留了类定义(名称、方法、属性)。在某些情况下,我没有触及整个名称空间,因为它们只包含其他库所需的简单POCO对象


对于您在哪里使用的策略,以及一些您可能会混淆的内部结构,这似乎是一个非常仔细的个案基础,从而使反编译/逆向工程变得困难,这就足够了。在其他情况下,您可以使用加密/本机编译来简单地隐藏方法实现。您还将遇到这样的情况,即您完全不允许触摸部件的某些部分。大多数程序都会提供一些推荐的默认值和选项,您可以从中开始,但您需要调整和更改这些默认值和选项,直到生成保护核心IP但不限制最终用户的结果为止。

如果您的代码使用反射,则经过模糊处理的程序集很可能无法工作。您需要从模糊处理中排除那些由原始名称引用的实体。看一看在模糊处理过程中哪些方法将分析代码,并显示所有方法和行号,在这些方法和行号中调用了可能会中断的方法(例如反射)。这是一个巨大的计时器保护程序,因为它可以精确定位确切位置,并帮助确定需要从重命名中排除的属性/类。

请阅读问题,我不想知道尝试哪个保护程序,您是否有过此保护程序对ORM影响的经验?像实体框架、BL工具包等?谢谢,这是我一直在寻找的答案,这是否也意味着WPF等在基于反射的绑定中可能无法正常工作?