Esempio n. 1
0
from bthci import HCI
from pyclui import Logger
from bluepy.btle import BTLEException
from bluetooth.btcommon import BluetoothError

from .ui import parse_cmdline
from .helper import find_rfkill_devid, get_microbit_devpaths
from .br_scan import BRScanner
from .le_scan import LEScanner
from .gatt_scan import GATTScanner
from .sdp_scan import SDPScanner
from .stack_scan import StackScanner
from .vuln_scan import VulnScanner

logger = Logger(__name__, logging.INFO)

logger.debug("__name__: {}".format(__name__))


def init_hci(iface='hci0'):
    hci = HCI(iface)

    exitcode, output = subprocess.getstatusoutput('rfkill unblock %d' %
                                                  find_rfkill_devid(iface))
    if exitcode != 0:
        logger.error('rfkill: ' + output)
        sys.exit(exitcode)

    exitcode, output = subprocess.getstatusoutput("hciconfig up " + iface)
    if exitcode != 0:
Esempio n. 2
0
#!/usr/bin/env python3

import struct
import logging
import threading
from enum import Enum, unique

from serial import Serial
from pyclui import Logger

from .ll import pp_adv_phych_pdu

logger = Logger(__name__, logging.INFO)

# public_addrs = set()
# random_addrs = set()

@unique
class SerialEvtCodes(Enum):
    READY   = 0X00
    ERROR   = 0X01
    ACK     = 0X02
    NEW_ADV = 0X0B
    DEBUG   = 0XFF


@unique
class SerialCmdOpcodes(Enum):
    RESET     = 0X00
    ACK       = 0X02
    SNIFF_ADV = 0X0B
Esempio n. 3
0
import logging
import pkg_resources

from dbus.exceptions import DBusException
from gi.repository import GObject

from pyclui import Logger, blue, red

APP_NAME = 'bluescan'
BLUEZ_NAME = 'org.bluez'  # The well-known name of bluetoothd

IFACE_PROP = 'org.freedesktop.DBus.Properties'

mainloop = GObject.MainLoop()

logger = Logger(__name__, logging.INFO)

oui_file = pkg_resources.resource_stream(__name__, "res/oui.txt")
oui_file = io.TextIOWrapper(oui_file)
oui_company_names = {}
for line in oui_file:
    items = line.strip().split('\t\t')
    if len(items) == 2 and '   (hex)' in items[0]:
        company_id = items[0].removesuffix('   (hex)')
        oui_company_names[company_id] = items[1]

logger.debug("oui_company_names: {}".format(oui_company_names))


class InvalidArgsException(DBusException):
    _dbus_error_name = 'org.freedesktop.DBus.Error.InvalidArgs'