Esempio n. 1
0
    def scan(self):
        """
        Scan for BLE devices in the proximity.

        :return:
        """
        TLog.generic("Scanning BLE devices for {} second(s)".format(
            self.args.timeout))
        try:
            devices = Ble.scan(iface=self.args.iface, tout=self.args.timeout)
            for device in devices:
                self.found = True
                TLog.success("(name={})(address={})".format(
                    device.getValueText(Ble.ADTYPE_NAME) or "Unknown",
                    device.addr))
                if self.args.verbose is True:
                    TLog.success("    (rssi={}dB)".format(device.rssi))
                    TLog.success("    (connectable={})".format(
                        device.connectable))
                    for scan_data in device.getScanData():
                        TLog.success("    ({}={})".format(
                            scan_data[1], scan_data[2]))
        except:  # noqa: E722
            self.reason = "Exception caught: {}".format(sysexcinfo())

        if self.found is False and self.reason is None:
            self.reason = "No BLE devices found"
Esempio n. 2
0
 def execute(self):
     try:
         if self.args.addr:
             TLog.generic("Tapplock BLE Address specified ({})".format(
                 self.args.addr))
             self.unlock(self.args.addr)
         else:
             TLog.generic("Scanning for Tapplocks")
             devs = Ble.scan(iface=self.args.iface, tout=self.args.timeout)
             for d in devs:
                 name = d.getValueText(Ble.ADTYPE_NAME)
                 if name is not None and name[0:6] == self.TNAMEPREFIX:
                     TLog.success("Found Tapplock (name={})(mac={})".format(
                         name, d.addr))
                     self.unlock(d.addr)
     except:
         self.result.exception()
Esempio n. 3
0
 def execute(self):
     """Execute the test."""
     try:
         if self.args.addr:
             TLog.generic(
                 "Tapplock BLE Address specified ({})".format(self.args.addr)
             )
             self.unlock(self.args.addr)
         else:
             TLog.generic("Scanning for Tapplocks...")
             devices = Ble.scan(iface=self.args.iface, tout=self.args.timeout)
             for device in devices:
                 name = device.getValueText(Ble.ADTYPE_NAME)
                 if name is not None and name[0:6] == self.TNAMEPREFIX:
                     TLog.success("Found Tapplock")
                     self.unlock(device.addr, name=name)
     except:  # noqa: E722
         self.result.exception()
Esempio n. 4
0
    def execute(self):
        """
        Execute the plugin.
        Scan for BLE devices in the proximity.

        Returns:
            Nothing
        """
        found = False
        TLog.generic("Scanning BLE devices for {} second(s)".format(
            self.args.timeout))
        try:
            devices = Ble.scan(iface=self.args.iface, tout=self.args.timeout)
            for device in devices:
                found = True
                outdict = {
                    "name": device.getValueText(Ble.ADTYPE_NAME) or "Unknown",
                    "addr": device.addr,
                    "addrtype": device.addrType,
                    "rssi": "{} dBm".format(device.rssi),
                    "connectable": device.connectable,
                    "adtype_data": []
                }
                for scan_data in device.getScanData():
                    outdict["adtype_data"].append({
                        "adtype": scan_data[0],
                        "description": scan_data[1],
                        "value": scan_data[2]
                    })
                self.output_handler(**outdict)
        except:  # noqa: E722
            self.result.setstatus(passed=False,
                                  reason="Exception caught: {}".format(
                                      sysexcinfo()))

        if found is False:
            TLog.fail("No BLE devices found")