问题标签 [hardware-id]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Mac OS X 中的唯一硬件 ID
Mac OS X 开发对我来说是一个相当新的事物,我正在移植一些软件。对于软件许可和注册,我需要能够生成某种硬件 ID。它不必太花哨。以太网 MAC 地址、硬盘驱动器序列号、CPU 序列号等。
我已经在 Windows 上覆盖了它,但在 Mac 上我一无所知。任何关于我需要做什么的想法,或者我可以去哪里获取这方面的信息都会很棒!
编辑:
对于其他对此感兴趣的人,这是我最终与 Qt 的 QProcess 类一起使用的代码:
注意:我使用的是 C++。
c# - 如何在 C# 中快速获取硬件 ID?
我需要在我的程序中将许可证绑定到硬件 ID。我尝试使用 WMI,但它仍然很慢。
例如,我需要 CPU、HDD 和主板信息。
php - 阻止用户通过网络浏览器访问网页?
我和我的朋友正在开发一个程序。该程序将向我们的网页提交 GET 数据。但是,我们不希望用户通过程序以外的任何其他方式访问网页。我们可以阻止用户使用 HWID 身份验证共享程序,但没有什么能阻止他们使用数据包扫描器获取网页的 URL。我们考虑过将实施的用户代理身份验证,但用户代理很容易被欺骗。
所以我的问题是,我们如何防止用户直接访问网页,而不是通过程序?
即使您没有完全有效的答案,任何有助于阻止他们的事情都会很好。
目前我们将实施:
HWID 身份验证使用程序用户代理身份验证访问网页即时 IP 黑名单对任何访问网页的人没有适当的用户代理
authentication - 什么是硬件 ID?
我经常访问的一些论坛出售高级程序,为了防止它们被泄露,他们使用硬件 ID 身份验证。也就是说,首先他们向您发送一个程序来运行以获取您的 HWID,您告诉他们您的 HWID,他们将其存储在数据库中,然后他们向您发送实际程序。
如果您的 HWID 不在数据库中,则程序将不会运行。那么什么是 Hardware-ID,它是如何生成的呢?为什么我的 HWID 会根据向我发送 HWID-grabber 的程序员而有所不同?
c# - 如何使用 Mono for windows 访问 WMI 以获取硬件 ID?
最近,我需要在 windows 平台的 mono 上运行我的 winforms 应用程序,但是我正在使用 WMI 在我的原始代码中获取 MAC 地址和 CPU ID,切换到 Windows 的 Mono,它不起作用。我发现 Mono 中没有实现“System.Management.dll”API。
我该怎么办?如何在没有 WMI 的情况下获取 CPU ID、MAC 地址、硬盘序列号和主板序列号?
windows - 生成唯一硬件 ID 的可靠方法
问题:我必须为每个联网客户端提供唯一 ID,例如:
- 一旦客户端软件安装在目标计算机上,它(ID)应该保持不变,并且如果软件重新安装在同一台计算机和相同的操作系统安装上,它应该继续保持,
- 如果以大多数方式修改硬件配置,则不应更改(更换主板除外)
- 当安装了客户端软件的硬盘被克隆到具有相同硬件配置(或尽可能相似)的另一台计算机上时,客户端软件应该知道该更改。
一点解释和一些背景故事:
这个问题基本上是一个古老的问题,也涉及软件复制保护的主题,因为这里提到了该领域使用的一些机制。在这一点上我应该清楚,我不是在寻找复制保护方案。请继续阅读。:)
我正在开发一个应该在本地网络中工作的客户端-服务器软件。我必须解决的问题之一是识别网络中的每个唯一客户端(不是什么大问题),以便我可以将某些属性应用于每个特定客户端,在特定的部署生命周期内保留和强制执行这些属性客户。
在寻找解决方案时,我意识到以下几点:
- Windows 激活系统使用某种对硬件修改极为敏感的重指纹机制,
- 磁盘映像软件沿所有卷 ID(格式化时与每个分区绑定)复制,以及在安装过程中、首次运行期间或以任何其他方式生成的自定义唯一 ID,严格来说,这些 ID 本质上是软件,并存储在注册表或在硬盘上,所以很容易混淆两者。
解决此类问题的明显选择是找出 BIOS 标识符(虽然不能 100% 确定这是否在相同的主板型号中是唯一的),因为这是我唯一可以依赖的不重复的东西,通过克隆转移,并且无法更改(至少不能通过使用某些用户空间程序)。其他一切都失败了,要么不可靠(MAC 克隆,有人吗?),要么要求太高(因为它对配置更改过于敏感)。
我想问的子问题是,我在架构方面做得对吗?也许有一个更好的工具来完成我必须完成的任务......
我想到的另一种方法类似于握手机制,其中服务器维护连接的客户端 ID 的内部查找表(在任何给定时刻,它甚至可以完全基于软件且不唯一),并告诉客户端如果在连接时提供了重复的 ID,则在握手期间提出不同的 ID。不幸的是,这种方法不能很好地满足在生命周期内将属性绑定到特定客户端的要求之一。
php - HWID 锁定 PHP 页面?
目前我出售一个程序,它可以访问我的网页。该程序被 HWID(硬件 ID)锁定,我使用该程序访问网页而不是通过网络浏览器直接访问的唯一原因是我可以使用 HWID 身份验证。
但是,我刚刚被告知我可以编写一个脚本来获取计算机信息,例如硬件 ID 等。
这实际上可能完全在服务器端吗?如果是这样,我可以用 PHP 做吗?如果不是,这将是什么语言,我必须为此研究什么功能?
c# - 硬件 ID 帮助
我正在使用 C# 和 .NET 2.0。我的应用程序需要某种方式来检查不同的用户,所以我将使用硬件 ID,但我看到我只能使用:
- mac 地址 - 很容易更改,不是每个人都有它 // 否
- 处理器 id - 使用 WMI 它返回 cpu 模型的值,它不是唯一的 // 否
- 主板串行 - 并非每个主板都有它 // 否
- Windows 的卷序列号 - 我不确定它是否会在 Windows 重新安装和卷格式时更改
那么有什么我没有提到的 hwid 吗?我想要每个人都拥有的东西,并且不会在重新安装 Windows 时被删除。否则我必须使用 Windows 的卷序列号。
编辑:从评论中我认为最好使用 HDD id。如何得到它?EDIT2:我刚刚读到 SCSI 驱动器没有串行。真的吗?
最终编辑:我已经在我的应用程序上使用了根驱动器序列号。它工作得很好。谢谢大家。
cocoa - 将 Apple 的型号标识符 (MacBookPro5,1) 翻译成用户友好的名称?
Mac OS X 是否有 API 可以将 Apple 的型号标识符(在 plist 和 API 中找到的那种,例如“MacBookPro5,1”)转换为这些设备的用户友好的营销名称(“Unibody MacBook Pro Late 2008”)?
我正在寻找更多面向未来的解决方案,而不是简单地对 list进行硬编码。
activation - 将软件绑定到硬件的 MAC 地址的替代方案?
除了使用 MAC 地址之外,还有什么好的替代方法可以将软件激活绑定到机器上的硬件部分?使用硬盘驱动器序列号将不起作用,因为它们并不总是可用。根据我的阅读,Microsoft 也不总是保证机器 GUID。还有其他想法吗?这将使用 Microsoft API 或技术。请不要参考 .NET 特定的参考资料。