Sinais USB de engenharia reversa

8

Digamos que exista um dispositivo USB especificamente para armazenar datas ou dias ou algum tipo de dados arbitrários. Para acessar os dados, você deve ter o software.

Existe alguma maneira de analisar os sinais USB e criar seu próprio hardware para ler os valores na unidade flash? Quais métodos existem para fazer isso?

stevenvh
fonte

Respostas:

7

Sim.

Fiquei muito satisfeito com o software da HHD . Eu usei o monitor de porta serial para fazer alguma engenharia reversa pesada há alguns anos e o software HHD foi bem adaptado para o trabalho.

Eu brinquei com a sua versão do sniffer USB, mas nunca comprei a versão completa. Naquela época, havia uma versão de avaliação gratuita que era um pouco útil. Eles ainda podem tê-lo.

De qualquer forma, entrei na cabeça com o USB porque não conseguia descobrir como criar o "driver" no Windows. Se você estiver usando Linux, o projeto pode ser um pouco mais fácil, pois toda essa lógica de E / S de driver de baixo nível é facilmente acessível no código do kernel. Além disso, o Linux 2.6 oferece alguns dispositivos em / dev que podem ser usados ​​para enviar / receber diretamente para o dispositivo USB sem a necessidade de nenhum módulo / driver especial. Ótimo para desenvolvimento.

Brad Hein
fonte
Estou interessado em fazer alguma engenharia reversa da comunicação usb da placa de lançamento da MSP430 na plataforma de desenvolvimento no linux. Você sabe onde eu poderia encontrar mais informações sobre os dispositivos em / dev com os quais posso me comunicar diretamente?
Pfyon
1
Eu estava pesquisando a interface USB do espaço do usuário Linux há algum tempo. (Acabei programando apenas para Windows e OS X) As únicas informações que pude encontrar sobre a interface / proc estavam na biblioteca libusb (ele usa a interface) e nas próprias fontes do kernel (não me lembro do link ou do nome do arquivo não mais).
Jpc
4

Engenharia reversa USB pode ser um desafio; há muitos dados para classificar.

Primeiro, você precisa entender o protocolo; Achei o USB em poucas palavras muito bom.

Então você precisa de alguma maneira de coletar o tráfego e analisá-lo. Requer pelo menos algum software e possivelmente algum hardware. Eu uso um analisador de hardware USB no trabalho, mas eles são caros. Eu sei que é possível usar o Virtualbox e coletar o tráfego USB no Linux, mas nunca o fiz. Você pode começar com o Virtual USB Analyzer .

Shawn J. Goff
fonte
Eu uso um analisador Ellisys USB de vez em quando. Quando alguém diz que "o dispositivo X é caro", a resposta correta é "Comparado com o que?" (Em um caso recente no trabalho, disseram-me que algo no meu código não estava funcionando. Levei alguns minutos com os Ellisys para provar que o problema estava em outro lugar, e a maior parte do tempo estava conectando as coisas. execute o teste.)
John R. Strohm
2

Eu acho que você está se referindo aos dongles USB usados ​​para proteção de software. Eles não usam classes de dispositivos USB HID ou MASS STORAGE padrão e geralmente implementam seu próprio protocolo e fornecem seu próprio driver do lado do PC para comunicação com eles. O aplicativo para PC geralmente pede que eles respondam corretamente à mensagem criptografada enviada, ou eles fornecem algumas informações críticas não existentes no aplicativo para PC, necessárias para que o aplicativo funcione corretamente. Essas mensagens podem ser detectadas, como qualquer outra coisa através de USB, mas cuidado, pois você pode estar andando no limite. Educar-se sobre USB é uma coisa, mas publicar trabalhos que quebrem a proteção de software não é legal e será processado. Não faça isso. Peço desculpas se não entendi a pergunta.

avra
fonte
É ilegal em alguns países, mas não em todos.
pfyon 14/09/10
Decodificar o tráfego não será trivial.
precisa
2

Você pode analisar o tráfego USB com o Wireshark: http://wiki.wireshark.org/CaptureSetup/USB

O Wireshark é um software livre, mais conhecido por seus recursos de análise de rede, mas já faz um tempo que ele também aspira USB.

jippie
fonte
Vale a pena notar que a captura USB requer basicamente linux. Você pode capturar o tráfego USB do Windows executando o Windows em uma VM, no Linux .
Connor Lobo
Se você deseja uma solução de detecção de USB do Windows, o VMWare pode registrar o tráfego usb com um host do Windows, embora você ainda precise conectar o dispositivo USB real a uma VM.
Connor Lobo
2

Poucos hackers famosos (que invertem os consoles de jogos de engenharia) estão atualmente desenvolvendo uma ferramenta para analisar o protocolo USB. É chamado OpenVizsla. Está atualmente em desenvolvimento, mas em breve será concluído. É um projeto completo de código aberto.

Verifique este link http://www.kickstarter.com/projects/bushing/openvizsla-open-source-usb-protocol-analyzer/posts

Robomon
fonte
Os links atualizados para este projeto são: openvizsla.org e github.com/openvizsla/ov_ftdi
Glenn 'devalias'
0

Existem toneladas de soluções de software e hardware. Capturar os dados e analisar não é um problema; no entanto, você precisa entender o que está no pendrive. Eu já vi pessoas desenvolvendo pen drives com processadores embarcados e criptografia AES. (Criptografado localmente / descriptografado). Sem saber exatamente o que é esse pendrive, é difícil saber o que exatamente você pode aprender com o tráfego.

Ktc
fonte