I am working to reverse engineer a USB based robot arm, but the operating system for the robot won't allow me to create simple enough moves that I can isolate the commands with a USB Sniffer like Wireshark. So I am looking for two new options.

  1. Is there a program like Wireshark that allows you to record usb traffic and selectively playback commands in the program? With Wireshark I would have to write the USB command in a python script and then send it to the device but the simplest I can get is ~10,000 commands and that would be difficult. I would like to be able to in the program, just click the command and like a resend button so I can see if that command is the one I need to control a joint or motor.

  2. Can I just brute force the system? Could I write a python program that simply steps through all 255 bytes for each spot on the usb command in a reasonable amount of time? I know the math doesn't make that a good option since it would mean A LOT of possible combinations but maybe someone has a method of brute forcing that doesn't require each part of the USB command to be tried?

Thank you all!!

  • Hi and welcome to RE.SE. What speeds are we talking about? Given the description, if you don't need too fast speeds, I am inclined to recommend a hardware like the GreatFET which at first you could place in between your USB hub and the device (don't know which is which in your scenario; but I'd guess the arm is the device) to capture communication. Later you could then use that to test your findings rather easily.
    – 0xC0000022L
    Jul 14 at 8:45
  • Wireshark USB capturing is possible: wiki.wireshark.org/CaptureSetup/USB And there are projects for replaying captured traffic like github.com/JohnDMcMaster/usbrply (not tested).
    – Robert
    Jul 14 at 8:51


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.