使用许可证文件来保护DLL文件

使用许可证文件来确保使用/加载DLL的最佳方法是什么?


您可能需要考虑的几件事情:

检查总和的DLL。 使用加密散列函数,您可以将其存储在许可证文件内部或DLL内部。 这提供了一个验证方法来确定我的原始DLL文件是否未被打开,或者它是否是此DLL的许可证文件。 一些简单的字节交换技术可以快速将你的散列函数带离繁琐的轨道(因此不容易重现)。

不要将散列存储为字符串,而是将其拆分为不同位置的未签名短裤。

正如Larry所说,MAC地址相当普遍。 有很多关于如何在代码项目上获得的例子,但请注意这些日子很容易造假。

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

简而言之,攻击模式将是二进制的(修改DLL文件的指令),以防止出现这种情况或密钥生成,以便使每个许可证用户,计算机甚至特定的安装成为可能。


您可以检查DllMain()中的许可证,如果找不到它,就会死掉。


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

(根据应用程序的不同,我知道有一种情况是我在公司的合同中编写了许可证代码,他们使用MAC地址和其他一些数据对其进行散列处理,并对散列进行加密,从而为他们提供“关键值”,如果注册号码是正确的)。 这确保密钥文件不能被移动(或给定)到另一台机器,从而'窃取'软件。

如果你想更深入地挖掘并避免黑客,那么这是一个完整的'未来主题....

链接地址: http://www.djcxy.com/p/81873.html

上一篇: Secure a DLL file with a license file

下一篇: Managing features on a license basis for a C++ application