假设我正在编写游戏,我希望在违反条款后禁止人们使用它。我可以禁止他们每个帐户,我也可以禁止他们的IP,但它不会永远禁止他们从我的游戏。他们只需创建一个新帐户并更改其IP。
是否有像机器ID这样的东西对于世界上每台机器都是独一无二的?如果有,是否可以使用程序语言阅读?用户是否可以更改此机器ID?
答案 0 :(得分:1)
防弹解决方案?
我会说没有解决方案将是100% secure
,即使投入巨资也是如此。
您可以做的是为普通用户尽可能地做到这一点,这样可以最小化cheaters
。
你可以制作个人hash id
+ machine id
+ the mac address
+ the motherboard id
等the harddisk id
但是一个聪明的黑客/黑客可以绕过这个。我的意思是看看像微软这样的公司,它们使用数百万美元来制作一种安全的方式,而且人们仍然可以通过某种方式绕过激活......;)
在Windows中有一个hardware id
,您可能会感兴趣。
HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\MachineGuid
看一下WMI,还有一些如何在c ++中使用它的例子
Windows Management Instrumentation(WMI)是Windows驱动程序模型的一组扩展,它提供了一个操作系统界面,通过该界面可以检测组件。
答案 1 :(得分:0)
如何在WMI Win32_DiskDrive中获取硬盘序列号。
ManagementObjectSearcher searcher = null;
try
{
searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("SerialNumber: {0}", queryObj["SerialNumber"]);
queryObj.Dispose();
}
}
finally
{
if (searcher != null)
searcher.Dispose();
}