2

I'm trying to reverse engineer a device protocol that works in windows but has no drivers on linux. I capture (windows vm + wireshark) and then later play back all the USB communication. I believe I have the exact same wireshark trace on the windows and linux versions.

In a loop there is some setup data that never seems to change, followed by a bulk_in transfer that is 4096 bytes.

My problem is that ever so often there is +-1000 bytes of zeros in front of the 4096 bytes of received data that should actually be starting at byte 0. While in the windows version it seems to always be correct.

What could be causing this ? Timing issues ? Is pyusb/usblib suppose to be able to handle anything ? are there some sort of exceptions ?

When I look at the related endpoint info the wMaxPacketSize is 512, yet I'm writing 4096 bytes, could that be related ? I'm not getting any overflow exceptions.

Thanks!

Reyn
  • 261
  • 1
  • 4
  • 11

0 Answers0