mirror of https://gerrit.osmocom.org/simtrace2
52 lines
1.5 KiB
Python
Executable File
52 lines
1.5 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=0x1d50, idProduct=0x60e3)
|
|
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)
|
|
dev = find_dev()
|
|
|
|
if args.conf is not None:
|
|
dev.set_configuration(args.conf)
|
|
# Give pcsclite time to find the device
|
|
time.sleep(1)
|
|
if args.sniff is True:
|
|
sniffer.sniff(dev)
|
|
# FIXME: This command is test code and should be removed in near future:
|
|
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()
|