2

这是 SO 中关于保护/混淆 .Net 应用程序的现有问题的变体。

我正在用 C# 开发一个 API,其中包含一些我很想保护的算法。我知道没有任何方法是完美的,但是这样做的普遍接受的方法是什么?

我希望我的客户能够针对 API 进行编码,但我不希望他们对里面的内容进行逆向工程(至少我不想让他们变得容易)。

如果我混淆代码,那不会也混淆 API 吗?

我们正在查看 smartAssembly 对产品的任何想法评论将不胜感激。

4

4 回答 4

2

这可能不是您的选择,但请考虑通过从不分发算法来保护它们。您可以通过 Web 服务、.asmx 或 WCF 提供处理吗?

AFAIK,没有绝对完美的方法来保护您的代码,但是混淆和加密会使它变得比逆向工程更难。

于 2010-03-17T14:58:51.963 回答
2

混淆它。混淆工具不会混淆公共 API,因为这会破坏依赖它的外部代码。

于 2010-03-17T15:00:03.640 回答
1

你提到了 smartAssembly。还有DotnetreactorDotfuscator和一个开源混淆器:sharpobfuscator

于 2010-03-17T15:03:47.517 回答
1

一个好的代码混淆器将采用 lis tof 异常来不混淆,并且 IN GENERAL 会切换到仅混淆实现细节而不触及公共 API(类、属性等)。所以,如果你编码正确(外观公开,所有实现细节都是非公开的)它应该做得很好。

于 2010-03-17T14:58:03.993 回答