usbmon tem vários nós

0

Por que usbmon tem vários nós para um único barramento na pasta /sys/kernel/debug/usb/usbmon/ (como 2s, 2u, 2t)?

Quando eu tento farejar tráfego USB com o meu dispositivo, parece que alguns quadros USB estão faltando. (Meu aplicativo usa o U2F-HiD para se comunicar com o dispositivo e alguns pacotes de dados com mais de 128 bytes.)

O que é uma maneira adequada para farejar todo o tráfego, e analisá-lo em forma utilizável? (qualquer tutorial será muito útil) No momento, uso apenas cat redirecionado para o arquivo.

    
por Constantine 15.07.2017 / 13:14

1 resposta

1

De Documentation/usb/usbmon.txt na fonte do kernel:

Two formats are supported currently: the original, or '1t' format, and the '1u' format. The '1t' format is deprecated in kernel 2.6.21. The '1u' format adds a few fields, such as ISO frame descriptors, interval, etc. It produces slightly longer lines, but otherwise is a perfect superset of '1t' format.

Depois, continua a explicar o que os campos significam. Os nós 1s etc. fornecem algum tipo de status (como nreaders = número de leitores = consumidores de eventos usbmon), mas eu não sei detalhes e nunca tive que usá-los.

Você pode usar ferramentas como wireshark ou vusbanalyzer para analisar mais confortavelmente o tráfego. Captura via tcpdump e análise post-mortem com wireshark também é possível:

sudo tcpdump -i usbmon1 -w usbmon.pcap &

Editar

Você pode carregar o arquivo usbmon.pcap em wireshark, assim como outros arquivos pcap obtidos pelo tcpdump ou de outra forma.

IIRC, usbhid-dump lê e despeja o descritor HID como obtido pelo kernel (assim ele não é obtido trocando mensagens), e havia alguns Mudanças na API do kernel e / ou você teve que desvincular o dispositivo USB antes que pudesse acessar o HID, mas eu esqueci os detalhes.

Você pode acessar o descritor HID diretamente, tanto em bruto quanto no kernel, montando debugfs

mount -t debugfs none /sys/kernel/debug

e, em seguida, olhando para /sys/kernel/debug/hid/<dev>/rdesc . hid-rd também pode analisar o descritor HID bruto.

E se você estiver apenas após os relatórios da HID, use o dispositivo hidraw correspondente.

    
por 15.07.2017 / 14:30

Tags