0

我们即将使用代码保护器(Obsfucation 和 Native Compilation),我认为 ORM 将稍微依赖于反射,我担心 Obsfucation 和 Native Compilation 保护技术会产生任何问题吗?

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

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

问题不是关于什么是代码保护以及我应该使用哪一个,我试图询问保护对 ORM 的影响。

4

3 回答 3

0

试试 .Net Reactor。可在http://www.eziriz.com/获得

它比周围的其他一些便宜很多,而且它可以做得更多。您还可以禁用某些选项(例如混淆,以保留反射的使用)并且只启用某些选项,例如 ILDASM Suppression,它仍然可以保护代码。

干杯

于 2009-09-22T23:25:12.160 回答
0

Redgate不久前收购了Smart Assembly ,如果我需要这样做,我会考虑这样做。

不久前,我试用了 CodeViel 来研究混淆/加密代码,并取得了一定程度的成功。我认为,如果您认真对待这样做,那并不像将一个组件放在一端然后弹出一个受保护的组件那么简单。您必须考虑仅在内部使用的部分代码(即命名空间、类、方法、字段、属性、结构、事件和资源),以及需要向其他资源和库公开的部分。在我正在查看的情况下,我能够加密(或使用本机编译)以隐藏一些方法实现,但保留类定义(名称、方法、属性不变)。在某些情况下,我保持整个命名空间不变,因为它们只包含其他库所需的简单 POCO 对象。

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

于 2009-09-23T00:27:27.223 回答
0

如果您的代码使用反射,很可能混淆的程序集将不起作用。您需要从混淆中排除那些以其原始名称引用的实体。看看Crypto Obfuscator,它将在混淆期间分析您的代码,并显示调用可能破坏方法(例如 Reflection )的所有方法和行号。这是一个巨大的计时器保护程序,因为它可以精确定位确切位置并帮助确定您需要从重命名中排除的属性/类。

于 2009-11-24T06:59:00.780 回答