mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-16 21:28:33 +03:00
The find_device() function was only called when the USB config was altered. Now, it is called on every call of simtrace.py.
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=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)
|
|
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()
|