Hi all!
I just waned to give you a heads-up of where I want to be heading with
regard to the simtrace firmware.
Right now we still use a hacked add-on to the OpenPCD firmware I wrote
some 5 years ago. This was a quick way to get something working, as I
knew the code base. It has served that purpose: We quickly had a
firmware for sniffing mode.
That code had been developed before Atmel started to publish ther
at91lib software packages which contain a lot of (probably better tested
and more portable) code supporting a wide range of Atmel ARM devices.
at91lib is especially strong on the USB side, where there are not only
implementations of CDC-ACM (serial), CCID (smartcard reader), mass
storage, usb-audio, etc. - but also composite devies out of multiple
of the above.
So what I have in mind for simtrace now is to move forward using at91lib.
However, at91lib does (obviously) not support my sam7dfu boot loader /
flasher. DFU has been proven an exremely helpful tool for R&D type
projects, where you need quick turn-around times for testing new code
in absence of a JTAG setup. Using the SAM-BA loader is pretty annoying
even after a short time, the constant cycles of usb-plug/unplug, jumper
closing and opeing quickly wears out not only your nerves but even the
usb plug or socket. I know people who have built USB cables with a
power switch in the Vbus line, but even that does only half the trick.
So what I'm now doing is adding linker scripts + startup magic to
at91lib so it can build .bin files that can be downloaded using the
sam7dfu bootloader on the device, and dfu-util on the host PC.
Once that is finished, I intend to:
* port over the existing 'sniffer mode' code from the openpcd.git
repository and 'glue' it behind a CDC-ACM device. This means that
in the future, all operatign systems will only see a serial device
with APDUs coming out of them.
* use the at91lib-provided CCID code to build a second firmware image
for a 'reader mode', where the PC can use simtrace as smartcard
reader
* later merge the two into a single firmware with two alternative USB
configurations
* finally, add a 'softsim' mode, where the PC can simulate the SIM
card to the phone. I'm not sure what I'll do on the USB protocol
side for this. Chances are high it's again CDC-ACM - but this time
simultaneously with CCID for the reader side, for man-in-the-middle.
The advantage here is that we don't need to work with libusb, which
apparently can be challenging for users of legacy operating systems ;)
Thus, the ideal situation would be a single firmware image that provides
three alternate configurations: Sniffer, Cardreader and MITM.
Any help is of course very much appreciated. I'll push my at91lib git
tree with sam7dfu support as soon as I've done some testing (I'm
travelling and unfortunately forgot my 2.5mm jack USB-serial cable).
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org>
http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)