Tuesday, January 03, 2012

Reverse Engineering USB Devices

Drew Fisher gave a speech on the CCC convention where he was talking on the subject of reverse engineering USB and how you can tap into the protocol. If you are ever interested in playing with USB and understanding the inner workings of USB this is a very good place to start. You also might want to check his website zarvox.org which holds some great information that can get you started.

The below youtube video shows you the speech Drew gave at 28C3


While USB devices often use standard device classes, some do not. This talk is about reverse engineering the protocols some of these devices use, how the underlying USB protocol gives us some help, and some interesting patterns to look for. I'll also detail the thought processes that went into reverse engineering the Kinect's audio protocol.

This talk will narrate the process of reverse engineering the Kinect audio protocol -- analyzing a set of USB logs, finding patterns, building understanding, developing hypotheses of message structure, and eventually implementing a userspace driver.

I'll also cover how the USB standard can help a reverse engineer out, some common design ideas that I've seen, and ideas for the sorts of tools that could assist in completing this kind of task more efficiently.

No comments: