изменить идентификатор производителя USB / идентификатор продукта

49890
Hugh Allen

В Windows XP есть ли простой способ изменить или подменить идентификатор производителя и продукта устройства USB? (изменение соответствующих описательных строк, вероятно, также будет хорошо)

Скажем, например, есть полезная программа, которая ожидает конкретного устройства, но вы не понимаете, почему вы должны покупать новое, если у вас уже есть очень похожее устройство, которое может работать с программой.

Я много гуглил и, видимо, это можно сделать под Linux, поэтому мне приходит в голову запустить Windows на виртуальной машине под Linux, но это было бы немного неудобно.

8

3 ответа на вопрос

7
harrymc

Идентификатор производителя USB / идентификатор продукта, вероятно, будет жестко задан в прошивке устройства и, следовательно, может быть неизменным без взлома прошивки.

Поскольку большинство встроенных программ защищено от изменений, это может привести к повреждению устройства USB.

Извините за негатив, но я не думаю, что это возможно.

Зачем занижать правильный ответ? Принятый ответ выше не сработал. harrymc 13 лет назад 3
«Это невозможно сделать» - это * никогда * правильный ответ на программный вопрос [1], не говоря уже о совершенно бесполезном. Я не просил поменять само устройство, просто взгляд приложения на него. [1], если это не что-то неисчислимо в смысле Тьюринга. Hugh Allen 11 лет назад 0
В вашем вопросе конкретно сказано изменение или подделка. Способ Тьюринга: то, что вы просили, может быть выполнено только в том случае, если вы хорошо знакомы с Windows и / или можете исправлять операционную систему. Это также не очень хороший сетевой этикет, чтобы понижать голос людей, пытающихся помочь вам избежать ошибок. harrymc 11 лет назад 1
Это не программный вопрос. ;) // Даже если бы можно было изменить идентификатор устройства (который действительно хранится на самом устройстве), оно все равно было бы тем же устройством. «Подобный» тип не является * тем же * типом. Скорее всего, он не сможет делать то, что от него ожидает программное обеспечение для ПК. Daniel B 5 лет назад 0
3
quack quixote

Возможно, вы сможете сделать это с помощью devcon (простой способ установки из списка), утилиты, поставляемой с Windows DDK / WDK. Вы можете найти отдельную версию, подходящую для Windows XP, по ссылке.

В частности, Devcon «s sethwid команда может быть в состоянии сделать то, что вы ищете. См. Страницу примеров для некоторых уроков.

Я не уверен, что это будет именно то, что вы хотите, но у меня есть сильное ощущение, что это может быть настолько близко, насколько вы получите, не написав свой собственный драйвер фильтра. Если вам действительно нужно, чтобы написать свой собственный драйвер, возьмите WDK и читать DevCon исходников, в ЦСИ \ Настройка \ DevCon .

Вы также можете использовать devcon для достижения своей цели другими способами, но без подробностей сложно сказать, как именно. Удачи!

Это HID-устройство, а не перечисленное root, поэтому `sethwid` его не трогает :( Hugh Allen 14 лет назад 0
да, так выглядело и мое тестирование, но я не был уверен, что правильно понял синтаксис. : / quack quixote 14 лет назад 0
0
mtrw

Я не сделал совсем то, что вы просите, но это может дать вам отправную точку. Кроме того, я когда-либо делал такие вещи только в версиях до Vista.

Информация, которую Диспетчер устройств и Реестр используют для привязки строк к аппаратным устройствам, инициализируется из файла .INF, поставляемого с устройством. К счастью, файлы .INF представляют собой текстовые файлы, структурированные как файлы .INI, поэтому с ними легко работать. Чтобы изменить «идентичность» существующего устройства:

  1. Перейдите в WINDOWS\INFкаталог и найдите нужный файл. Вероятно, вам нужно будет найти во всех файлах .INF уникальную строку, связанную с устройством.
  2. Сделайте резервную копию файла.
  3. Откройте файл .INF в текстовом редакторе, найдите раздел [Strings] и измените соответствующую строку.
  4. В диспетчере устройств удалите и переустановите устройство.

Надеюсь, ваше приложение ищет только эту строку. Если он ищет уникальный аппаратный идентификатор (вы увидите это в файле .INF как идентификатор шины и аппаратного идентификатора, например, bus \ VID_nnnn & PID_xxxx), тогда этот метод не будет работать.

Это универсальное устройство, которое не требовало драйверов OEM. (что хорошо, но) Я не могу найти файл INF для него (и я искал его идентификатор продукта во всех файлах INF). Hugh Allen 14 лет назад 0
@ Хью Аллен - ты можешь предоставить больше информации? Например, какое устройство, на какой шине оно находится, как приложение распознает, что это не ожидаемое устройство? mtrw 14 лет назад 0
мышь. USB. Не знаю Hugh Allen 14 лет назад 0
@Hugh Allen - единственное, что я могу порекомендовать, это поиск вашего существующего устройства в Registry \ HKLM \ SYSTEM \ CurrentControlSet, поиск строки имени, поиск VID / PID и поиск номера VID / PID в файлах INF. Однако, если приложение, которое вы пытаетесь обмануть, использует VID / PID напрямую, этот метод не будет работать. mtrw 14 лет назад 0
@ Хью Аллен - извините, я не перешел по ссылке в вашем вопросе ранее. Я не понял, что вы хотели изменить номера VID / PID. Информация, которую я дал вам, изменила бы только строки. Файлы INF зависят от номеров VID / PID, а не определяют их. Извините, что вывели вас на неверный путь. mtrw 14 лет назад 0