限制某台计算机的功能

时间:2009-03-25 18:26:22

标签: c++ windows drm copy-protection

我有一个使用配置文件的程序。

我想将配置文件绑定到PC,因此在具有相同配置的另一台PC上复制文件将不起作用。

我知道Windows Activation Mecanism正在监控硬件以检测更改,并且它可以容忍硬件的一些细微更改。

是否有任何图书馆可以帮助我这样做?

我的另一个选择是使用WMI来获取硬件配置并编程我自己的容忍机制。

非常感谢,

尼古拉斯

5 个答案:

答案 0 :(得分:4)

Microsoft Software Licensing and Protection Services具有将许可证绑定到硬件的功能。可能值得研究。这也是您可能感兴趣的blog posting

答案 1 :(得分:2)

如果您希望将数据的使用限制在特定的PC上,您必须自己实现,或者找到可以执行此操作的第三方解决方案。没有提供此功能的通用Windows API。

答案 2 :(得分:1)

您需要定义您当前称之为“机器”的内容。

如果我更换CPU,内存和硬盘驱动器,它仍然是同一台计算机吗?网卡,显卡?

什么定义了机器?

有许多许可的库可以为你做这件事,但几乎所有的都是付费的(因为,表面上看,你只是想用这种方式保护商业软件)。看看RSA,Verisign甚至微软提供的服务。 Windows API不公开这个,表面上是为了防止黑客入侵。

或者,自己动手。这并不难,困难的部分是定义你相信机器的东西。

如果您决定跟踪5件事(HD,网卡,视频卡,主板,记忆棒)并在需要新许可证之前允许3次更改,那么用户可以复制硬盘驱动器,取出上述两项,将它们放入新机器中,用旧机器中的新部件替换它们,然后在两台独立的PC上运行程序。

所以它需要一些思考。

- 亚当

答案 3 :(得分:0)

如果机器有网卡,您可以随时检查其mac地址。这应该是唯一的,并且将其作为程序启动例程的一部分进行检查应该保证它一次只能在一台机器上工作...即使你移除网卡并将其放到另一台机器上它也只能在那个工作中工作机。这样可以防止网卡升级。

答案 4 :(得分:0)

也许你可以在注册表中保留一些东西?就像这个文件的最后一个修改时间戳 - 如果注册表中没有条目或时间戳不匹配然后回退到默认值 - 那会起作用吗? (有一种方法可以给猫皮肤;))