5 ms·
I have USB device which has some bad software editor and I wanted to reverse engineer the communication protocol between the hardware device and the editor. Doe
by throw_m239339 6y ago
I have USB device which has some bad software editor and I wanted to reverse engineer the communication protocol between the hardware device and the editor. Does something like this product can help? How would you go about reverse engineering a USB protocol?
- Ballas 6y agoI'm not entirely sure what you mean by "has some bad software editor" in the context of a USB device, but for reversing USB protocol, look at Wireshark: https://wiki.wireshark.org/CaptureSetup/USB https://wiki.wireshark.org/CaptureSetup/USB
- throw_m239339 6y agoThanks. It's a synthesizer. Instead of using the classic MIDI protocol and SYSEX messages , it uses a proprietary protocol to communicate with a software via USB. I want to create an alternative open source software editor for that synthesizer. That's why I need to reverse engineer the protocol in order to send the right USB packets to the device.
- slig 6y ago(please keep in mind that I'm an EE noob, and have tinkered only with toy uC, etc). Is it possible that the synthesizer is using a classic USB chip (such as the "FTDI") and doing serial over USB? If that's the case, it might be substantially easier to figure out the protocol.
- throw_m239339 6y agoThanks for the suggestion, I didn't not need to install a driver to connect the synthesizer to a computer and use the editor, so maybe that's the case. Where do you think I should get started with that, or how can I find out it that's the case? Any resources about the topic are welcome.
- slig 6y agoI'd try to open the synthesizer and look for a chip that's next to the USB port and google its number. Another option is to try to look at its ID using `lsusb`. If it's a known USB-to-serial chip, then I guess you can mount it and read/write directly to it using pyserial.
- pritovido 6y agoYou need a hardware USB logger. The expensive ones makes things much easier. Cutter is a program for the disassembly of programs. In order to use it you need knowledge of assembly, and that usually takes at least a year of training. Reversing the USB protocol by software is very hard for someone without experience. USB protocol is very complex and has lots of layers. I recommend that you start watching videos on internet like "reversing usb devices" and looking at real projects that do it. Also, last time I used wireshark it gave me a very low level representation of things. It is a very good idea also knowledge of programming like python or lisp that can transform the low level representation into high level information automatically.
- chrismorgan 6y agoI recently found https://gill.net.in/posts/reverse-engineering-a-usb-device-with-rust/ https://gill.net.in/posts/reverse-engineering-a-usb-device-w... to be a good overview of how to do this.