如何从c / c + +中的Windows PC获得独特的硬件/软件签名

我正在开发一个使用c + +的小型Windows应用程序,我想获得一些PC上的软件/硬件的指纹,以便我可以让应用程序只能运行在某些电脑上。

我知道应用程序可以被破解,但我真的有兴趣实施这样的事情。
任何想法我怎么能做到这一点?

Solutions Collecting From Web of "如何从c / c + +中的Windows PC获得独特的硬件/软件签名"

这基本上取决于你想把你的软件与底层硬件耦合得有多紧。 例如,您可以从注册表获取一些硬件信息,从LAN卡读取MAC地址,检索gfx制造商,CPU ID等,并散列所有这些数据。
然后你可以使用这个散列作为发送给你公司的挑战码。 然后客户收到这个散列的签名(使用你的私钥)版本。
启动后,您的应用程序可以检查散列的签名是好还是坏(即已经由您的公司签名)。
这不仅会将您的软件绑定到特定的硬件配置上,而且还会迫使破解者修补您的应用程序(因为他们需要从您的可执行文件中修补公钥并将其替换为写入keygen)。 许多人认为从不同来源获得的裂缝相比,只是输入一个从keygen复制的有效序列。

编辑:
为了检查哈希的签名,可以使用从DSA到DSA到ECC的任何内容。 我可以推荐Crypto ++或libTomCrypt 。

在香草个人电脑中没有可靠的方法。 人们一直在努力多年。 问题是您可能随时更改任何组件,包括CPU和BIOS ROM。 最近的人来是使用加密保护的“ 加密狗 ”,但已经证明在操作上不令人满意,并不是很安全。

如果你想出点什么,就申请专利。 这将是非常有价值的。

正如其他人所说,没有什么完美的,你想要什么。 对于类似的问题,我做了一个半心半意的尝试,最后混合了驱动器卷ID(不好,因为它可以重新格式化)和操作系统密钥(从Windows)。

最后,我没有花费太多时间,就好像人们真的想破解你的软件,他们可能会做到这一点。 我离开了许可证的“保护”,但它很差。

花时间/努力使他们想要购买它,使其突出。