我有一个共享的.Net DLL,由一些应用程序和一个可公开使用的API使用。我计划分发API DLL,但由于链接也必须分发共享的dll。
防止不必要的类和数据被使用的最佳选择是什么?
将共享dll中的所有内容声明为未在API中使用的内部?
创建一个包含API和其他项目之间所有共享项的新DLL?
编辑:所有内容都是在C#中创建的。我也最感兴趣的是为用户提供一个友好而友好的API。我的理解是,无论我做什么,用户总是可以使用反射器来查看它。
答案 0 :(得分:2)
您没有提到您要使用的语言。如果它是一个托管程序集,那么它比你要求的要多得多。
只需尝试隐藏内部方法或私有代码,代码就可以反编译。所以这是你必须要处理的第一件事。你必须对代码进行模糊处理,以便反编译的内容是不可理解的。
你可以锁定dll,但这很难完成,取决于你的实现情况,它可能根本没用。
我在RedGate购买之前使用过这款产品,很棒。它从我的代码中击败了裤子,这些代码是从网上的随机帖子中剔除的。但它可能是你想要使用的东西。
http://www.red-gate.com/products/dotnet-development/smartassembly/
答案 1 :(得分:0)
安全机制决策基于资源的重要性。仅仅因为通常方法越安全,性能面板就越多。