changer l'ID du fournisseur USB / l'ID du produit

9

Sous Windows XP, existe-t-il un moyen simple de modifier ou d'usurper l'ID de fournisseur et de produit d'un périphérique USB? (changer les chaînes descriptives correspondantes serait probablement bien aussi)

Supposons, par exemple, qu'il existe un programme utile qui attend un appareil particulier, mais vous ne voyez pas pourquoi vous devriez en acheter un nouveau lorsque vous avez déjà un appareil très similaire susceptible de fonctionner avec le programme.

J'ai fait beaucoup de recherches sur Google et, apparemment, cela peut être fait sous Linux , il me semble donc que je peux exécuter Windows dans une machine virtuelle sous Linux, mais ce serait un peu gênant.

Hugh Allen
la source

Réponses:

6

Vous pourrez peut-être le faire avec devcon (les méthodes d'installation les plus simples sont répertoriées ici) , un utilitaire fourni avec le DDK / WDK Windows. Vous pouvez trouver une version autonome adaptée à Windows XP sur le lien.

En particulier, devcon de sethwid commande peut être en mesure de faire ce que vous cherchez. Voir la page Exemples pour certains tutoriels.

Je ne suis pas sûr que cela fera exactement ce que vous voulez, mais j'ai le fort sentiment qu'il peut être aussi proche que possible sans écrire votre propre pilote de filtre. Si vous avez besoin d'écrire votre propre pilote, prenez le WDK et lire le devcon sourcecode dans src \ setup \ devcon .

Vous pouvez également utiliser devcon de différentes manières pour atteindre votre objectif, mais sans plus de détails, il est difficile de dire exactement comment. Bonne chance!

Quack Quichotte
la source
C'est un appareil HID et non énuméré en racine, donc sethwidne le touchez pas :(
Hugh Allen
oui, c'est à ça que mes tests ressemblaient aussi, mais je n'étais pas sûr d'avoir la bonne syntaxe. : /
quack quixote
8

L'ID de fournisseur / ID de produit USB est susceptible d'être codé en dur dans le micrologiciel de l'appareil, et peut donc être immuable sans pirater le micrologiciel.

Comme la plupart des microprogrammes sont protégés contre les modifications, cela risque de bloquer le périphérique USB.

Désolé d'être négatif, mais je ne pense pas que ce soit possible.

harrymc
la source
3
Pourquoi voter contre la bonne réponse? La réponse acceptée ci-dessus n'a pas fonctionné.
harrymc
"Ça ne peut pas être fait" n'est jamais la bonne réponse à une question logicielle [1], sans parler de complètement inutile. Je ne demandais pas de changer l'appareil lui-même, juste la vue d'une application. [1] à moins qu'il ne s'agisse d'un élément non calculable au sens de Turing.
Hugh Allen
2
Votre question portait spécifiquement sur le changement ou l'usurpation d'identité. La manière de Turing: ce que vous avez demandé ne peut être fait que si vous avez une connaissance interne de Windows et / ou pouvez patcher le système d'exploitation. Ce n'est pas non plus une bonne nétiquette de voter contre les gens qui essaient de vous aider à éviter les erreurs.
harrymc
Ce n'est pas une question de logiciel cependant. ;) // Même s'il était possible de changer l'ID d'appareil (qui est en effet stocké sur l'appareil lui-même), ce serait toujours le même appareil. Le type «similaire» n'est pas le même type. Il ne sera probablement pas en mesure de faire ce que le logiciel PC attend de lui.
Daniel B
1

Je n'ai pas fait exactement ce que vous demandez, mais cela pourrait vous donner un point de départ. De plus, je n'ai jamais fait ce genre de choses sur les versions antérieures à Vista.

Les informations que le Gestionnaire de périphériques et le Registre utilisent pour associer des chaînes aux périphériques matériels sont initialisées à partir du fichier .INF fourni avec le périphérique. Heureusement, les fichiers .INF sont des fichiers texte structurés comme des fichiers .INI, ils sont donc faciles à utiliser. Pour changer "l'identité" d'un appareil existant:

  1. Allez dans le WINDOWS\INFrépertoire et trouvez le bon fichier. Vous devrez probablement rechercher dans tous les fichiers .INF une chaîne unique associée à l'appareil.
  2. Sauvegardez le fichier.
  3. Ouvrez le fichier .INF avec un éditeur de texte, recherchez la section [Chaînes] et modifiez la chaîne appropriée.
  4. Dans le Gestionnaire de périphériques, désinstallez et réinstallez le périphérique.

Espérons que votre application ne recherche que cette chaîne. S'il recherche l'ID matériel unique (vous le verrez dans le fichier .INF sous la forme d'un numéro d'identification de bus et de matériel comme bus \ VID_nnnn & PID_xxxx), cette technique ne fonctionnera pas.

mtrw
la source
C'est un périphérique générique qui ne nécessite aucun pilote OEM. (ce qui est bien, mais) Je ne trouve pas de fichier INF pour celui-ci (et j'ai recherché son ID de produit dans tous les fichiers INF).
Hugh Allen
@ Hugh Allen - pouvez-vous fournir plus d'informations? Par exemple, sur quel type de périphérique, sur quel bus se trouve-t-il, comment l'application reconnaît-elle que ce n'est pas le périphérique attendu?
mtrw
Souris. USB. Je ne sais pas.
Hugh Allen
@ Hugh Allen - la seule autre chose que je peux recommander est de rechercher votre appareil existant dans Registry \ HKLM \ SYSTEM \ CurrentControlSet, de trouver la chaîne de nom, de trouver le VID / PID et de rechercher ce numéro VID / PID dans les fichiers INF. Cependant, si l'application que vous essayez de tromper utilise directement le VID / PID, cette technique ne fonctionnera pas.
mtrw
@ Hugh Allen - Je suis désolé, je n'avais pas cliqué sur le lien dans votre question plus tôt. Je ne comprenais pas que vous cherchiez à changer les numéros VID / PID. Les informations que je vous ai données n'auraient changé que les chaînes. Les fichiers INF dépendent des numéros VID / PID, pas les définir. Désolé de vous conduire sur le mauvais chemin.
mtrw