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

有帮助吗?

解决方案

您可能需要考虑以下几点:

检查DLL的总和。使用加密哈希函数,您可以将其存储在许可证文件内或DLL中。这提供了一种验证方法,用于确定我的原始DLL文件是否未被破解,或者它是否是此DLL的许可证文件。一些简单的字节交换技术可以快速将哈希函数从常规轨道中移除(因此不容易重现)。

不要将哈希值存储为字符串,将其拆分为不同位置的unsigned short。

正如拉里所说,MAC地址相当普遍。有很多关于如何在代码项目中获得该功能的示例,但要注意它很容易假装这些天。

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

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

其他提示

您可以检查DllMain()内部的许可证,如果找不到则会死亡。

这还取决于许可算法的工作方式。我建议你考虑使用像 Diffie– Hellman密钥交换这样的东西(或甚至 RSA )生成某种公共/可以根据某些信息传递给您的用户的私钥。

(根据应用程序,我知道有一个案例,我在公司的合同上写了许可证代码,他们使用了 MAC地址和一些其他数据对其进行哈希处理,并对哈希进行加密,如果注册号是正确的,则给它们“密钥值”。这可确保密钥文件无法移动(或给定)到另一台机器,从而“窃取”软件。

如果你想深入挖掘并避开黑客,那就是一个完整的'主题......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top