simtrace2/usb_application/mitm.py

54 lines
1.0 KiB
Python

import usb.core
import usb.util
def find_dev():
dev = usb.core.find(idVendor=0x03eb, idProduct=0x6004)
if dev is None:
raise ValueError("Device not found")
else:
print("Found device")
return dev
SIM_WR = 0x1
SIM_RD = 0x82
SIM_INT = 0x83
PHONE_WR = 0x4
PHONE_RD = 0x85
PHONE_INT = 0x86
def check_msg_phone():
cmd = dev.read(PHONE_RD, 64, 1000)
if cmd:
print("Phone sent: " + cmd)
return cmd
cmd = dev.read(PHONE_INT, 64, 1000)
if cmd:
print("Phone sent int")
return cmd
def write_phone(resp):
dev.write(PHONE_WR, resp, 1000)
def write_sim(data):
return do_intercept(data, dwActiveProtocol)
def mitm():
dev = find_dev()
hcard, hcontext, dwActiveProtocol = init()
while True:
if (cmd = check_msg_phone()):
resp = write_sim(cmd, dwActiveProtocol)
if (resp is not None):
write_phone(resp)
else:
exit(hcard, hcontext)
except usb.USBError as e:
print e
pass