
Learning how to reverse engineer a Windows USB driver: the Luxeed LED keyboard - kirubakaran
http://www.jespersaur.com/drupal/book/export/html/21
======
zandorg
I find it interesting that he reverse-engineered the data stream rather than
the driver's compiled assembly code.

~~~
pmjordan
As far as I know, that's how Andrew Tridgell and friends reverse-engineered
the SMB protocol for Samba. They might have (some) docs now, but they didn't
in the early days.

Disassembled code is still damn hard to read, and although there's a
possibility you might miss subtleties, you're going to get started much faster
by intercepting the data stream, assuming no measures have been taken to make
your job harder. (e.g. encryption) If you can't figure out aspects of it, you
can always try to hunt for them in the disassembly, but at least it gives you
some direction,

I started reverse-engineering the USB datastream for a wireless USB Skype
phone I was given as a present. (Philips Voip321) Unfortunately, it seemed to
do some stuff that wasn't possible in libusb, so I needed to drop a level to
usbfs, at which point I figured there were probably more productive ways to
spend my time and have just been running Skype in a VirtualBox VM on my file
server. I'd still love to get that working someday, but there's a stronger
incentive for working on stuff that will ensure I get fed the next month. ;)

