这是SO中关于保护/混淆.Net应用程序的现有问题的变体。
我正在开发一个C#中的API,其中包含一些我希望保护的算法。 我知道没有哪种方法是完美的,但是普遍接受的方法是什么?
我希望我的客户能够对API进行编码,但我不希望他们对内部的内容进行逆向工程(至少我不想让它们变得容易)。
如果我对代码进行模糊处理,那么这也不会混淆API吗?
我们正在关注smartAssembly任何想法对产品的评论都会受到赞赏。
答案 0 :(得分:2)
这可能不是您的选择,但请考虑保护算法,不要将它们分发出去。您能通过Web服务,.asmx或WCF提供处理吗?
AFAIK,没有绝对完美的方法来保护您的代码,但混淆和加密可能会使逆向工程变得更加困难。
答案 1 :(得分:2)
模糊它。混淆工具不会混淆公共API,因为这会破坏依赖它的外部代码。
答案 2 :(得分:1)
一个优秀的代码混淆器将采用不混淆的异常,并且IN GENERAL只能切换到混淆实现细节而不触及公共API(类,属性等)。所以,如果你编码正确(门面公开,所有实施细节都是非公开的),它应该做得很好。
答案 3 :(得分:1)
您提到了smartAssembly。还有Dotnetreactor,Dotfuscator和开源混淆器:sharpobfuscator。