예제 #1
0
 def __init__(self, handler):
     """""Constructor"""
     self.__readername = None
     self.__reader = pyResManReader()
     self.__handler = handler
     self.__reader.addReaderMonitorHandler(self)
     self.__reader.monitorReaders()
     self.__runScriptThread = None
     self.__gpInterface = GPInterface()
     self.__scDebugger = R502SpyLibrary(self.__gpInterface)
     gp.enableTraceMode(1)
     
     self.__debuggerVariables = {}
예제 #2
0
 def __init__(self, handler):
     """""Constructor"""
     self.__readername = None
     self.__reader = pyResManReader()
     self.__handler = handler
     self.__reader.addReaderMonitorHandler(self)
     self.__reader.monitorReaders()
     self.__runScriptThread = None
     self.__gpInterface = GPInterface()
     self.__scDebugger = R502SpyLibrary(self.__gpInterface)
     gp.enableTraceMode(1)
     
     self.__debuggerVariables = {}
예제 #3
0
class pyResManController(object):
    """The controller of reResManDialog;"""

    def __init__(self, handler):
        """""Constructor"""
        self.__readername = None
        self.__reader = pyResManReader()
        self.__handler = handler
        self.__reader.addReaderMonitorHandler(self)
        self.__reader.monitorReaders()
        self.__runScriptThread = None
        self.__gpInterface = GPInterface()
        self.__scDebugger = R502SpyLibrary(self.__gpInterface)
        gp.enableTraceMode(1)
        
        self.__debuggerVariables = {}
    
    def getReaderList(self):
        return self.__reader.getReaderList()
    
    def getReaderName(self):
        return self.__readername
    
    def connect(self, readername, protocol, mode):
        """ Connect to the reader;"""
        self.__readername = readername
        self.__handler.handleLog('Connect to %s.' %(readername))
        self.__gpInterface.connect(str(readername), protocol)
        self.__scDebugger.init()

    def handleCardEvent(self, eventType, args):
        readername = args[0]
        if eventType == ICardMonitorEventHandler.MONITOR_EVENT_INSERT:
            self.__handler.handleCardInserted(readername)
        elif eventType == ICardMonitorEventHandler.MONITOR_EVENT_REMOVE:
            self.__handler.handleCardRemoved(readername)
            self.__reader.removeCardMonitorHandler(self)
            self.__reader.stopCardMonitor()

    def handleReaderEvent(self, eventType, args):
        if eventType == IReaderMonitorEventHandler.MONITOR_EVENT_ADDED:
            for readername in args:
                self.__handler.handleReaderAdded(readername)
        elif eventType == IReaderMonitorEventHandler.MONITOR_EVENT_REMOVED:
            for readername in args:
                self.__handler.handleReaderRemoved(readername)

    def monitorCard(self):
        self.__reader.addCardMonitorHandler(self)
        self.__reader.monitorCard(self.__readername)

    def disconnect(self):
        self.__gpInterface.disconnect()
        try:
            self.__reader.removeCardMonitorHandler(self)
            self.__reader.stopCardMonitor()
        except:
            pass
    
    def __transmit_impl(self, cmd, t0AutoGetResponse, handlerArgs):
        commandValue = Util.s2vs(cmd)
        
        self.__handler.handleAPDUCommand("".join("%02X " %(ord(vb)) for vb in commandValue), handlerArgs)
        timeStart = timeit.default_timer()
        rsp = self.__gpInterface.transmit(Util.s2vs(cmd))
        timeStop = timeit.default_timer()
        transtime = timeStop - timeStart
        self.__handler.handleAPDUResponse("".join("%02X " %(ord(vb)) for vb in rsp), transtime, handlerArgs)
        
        if t0AutoGetResponse and (rsp[0] == '\x61') and (len(handlerArgs) == 0):
            cmd = '\x00\xC0\x00\x00' + rsp[1]
            self.__handler.handleAPDUCommand("".join("%02X " %(ord(vb)) for vb in cmd))
            timeStart = timeit.default_timer()
            rsp = gp.sendApdu(cmd)
            timeStop = timeit.default_timer()
            transtime = timeStop - timeStart
            self.__handler.handleAPDUResponse("".join("%02X " %(ord(vb)) for vb in rsp), transtime)

    def __transmit(self, cmd, t0AutoGetResponse, handlerArgs):
        """Thread method to transmit an apdu;"""
        try:
            self.__transmit_impl(cmd, t0AutoGetResponse, handlerArgs)
        except Exception, e:
            self.__handler.handleException(e)
예제 #4
0
'''
Created on 2016-05-14

@author: zhenkui
'''

from GPInterface import GPInterface
from GPInterface import SCARD_PROTOCOL_T1
from R502SpyLibrary import R502SpyLibrary

if __name__ == '__main__':
    gpInterface = GPInterface()
    readers = gpInterface.listreaders()
    for reader in readers:
        if reader.find('R502 SPY') != -1:
            break
    gpInterface.connect(reader, SCARD_PROTOCOL_T1)
    
    scDebugger = R502SpyLibrary(gpInterface)
    scDebugger.init()
    scDebugger.rfManaul()
    scDebugger.rfOn()
    
    ret, rsp = scDebugger.claWUPA('\x52')
    print str(ret) + ' > ' + ''.join('%02X ' %(ord(b)) for b in rsp)
    
    ret, rsp = scDebugger.claAnticollision('\x93\x20')
    print str(ret) + ' > ' +  ''.join('%02X ' %(ord(b)) for b in rsp)
    uid = rsp

    ret, rsp = scDebugger.claSelect('\x93\x70' + uid)
예제 #5
0
'''
Created on 2016-05-14

@author: [email protected]
@organization: https://www.javacardos.com/
@copyright: JavaCardOS Technologies. All rights reserved.
'''

from GPInterface import GPInterface
from GPInterface import SCARD_PROTOCOL_T1
from R502SpyLibrary import R502SpyLibrary

if __name__ == '__main__':
    gpInterface = GPInterface()
    readers = gpInterface.listreaders()
    for reader in readers:
        if reader.find('R502 SPY') != -1:
            break
    gpInterface.connect(reader, SCARD_PROTOCOL_T1)

    scDebugger = R502SpyLibrary(gpInterface)
    scDebugger.init()
    scDebugger.rfManaul()
    scDebugger.rfOn()

    ret, rsp = scDebugger.claWUPA('\x52')
    print str(ret) + ' > ' + ''.join('%02X ' % (ord(b)) for b in rsp)

    ret, rsp = scDebugger.claAnticollision('\x93\x20')
    print str(ret) + ' > ' + ''.join('%02X ' % (ord(b)) for b in rsp)
    uid = rsp
예제 #6
0
class pyResManController(object):
    """The controller of reResManDialog;"""

    def __init__(self, handler):
        """""Constructor"""
        self.__readername = None
        self.__reader = pyResManReader()
        self.__handler = handler
        self.__reader.addReaderMonitorHandler(self)
        self.__reader.monitorReaders()
        self.__runScriptThread = None
        self.__gpInterface = GPInterface()
        self.__scDebugger = R502SpyLibrary(self.__gpInterface)
        gp.enableTraceMode(1)
        
        self.__debuggerVariables = {}
    
    def getReaderList(self):
        return self.__reader.getReaderList()
    
    def getReaderName(self):
        return self.__readername
    
    def connect(self, readername, protocol, mode):
        """ Connect to the reader;"""
        self.__readername = readername
        self.__handler.handleLog('Connect to %s.' %(readername))
        self.__gpInterface.connect(str(readername), protocol)
        self.__scDebugger.init()

    def handleCardEvent(self, eventType, args):
        readername = args[0]
        if eventType == ICardMonitorEventHandler.MONITOR_EVENT_INSERT:
            self.__handler.handleCardInserted(readername)
        elif eventType == ICardMonitorEventHandler.MONITOR_EVENT_REMOVE:
            self.__handler.handleCardRemoved(readername)
            self.__reader.removeCardMonitorHandler(self)
            self.__reader.stopCardMonitor()

    def handleReaderEvent(self, eventType, args):
        if eventType == IReaderMonitorEventHandler.MONITOR_EVENT_ADDED:
            for readername in args:
                self.__handler.handleReaderAdded(readername)
        elif eventType == IReaderMonitorEventHandler.MONITOR_EVENT_REMOVED:
            for readername in args:
                self.__handler.handleReaderRemoved(readername)

    def monitorCard(self):
        self.__reader.addCardMonitorHandler(self)
        self.__reader.monitorCard(self.__readername)

    def disconnect(self):
        self.__gpInterface.disconnect()
        self.__reader.removeCardMonitorHandler(self)
        self.__reader.stopCardMonitor()
    
    def __transmit_impl(self, cmd, t0AutoGetResponse, handlerArgs):
        commandValue = Util.s2vs(cmd)
        
        self.__handler.handleAPDUCommand("".join("%02X " %(ord(vb)) for vb in commandValue), handlerArgs)
        timeStart = timeit.default_timer()
        rsp = self.__gpInterface.transmit(Util.s2vs(cmd))
        timeStop = timeit.default_timer()
        transtime = timeStop - timeStart
        self.__handler.handleAPDUResponse("".join("%02X " %(ord(vb)) for vb in rsp), transtime, handlerArgs)
        
        if t0AutoGetResponse and (rsp[0] == '\x61') and (len(handlerArgs) == 0):
            cmd = '\x00\xC0\x00\x00' + rsp[1]
            self.__handler.handleAPDUCommand("".join("%02X " %(ord(vb)) for vb in cmd))
            timeStart = timeit.default_timer()
            rsp = gp.sendApdu(cmd)
            timeStop = timeit.default_timer()
            transtime = timeStop - timeStart
            self.__handler.handleAPDUResponse("".join("%02X " %(ord(vb)) for vb in rsp), transtime)

    def __transmit(self, cmd, t0AutoGetResponse, handlerArgs):
        """Thread method to transmit an apdu;"""
        try:
            self.__transmit_impl(cmd, t0AutoGetResponse, handlerArgs)
        except Exception, e:
            self.__handler.handleException(e)