确保DLL文件与许可文件[关闭](Secure a DLL file with a license

2019-06-24 12:59发布

什么是确保一个DLL的使用/加载了许可文件的最好方法?

Answer 1:

一对夫妇的事情,你可能要考虑:

校验和的DLL。 使用加密散列函数 ,你可以存储这个许可证文件内或DLL里面。 这提供了一个验证的方法来确定。如果我原来的DLL文件是未受攻击,或者如果它是这个DLL的许可文件。 几个简单的字节交换技术,可以快速把你的哈希函数人迹罕至(因而不容易繁殖)。

不要储存你哈希为一个字符串,将它分成不同的地方无符号的短裤。

正如拉里说,MAC地址是相当普遍的。 有很多的如何获取中的实例代码项目 ,但要注意很容易伪造的这些日子。

我的建议,应该使用私有/公共密钥生成许可证。

总之,攻击的模式将是二进制(修改DLL文件的说明),所以防止这一点,或密钥生成,从而使每个许可证用户,机器,甚至安装特定。



Answer 2:

您可以检查的DllMain(内部许可证)和死,如果它没有找到。



Answer 3:

这也取决于你的许可的算法是如何工作的。 我建议你考虑使用类似的东西Diffie-Hellman密钥交换 (甚至RSA )来生成某种可以传递给用户,根据一些资料公/私钥。

(根据不同的应用程序,我知道1箱子,我写的许可证代码合同的公司,他们使用的MAC地址 ,以及其他一些数据,散列它,加密哈希,给他们“键值”,如果登记号码是正确的)。 这可确保密钥文件不能移动,(或提供)到另一台机器,从而“偷”的软件。

如果你想更深入和避免黑客,这是一个整体“诺特尔话题....



文章来源: Secure a DLL file with a license file [closed]