usbmon을 사용하여 USB 트래픽을 캡처할 때 가끔 다음이 표시됩니다.
ffff8801ed3703c0 2599784347 S Bo:1:008:2 -115 74 = 24484880 087ffa7f dd7ffc08 d87fec7e d3000080 5e80a30c d1d43300 00803c9b
데이터 길이는 74바이트로 보고되지만 실제 데이터 워드 길이는 훨씬 짧습니다(위 예에서는 32바이트).
이것은 의도적으로 설계된 것 같습니다.https://www.kernel.org/doc/Documentation/usb/usbmon.txt: "수집되는 데이터의 길이는 제한되어 있으며 데이터 길이 단어에 보고된 데이터 길이보다 짧을 수 있습니다."
모든 데이터 단어를 캡처하기 위해 이 제한을 극복할 수 있습니까?
답변1
이에 대한 좋은 스레드가 있습니다.여기. USBMon의 텍스트 인터페이스는 32바이트로 제한되지만 바이너리 출력에는 모든 것이 포함되므로 사용할 수 있습니다. Wireshark는 usbmon의 바이너리 형식을 이해하며가상 USB 분석기, 또는 자신만의 도구를 작성할 수도 있습니다.
아직 실제로 시도하지는 않았지만 tcpdump로 가져온 일부 작은 덤프를 간단한 /dev/usbmon# 고양이와 비교했는데 pcap 헤더를 제외하면 거의 동일합니다. 나는 Wireshark에서 많은 USB 대량 데이터 전송을 연구했기 때문에 귀하의 질문에 긍정적으로 대답하고 싶습니다.
답변2
답변이 늦었지만 실용적인 부분이 있습니다 https://www.mankier.com/8/usbmon
-s는 인쇄할 USB 데이터의 최대 길이를 설정합니다. 기본값은 커널의 텍스트 인터페이스와 마찬가지로 32바이트를 인쇄하는 것입니다. 명시적으로 설정하지 않는 한 캡처 크기는 일치하도록 자동으로 조정됩니다.