我想知道在这种情况下保护apllication和DLL文件的最佳方法是什么:
示例:
需求#1 -
Req#2 -
。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 -
有谁可以告诉我有关此主题的最佳做法?
不同的解决方案,优点和缺点等......
。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 - 。 -
答案 0 :(得分:0)
需求1
我不确定这是否符合您的需求,但您可以使用涉及USB加密狗的商业解决方案。您可以找到几家提供软件安全解决方案in the internet的公司。这些产品附带的大多数软件组件都包含许可和时间到期方式。 另一方面,您需要更高的硬件成本以及投入集成的时间和工作。
需求2
取决于您的DLL的接口。您是否认为您的客户或其他人可以在界面上没有适当的标题和信息的情况下轻松使用您的DLL?
如果您这么认为,也许您可以使界面看起来更复杂或使用模糊处理。
答案 1 :(得分:0)
我在this响应中回答了有关许可/保护软件的问题 - 这对于您控制下的DLL也可以正常工作。简而言之,部署无法复制的东西是不可能的,但可以在部署后生成密钥,然后通过呼叫您的组或公司来获得许可。
关于 Req 2 ,我认为最合理的方法就是将参数传递给可能黑客无法知道的每个函数。我不相信使名称复杂或以其他方式混淆它们有帮助(您可以始终分析DLL以发现其内容)。混淆也会使你更难维护 - 从来不是一个好主意。我怀疑保护它们比维护这些DLL更重要!
因此,我会投票给某些形式的幻数传递给你的函数。最简单的是一个简单的整数。更安全的是时间表示(时间窗口最好),然后哈希。如果DLL中的dehash与当前时间匹配,则表示您已使用自己的代码调用。