c# - 不使用 IP 识别机器

标签 c# java c++ security

假设我正在编写一款游戏,我想要选择在违反条款后将其禁止。我可以按帐户禁止他们,我也可以禁止他们的 IP,但这不会永远禁止他们进入我的游戏。他们只需创建一个新帐户并更改其 IP。

是否存在世界上每台机器都唯一的机器 ID 之类的东西?如果有,是否可以使用程序语言读取它?用户是否可以更改此机器 ID?

最佳答案

防弹解决方案? 我会说没有任何解决方案100% 安全的,即使投入了大量资金。 您可以做的是让普通用户尽可能难,这样可以最大限度地减少作弊者

你可以制作一个hash id pc machine id + mac address + the motherboard id + the harddisk id, etc. 但聪明的破解者/黑客可以解决这个问题。我的意思是看看像 Microsoft 这样的公司,它们花费数百万美元来制作一种安全的方式,但人们仍然可以通过某种方式绕过激活......;)


在 Windows 中有一个 hardware id,您可能会对它感兴趣。

HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\MachineGuid

也看看WMI,有如何在c++中使用它的例子

Windows Management Instrumentation (WMI) 是 Windows 驱动程序模型的一组扩展,它提供了一个操作系统接口(interface),通过该接口(interface)可以检测组件。

参见 WMI c++ exmaples

关于c# - 不使用 IP 识别机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21067624/

相关文章:

c# - Linq 进行非常低效的 Entity Framework 查询

java - 如何在 Cygwin 环境中使正斜杠被 java keytool 尊重?

c# - ListView 可见属性

java - 为什么不允许为 Java 中的任何类成员指定默认说明符?

java - 在java中替换电子邮件地址的用户部分

c++ - 在Qt中,发现所有窗口都关闭了,当使用QApplication::processEvents()时?

c++ - 如何将函数指针中的函数保存为类的成员函数?

c++ - 这种递减的顺序是否调用了未定义的行为?

c# - 创建或获取特定的 SPTimeZone 实例

c# - 在 C++ 中调用 C# WPF 代码