更改USB供应商ID /产品ID


9

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

举例说,有一个有用的程序需要一个特定的设备,但您不知道为什么当您已经拥有一个非常相似的设备(该程序很可能与该程序一起使用)时,您应该购买一个新设备。

我已经做了很多Google搜索,并且显然可以在Linux下完成,所以我想到要在Linux下的VM中运行Windows,但这会带来一些不便。

Answers:


6

您可以使用devcon(此处列出的最简单的安装方法)来完成此操作,该工具是Windows DDK / WDK随附的实用程序。您可以在链接中找到适用于Windows XP的独立版本。

特别是,devconsethwid命令可能能够完成您想要的操作。有关某些教程,请参见示例页面

我不确定这是否能完全满足您的要求,但是我强烈感觉到,如果不编写自己的过滤器驱动程序,它可能会与您获得的效果差不多。如果确实需要编写自己的驱动程序,请抓住WDK并阅读src \ setup \ devcon中devcon源代码。

您也许还可以通过其他方式使用devcon来实现您的目标,但是如果没有进一步的细节,很难确切地说出如何做。祝好运!


这是一个HID设备,不是root枚举的,所以请sethwid不要触摸它:(
Hugh Allen 2010年

是的,我的测试也是如此,但是我不确定语法是否正确。:/
quack quixote 2010年

8

USB供应商ID /产品ID可能被硬编码在设备的固件中,因此在不破解固件的情况下就无法更改。

由于大多数固件都可以防止更改,因此很可能会阻塞USB设备。

不好意思,但是我认为这是不可能的。


3
为什么要拒​​绝正确的答案?上面接受的答案无法解决。
harrymc

“不可能做到” 永远不是对软件问题的正确答案[1],更不用说完全没有帮助了。我并不是要更改设备本身,而只是要求应用程序对其进行更改。[1]除非它在图灵意义上是不可争议的。
休艾伦

2
您的问题专门说是更改或欺骗。图灵方式:您所要求的内容只有在具有Windows内在知识和/或可以修补操作系统的情况下才能完成。贬低试图帮助您避免错误的人也是不好的礼节。
harrymc 2012年

不过,这不是软件问题。;)//即使可以更改设备ID(实际上已存储在设备本身上),它仍然是同一设备。“相似”类型不是同一类型。它很可能无法执行PC软件期望的功能。
Daniel B

1

我还没有完全满足您的要求,但这可能会为您提供一个起点。另外,我只在Vista之前的版本中做过这种事情。

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

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

希望您的应用程序仅在寻找该字符串。如果它正在寻找唯一的硬件ID(您将在.INF文件中以总线和硬件ID号(例如bus \ VID_nnnn&PID_xxxx)的形式看到它),则此技术将不起作用。


这是一种通用设备,不需要OEM驱动程序。(这很好,但是)我找不到它的INF文件(并且我在所有INF文件中搜索了它的产品ID)。
休·艾伦

@休·艾伦-您能提供更多信息吗?例如,什么样的设备,它在哪条总线上,应用程序如何识别它不是预期的设备?
mtrw 2010年

老鼠。USB。不知道
休·艾伦

@Hugh Allen-我唯一推荐的另一件事是在Registry \ HKLM \ SYSTEM \ CurrentControlSet中查找您现有的设备,查找名称字符串,查找VID / PID,并在INF文件中查找那些VID / PID号。但是,如果您要欺骗的应用程序直接使用VID / PID,则此技术将无效。
mtrw

@Hugh Allen-对不起,我之前没有单击链接到您的问题。我不明白您是否要更改VID / PID号。我给您的信息只会更改字符串。INF文件取决于VID / PID号,而不是定义它们。抱歉导致您走错了路。
mtrw
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.