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


9

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

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

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

Ответы:


6

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

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

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

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


Это HID-устройство, а не перечисленное root, поэтому sethwidне будем его трогать :(
Хью Аллен,

да, так выглядело и мое тестирование, но я не был уверен, что правильно понял синтаксис. : /
Quackote Quixote

8

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

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

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


3
Зачем понижать правильный ответ? Принятый ответ выше не сработал.
harrymc

«Это невозможно» никогда не является правильным ответом на вопрос программного обеспечения [1], не говоря уже о совершенно бесполезном. Я не просил поменять само устройство, просто вид приложения на него. [1], если это не что-то неисчислимо в смысле Тьюринга.
Хью Аллен

2
В вашем вопросе конкретно сказано изменение или подделка. Способ Тьюринга: то, что вы просили, может быть выполнено только в том случае, если вы хорошо знакомы с Windows и / или можете исправлять операционную систему. Это также не очень хороший сетевой этикет, чтобы опускать людей, пытающихся помочь вам избежать ошибок.
harrymc

Это не программный вопрос. ;) // Даже если бы можно было изменить идентификатор устройства (который действительно хранится на самом устройстве), оно все равно было бы тем же устройством. «Подобный» тип не тот же тип. Скорее всего, он не сможет делать то, что от него ожидает программное обеспечение для ПК.
Даниэль Б

1

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

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

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

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


Это универсальное устройство, которое не требовало драйверов OEM. (что хорошо, но) Я не могу найти файл INF для него (и я искал его идентификатор продукта во всех файлах INF).
Хью Аллен

@ Хью Аллен - можешь предоставить больше информации? Например, какое устройство, на какой шине оно находится, как приложение распознает, что это не ожидаемое устройство?
mtrw

мышь. USB. Не знаю
Хью Аллен

@Hugh Allen - единственное, что я могу порекомендовать, это поиск вашего существующего устройства в Registry \ HKLM \ SYSTEM \ CurrentControlSet, поиск строки имени, поиск VID / PID и поиск номера VID / PID в файлах INF. Однако, если приложение, которое вы пытаетесь обмануть, использует VID / PID напрямую, этот метод не будет работать.
mtrw

@ Хью Аллен - извините, я не перешел по ссылке в вашем вопросе ранее. Я не понял, что вы хотели изменить номера VID / PID. Информация, которую я дал вам, изменила бы только строки. Файлы INF зависят от номеров VID / PID, а не определяют их. Извините, что вывели вас на неверный путь.
mtrw
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.