[Lazarus] Decoding USB sniff data

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Thu Jun 3 23:52:44 CEST 2010


Marc Santhoff wrote:

>> I have already sniffed/monitored the exchange between the app and the 
>> USB device.
> 
> May I ask how you did that? I'm searching a usable but not very costly
> USB monitoring thingy for Windows(XP).

I think a lot of open source projects (modems, webcams and so on) rely 
on SniffUsb run on Windows. However there's also 
http://biot.com/blog/usb-sniffing-on-linux although I've not tried it- 
for the obvious reason that most things that you want to sniff don't 
have Linux drivers.

> For a small controller built using an ATmega64 and the abandoned Philips
> PDIUSBD11 I did it on low level. The operating system gives me a raw
> device, /dev/ugen0 on FreeBSD, and I have translated a small subset of
> the USB headers. These are used to talk to the device sending user
> requests implemented by the maker of the small controller board.

I've written an app to control a Velleman board using raw USB calls on 
Linux using Lazarus- somebody had already decoded the comms and the 
exercise was fairly painless.

The problems are going to start when the (Windows) driver contains code 
that has to be downloaded to a microcontroller in the device.

> I have a similar problem with another type of hardware, but the USB
> analyzers (hardware) or sniffing software are very comfortable, they do
> on the fly protocol decoding and the like, but those have their price.
> And this price is amazing. ;)

You could always do what I do when reverse-engineering serial comms: get 
the file from the capture device, convert it into text in a convenient 
format, and then massage it using a sequence of Perl filters.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list