-1

我有一个小程序,我想把它发送给其他人。但我想防止他们可以轻松地与他人分享。我可以使用一些简单的保护措施吗?它不需要是不可破解的,只是你不能只是发送应用程序的一点保护。

4

3 回答 3

3

无论如何,它不可能是不可破解的 :) 您可以使用许多不同的保护措施,但这始终取决于逆向工程师的技能。

一种非常标准的技术是使用 asprotect、armadillo、aspack、upx 等打包程序打包您的软件,有很多选择。这将使他们难以对您的软件进行十六进制编辑、调试和反汇编。

如果你想使用串行保护,你可以做很多事情。我的最爱之一是使用密钥动态解密预加密的代码块并执行它们。这被称为多态性,与自修改代码一起,它可能是一种非常令人沮丧的保护。

如果你想让事情变得非常简单,你可以创建一个异或保护,其中正确的串行异或常数 == 另一个常数。使用常量 XOR another_constant,您可以简单地创建一个键。

真的有很多事情要做,这总是一个品味和知识的问题。

于 2011-03-11T03:20:31.530 回答
1

有很多免费的解决方案,大多数都是可破解的。尽管普遍认为,现代加密狗可以 1) 无故障和 2) 无法破解。但它们的价格可能在 25 到 100 美元之间,因此对于低价值软件来说不是一个好的选择。

密钥的使用通常与 .exe 的对称密钥加密相关联,因此无法轻易复制。密钥对于安装来说是唯一的,可以通过将其与 CPU 序列号、MAC 地址、HD 序列号等机器特征相关联来创建。您还可以为这些指纹构建一个小表并注册该用户/SN那张桌子;然后不时让应用程序“电话回家”与服务器数据库进行比较。这两种方法都是可以破解的,但你说你不是在寻找不可破解的东西。HW指纹识别的缺点是用户升级网卡或HD时可能会失败。那么你有一个不满意的客户,因为他们支付了许可证并且它不会运行。

于 2011-03-23T21:32:03.917 回答
0

有很多方法可以解决这个问题,这是一种:

创建身份验证 Web 服务。让您的应用程序从识别机器的内容生成唯一密钥。这会发送给您,您会生成一个伴随密钥,您的应用可以根据其唯一密钥进行验证。

正如您可以想象的那样,这不是您快速添加的东西。它需要基础设施和管理,这很棘手。

于 2011-03-11T03:19:41.007 回答