Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 限制特定计算机的功能_C++_Windows_Drm_Copy Protection - Fatal编程技术网

C++ 限制特定计算机的功能

C++ 限制特定计算机的功能,c++,windows,drm,copy-protection,C++,Windows,Drm,Copy Protection,我有一个使用配置文件的程序 我想将配置文件绑定到PC,因此在另一台具有相同配置的PC上复制该文件将不起作用 我知道Windows Activation Mecanism正在监视硬件以检测更改,它可以容忍对硬件的一些小更改 有没有图书馆可以帮我做这件事 我的另一个选择是使用WMI来获取硬件配置并编程我自己的容错机制 非常感谢 Nicolas如果您希望将数据的使用限制在特定的PC上,您必须自己实现这一点,或者找到可以实现这一点的第三方解决方案。没有提供此功能的通用Windows API。具有将许可证

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

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

我知道Windows Activation Mecanism正在监视硬件以检测更改,它可以容忍对硬件的一些小更改

有没有图书馆可以帮我做这件事

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

非常感谢


Nicolas

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

具有将许可证绑定到硬件的功能。这可能值得研究。这里有一个你可能也感兴趣的例子

您需要定义当前所称的“机器”

如果我更换CPU、内存和硬盘,它仍然是同一台计算机吗?网络适配器,视频卡

机器的定义是什么

有很多许许多多的授权库可以为您这样做,但几乎所有库都是付费的(因为,表面上,您只希望以这种方式保护商业软件)。看看RSA、Verisign甚至微软都能提供什么。windows API没有公开这一点,表面上是为了防止黑客攻击

或者,你自己做。这并不难,困难的部分是定义你认为机器是什么

如果您决定跟踪5件东西(高清、网卡、视频卡、主板、记忆棒),并且在要求新许可证之前允许进行3次更改,那么用户可以复制硬盘驱动器,取出上面的两件,将其放入新机器,用旧机器中的新部件替换,并在两台单独的PC上运行您的程序

因此,这确实需要一些思考


-Adam

如果机器有网卡,您可以随时检查其mac地址。这应该是唯一的,检查它作为程序启动例程的一部分应该保证它一次只能在一台机器上工作。。。即使您卸下网卡并将其放在另一台机器上,它也只能在该机器上工作。这将阻止网卡升级。

也许你可以在注册表中保留一些东西?就像这个文件的最后一个修改时间戳一样——如果注册表中没有条目或者时间戳不匹配,那么返回默认值——这样行吗?(剥猫皮的方法不止一种;)

有一次,我在评估一个依赖于IP地址的软件时,突然停止了工作。由于我们的系统管理员没有宣布IP更改(计算基本正确,我们不知道也不关心),供应商也没有告诉我密钥是基于什么的,所以进行了一些挖掘。不幸的是,MAC地址通常是用户可以修改的。用户不容易修改,但仍然可以修改。两个链接都是dead@Ayxan,是的,看来SLPS现在正在使用中,并且不再由Microsoft提供