def execute(self): TLog.generic( "Reading ({}) messages from CANbus on interface({})".format( self.args.count, self.args.iface)) bus = None try: if self.args.count < 1: raise ValueError("Illegal count value {}".format( self.args.count)) bus = CanBus(bustype="socketcan", channel=self.args.iface) for cnt in range(1, self.args.count + 1): m = bus.recv(timeout=self.args.timeout) if m is None: raise TimeoutError( "Timed out while waiting for CAN message") if self.args.arbitid: if self.args.arbitid == m.arbitration_id: TLog.success("(msg={})(data={})".format( cnt, hexlify(m.data).decode())) else: TLog.success( "(msg={})(arbitration_id=0x{:x})(data={})".format( cnt, m.arbitration_id, hexlify(m.data).decode())) except: self.result.exception() finally: if bus: bus.shutdown()
def execute(self): """Execute the test.""" TLog.generic( "Reading ({}) messages from CANbus on interface({})".format( self.args.count, self.args.iface)) bus = None try: if self.args.count < 1: raise ValueError("Illegal count value {}".format( self.args.count)) bus = CanBus(bustype="socketcan", channel=self.args.iface) for cnt in range(1, self.args.count + 1): message = bus.recv(timeout=self.args.timeout) if message is None: raise TimeoutError( "Timed out while waiting for CAN message") if self.args.arbitid: if self.args.arbitid == message.arbitration_id: self.output_handler(logkwargs=LOGNORMAL, count=cnt, data=hexlify( message.data).decode()) else: self.output_handler(logkwargs=LOGNORMAL, count=cnt, arbitration_id="0x{:x}".format( message.arbitration_id), data=hexlify(message.data).decode()) except: # noqa: E722 self.result.exception() finally: if bus: bus.shutdown()
def execute(self): """Execute tht test.""" TLog.generic( "Writing to CANbus on interface({}), arbitration id(0x{:x}), " "extended?({}) data({})".format(self.args.iface, self.args.arbitid, self.args.exid, self.args.data)) bus = None try: if self.args.count < 1: raise ValueError("Illegal count value {}".format( self.args.count)) bus = CanBus(bustype="socketcan", channel=self.args.iface) message = CanMessage( arbitration_id=self.args.arbitid, extended_id=self.args.exid, data=list(bytes.fromhex(self.args.data)), ) for count in range(1, self.args.count + 1): bus.send(message) TLog.success("Wrote message {}".format(count)) if self.args.wait and count < self.args.count: sleep(self.args.wait) except: # noqa: E722 self.result.exception() finally: if bus: bus.shutdown()
def execute(self): """Execute the test.""" TLog.generic( "Fuzz Writing to CANbus on interface({}), arbitration id(0x{:x}), " "extended?({}) data({})".format(self.args.iface, self.args.arbitid, self.args.exid, self.args.data)) bus = None try: if self.args.count < 1: raise ValueError("Illegal count value {}".format( self.args.count)) if self.args.wait < 0: raise ValueError("Illegal wait value {}".format( self.args.wait)) bus = CanBus(bustype="socketcan", channel=self.args.iface) for count in range(self.args.count): datacan = self.args.data while datacan.find("xx") >= 0: datacan = datacan.replace("xx", "{:02x}".format( randint(0, 0xFF)), 1) # main fuzzing magic with randint message = CanMessage(arbitration_id=self.args.arbitid, extended_id=self.args.exid, data=list(bytes.fromhex(datacan))) bus.send(message) TLog.success("{} : Wrote message {} ".format(count, datacan)) if self.args.wait > 0: sleep(self.args.wait) except BaseException: self.result.exception() finally: if bus: bus.shutdown()