更改 USB 供应商 ID/产品 ID

更改 USB 供应商 ID/产品 ID

在 Windows XP 下,有没有什么简单的方法可以更改或欺骗 USB 设备的供应商和产品 ID?(更改相应的描述字符串可能也不错)

举例来说,有一个有用的程序需要一个特定的设备,但是当您已经有一个非常相似的设备并且可能与该程序兼容时,您不明白为什么还要购买一个新的设备。

我在谷歌上搜索了很多次,显然这是可以的在Linux下完成因此我想到在 Linux 下的虚拟机中运行 Windows,但这有点不方便。

答案1

你可以这样做开发者大会(此处列出最简单的安装方法),Windows DDK/WDK 提供的实用程序。您可以在链接中找到适用于 Windows XP 的独立版本。

尤其,开发者大会塞思维德命令也许能够完成您想要的操作。请参阅示例页面一些教程。

我不确定这是否能完全满足您的要求,但我强烈地感觉到,这可能是您无需编写自己的过滤驱动程序就能实现的最接近的方案。如果您需要编写自己的驱动程序,获取 WDK 并阅读开发者大会源代码src\setup\devcon

您也可以使用开发者大会用其他方法来实现你的目标,但如果没有进一步的细节,很难确切地说出如何实现。祝你好运!

答案2

USB 供应商 ID/产品 ID 很可能在设备固件中硬编码,因此如果不破解固件,可能无法更改。

由于大多数固件都受到保护以防止更改,这可能会导致 USB 设备损坏。

抱歉,我持否定态度,但我认为这是不可能的。

答案3

我还没有完全按照您的要求完成,但这可能为您提供一个起点。此外,我只在 Vista 之前的版本上做过这种事情。

设备管理器和注册表用于将字符串与硬件设备关联的信息是从设备随附的 .INF 文件中初始化的。幸运的是,.INF 文件是文本文件,其结构类似于 .INI 文件,因此易于使用。要更改现有设备的“身份”,请执行以下操作:

  1. 进入WINDOWS\INF目录并找到正确的文件。您可能需要搜索所有 .INF 文件以查找与该设备关联的唯一字符串。
  2. 备份文件。
  3. 使用文本编辑器打开.INF 文件,找到 [Strings] 部分,并更改适当的字符串。
  4. 在设备管理器中,卸载并重新安装该设备。

希望您的应用程序只查找此字符串。如果它要查找唯一的硬件 ID(您会在 .INF 文件中看到它作为总线和硬件 ID 编号,如 bus\VID_nnnn&PID_xxxx),那么此技术将不起作用。

相关内容