alterar ID do fornecedor USB / ID do produto

9

No Windows XP, existe alguma maneira fácil de alterar ou falsificar o ID do fornecedor e do produto de um dispositivo USB? (alterar as seqüências descritivas correspondentes provavelmente também seria bom)

Digamos, por exemplo, que exista um programa útil que espere um dispositivo específico, mas você não vê por que deve comprar um novo quando já possui um dispositivo muito semelhante e que provavelmente funcionará com o programa.

Eu fiz bastante pesquisa no Google e, aparentemente, isso pode ser feito no Linux, então me ocorre executar o Windows em uma VM no Linux, mas isso seria um pouco inconveniente.

Hugh Allen
fonte

Respostas:

6

Você pode fazer isso com o devcon (maneiras mais fáceis de instalar listadas aqui) , um utilitário fornecido com o Windows DDK / WDK. Você pode encontrar uma versão autônoma adequada para Windows XP no link.

Em particular, devcon 's sethwid comando pode ser capaz de fazer o que você está procurando. Veja a página Exemplos para alguns tutoriais.

Não tenho certeza se isso fará exatamente o que você deseja, mas tenho um forte pressentimento de que pode ser o mais próximo possível sem escrever seu próprio driver de filtro. Se você fazer necessidade de escrever seu próprio driver, pegue o WDK e ler o devcon código fonte em src \ setup \ devcon .

Você também pode usar o devcon de outras maneiras para atingir seu objetivo, mas sem mais detalhes, é difícil dizer exatamente como. Boa sorte!

charlatão quixote
fonte
É um dispositivo HID e não enumerado por raiz, por isso sethwidnão vai tocá-lo :(
Hugh Allen
Sim, foi assim que meus testes também foram, mas não tinha certeza de que estava recebendo a sintaxe correta. : /
quack quixote
8

O ID do fornecedor / ID do produto USB provavelmente está codificado no firmware do dispositivo e, portanto, pode ser imutável sem hackear o firmware.

Como a maioria dos firmware está protegida contra alterações, é provável que isso bloqueie o dispositivo USB.

Desculpe ser negativo, mas não acho possível.

harrymc
fonte
3
Por que reduzir a resposta correta? A resposta aceita acima não deu certo.
harrymc
"Não pode ser feito" nunca é a resposta correta para uma pergunta de software [1], para não mencionar completamente inútil. Eu não estava pedindo para mudar o dispositivo, apenas a visão de um aplicativo. [1] a menos que seja algo não computável no sentido de Turing.
Hugh Allen
2
Sua pergunta disse especificamente mudança ou falsificação. A maneira de Turing: o que você pediu só pode ser feito se alguém tiver conhecimento interno do Windows e / ou puder corrigir o sistema operacional. Também não é uma boa netiqueta diminuir o voto das pessoas que tentam ajudá-lo a evitar erros.
harrymc
Esta não é uma questão de software. ;) // Mesmo que fosse possível alterar a ID do dispositivo (que é realmente armazenada no próprio dispositivo), ainda assim seria o mesmo dispositivo. O tipo "Similar" não é o mesmo tipo. Provavelmente, não será capaz de fazer o que o software para PC espera que ele faça.
Daniel B
1

Não fiz exatamente o que você está perguntando, mas isso pode lhe dar um ponto de partida. Além disso, eu só fiz esse tipo de coisa nas versões anteriores ao Vista.

As informações que o Gerenciador de dispositivos e o Registro usam para associar seqüências de caracteres a dispositivos de hardware são inicializadas a partir do arquivo .INF fornecido com o dispositivo. Felizmente, os arquivos .INF são arquivos de texto estruturados como arquivos .INI, por isso são fáceis de trabalhar. Para alterar a "identidade" de um dispositivo existente:

  1. Vá para o WINDOWS\INFdiretório e encontre o arquivo certo. Provavelmente, você precisará pesquisar em todos os arquivos .INF uma cadeia exclusiva associada ao dispositivo.
  2. Faça backup do arquivo.
  3. Abra o arquivo .INF com um editor de texto, localize a seção [Strings] e altere a seqüência apropriada.
  4. No Gerenciador de dispositivos, desinstale e reinstale o dispositivo.

Felizmente, seu aplicativo está procurando apenas essa sequência. Se ele estiver procurando pela ID de hardware exclusiva (você verá isso no arquivo .INF como um número de identificação de barramento e hardware, como bus \ VID_nnnn & PID_xxxx), essa técnica não funcionará.

mtrw
fonte
É um dispositivo genérico que não precisa de drivers OEM. (o que é bom, mas) Não consigo encontrar um arquivo INF (e procurei seu ID do produto em todos os arquivos INF).
Hugh Allen
@Hugh Allen - você pode fornecer mais algumas informações? Por exemplo, em que tipo de dispositivo, em qual barramento está, como o aplicativo reconhece que não é o dispositivo esperado?
Mtrw #
rato. USB. Não sei.
Hugh Allen
@Hugh Allen - a única outra coisa que posso recomendar é procurar o dispositivo existente em Registry \ HKLM \ SYSTEM \ CurrentControlSet, encontrar a sequência de nomes, localizar o VID / PID e procurar o número VID / PID nos arquivos INF. No entanto, se o aplicativo que você está tentando enganar usar o VID / PID diretamente, essa técnica não funcionará.
Mrw #
@Hugh Allen - me desculpe, eu não tinha clicado no link em sua pergunta anteriormente. Não entendi que você estava procurando alterar os números VID / PID. As informações que eu dei a você apenas alteraram as strings. Os arquivos INF dependem dos números VID / PID, não os definem. Desculpe por levá-lo ao caminho errado.
MTRW