Files
simtrace2/usb_application/simtrace.py
Christina Quast 4930ea6032 ccid.py: Removed read_bin command
The code was used as early debug code to read different files from
the SIM card and therefore acquire the IMSI, and other SIM card
specific information.

This only was useful for testing that the firmware worked properly.
Is is not needed for regular use cases.
2015-05-18 17:25:36 +02:00

51 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python
import argparse
import sniffer
import ccid
import ccid_select
import mitm
import usb.core
import usb.util
import sys
import time
def find_dev():
dev = usb.core.find(idVendor=0x16c0, idProduct=0x0762)
if dev is None:
raise ValueError("Device not found")
else:
print("Found device")
return dev
# main code
def main():
parser = argparse.ArgumentParser()
# FIXME: config names instead of numbers
parser.add_argument("-C", "--conf", type=int, choices=[1, 2, 3, 4], help="Set USB config")
parser.add_argument("-s", "--sniff", help="Sniff communication!", action='store_true')
parser.add_argument("-S", "--select_file", help="Transmit SELECT cmd!", action='store_true')
parser.add_argument("-p", "--phone", help="Emulates simcard", action='store_true')
parser.add_argument("-m", "--mitm", help="Intercept communication (MITM)", action='store_true')
args = parser.parse_args()
print("args: ", args)
if args.conf is not None:
dev = find_dev()
dev.set_configuration(args.conf)
# Give pcsclite time to find the device
time.sleep(1)
if args.sniff is True:
sniffer.sniff(dev)
if args.select_file is True:
ccid_select.select()
if args.phone is True:
mitm.do_mitm(dev, sim_emul=True)
if args.mitm is True:
mitm.do_mitm(dev, sim_emul=False)
return
main()