FreeCalypso > hg > fc-sim-sniff
comparison doc/Sniffing-workflow @ 37:432d756a21f1
doc/Sniffing-workflow: document written
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Wed, 30 Aug 2023 03:03:04 +0000 |
| parents | |
| children | 1068f9fd41d5 |
comparison
equal
deleted
inserted
replaced
| 36:f1c3dd2173d3 | 37:432d756a21f1 |
|---|---|
| 1 Workflow for SIM sniffing with SIMtrace3 | |
| 2 ======================================== | |
| 3 | |
| 4 To sniff ME-to-SIM communication with SIMtrace3, follow this workflow: | |
| 5 | |
| 6 * Assemble the hardware as described in the Sniffing-hw-setup article, and | |
| 7 program the serial flash chip on the Icestick board with our sniffer FPGA | |
| 8 image. You will need to use iceprog utility from IceStorm suite for the | |
| 9 latter part. | |
| 10 | |
| 11 * Make sure that the ME is still able to talk to the SIM going through the | |
| 12 additional plumbing. Only the parts up to sim-fpc-pasv matter here: the | |
| 13 mv-sniffer adapter and the Icestick board can be disconnected and unpowered, | |
| 14 yet the ME should still see the SIM inserted into the socket on the | |
| 15 sim-fpc-pasv board. | |
| 16 | |
| 17 * When you are ready to start sniffing, complete all hw connections per the | |
| 18 desired hw setup you are following and plug the Icestick board into your PC | |
| 19 or laptop. With our sniffer FPGA image, the initial LED pattern should be: | |
| 20 with the Icestick oriented horizontally, upper and lower red LEDs on, left | |
| 21 and right red LEDs off, center green LED off. | |
| 22 | |
| 23 * Run simtrace3-sniff-rx as follows: | |
| 24 | |
| 25 simtrace3-sniff-rx /dev/ttyUSBx logfile | |
| 26 | |
| 27 The /dev/ttyUSBx device needs to be the one corresponding to FT2232H Channel B | |
| 28 on the Icestick board, and you need to specify the name of the log file to be | |
| 29 written. | |
| 30 | |
| 31 * Power on the phone, or otherwise cause the ME to bring up its SIM interface. | |
| 32 Once the ME applies power to its SIM interface and raises its RST output, the | |
| 33 green LED should light on the Icestick, and you should see an stdout message | |
| 34 from simtrace3-sniff-rx that reads "SIM RST is high". | |
| 35 | |
| 36 * When you power off the phone or cause the modem to shut down its SIM interface | |
| 37 with AT+CFUN=0, the green LED will go out and simtrace3-sniff-rx will print | |
| 38 "SIM RST is low" on stdout. You can kill the process now, or you can kill it | |
| 39 earlier once you've captured enough - but you do need to start each sniffing | |
| 40 session from the beginning. | |
| 41 | |
| 42 When you run simtrace3-sniff-rx with a logfile argument as recommended above, | |
| 43 there will be very little output on stdout - just SIM RST transition messages | |
| 44 indicating start and end of SIM interface sessions - while all other output gets | |
| 45 written to the log file. | |
| 46 | |
| 47 The main output of simtrace3-sniff-rx - written to the log file if specified or | |
| 48 to stdout otherwise - is very low-level and very voluminuous. Each line | |
| 49 corresponds to just one character in the ISO 7816-3 sense passing across the | |
| 50 SIM interface, and is logged as the raw 16-bit value received from the FPGA, as | |
| 51 described in the Sniffer-FPGA-design document. This low-level logging format | |
| 52 makes it possible to troubleshoot phone-to-SIM compatibility problems at the | |
| 53 lowest level: microsecond timestamps allow you to see how long the SIM takes to | |
| 54 respond with each byte, and you can see all procedure bytes below the level of | |
| 55 APDU exchanges. Did the card ask for data transfer in one swoop or one byte at | |
| 56 a time? Did it use any stalling bytes, and how many? All of these lowest-level | |
| 57 details might matter when trying to solve the mystery of why vintage phone model | |
| 58 ABC seemingly-inexplicably refuses to work with SIM card model XYZ! | |
| 59 | |
| 60 There will also be a higher-level decoding program, tentatively named | |
| 61 simtrace3-sniff-dec. This program will read log files written by | |
| 62 simtrace3-sniff-rx and decode them into slightly-higher-level elements as in | |
| 63 ATR, PPS exchanges, command headers, data transfers and status bytes. |
