Управление телефоном по bluetooth для камеры. Трюки с Bluetooth: маленькие хитрости использования «синего зуба

В этой статье представлена пошаговая инструкция, которая поможет вам самостоятельно создать приложение для Android-смартфона, предназначенное для управления чем-либо через Bluetooth. Для демонстрации мы подробно разберем пример мигания светодиодом на Arduino по командам с телефона или планшета. В результате выполнения наших инструкций вы научитесь делать вот так:

Для управления домашним роботом достаточно добавить кнопок и обработать их команды на стороне Arduino.

Что для этого потребуется

  1. Любая Arduino-совместимая плата
  2. Bluetooth-модуль
  3. Устройство на котором установлена ОС Android

В качестве Bluetooth-модуля лучше всего использовать HC-05. Его легко купить в китайском интернет магазине или на eBay. Модуль питается от 3.3 В, но его линии I/O могут работать и с 5-вольтовой логикой, что позволяет подключать его UART к Arduino.

Bluetooth-модуль HC-05

Подключение Bluetooth-модуля к Arduino

Так теперь нам нужно подключить нашу Arduino с Bluetooth. Если на Arduino нет вывода с 3.3В, а только 5В то нужен будет поставить стабилизатор чтобы снизить питание. Назначение выводов HC-05 легко найти в интернете. Для использования рекомендуем вам сделать плату с выведенными линиями питания, Rx и Tx. Подключение к Arduino необходимо производить в следующем порядке:

  • вывод Arduino 3.3В или (5В через стабилизатор!) — к 12 пину модуля Bluetooth
  • вывод Arduino GND — к 13 пину модуля Bluetooth
  • вывод Arduino TX — к 2 пину модуля RX Bluetooth
  • вывод Arduino RX — к 1 пину модуля TX Bluetooth

После подключения необходимо проверить работоспособность Bluetooth модуля. Подключим Светодиод к 12 выводу Arduino и загрузим на плату следующий скетч:

Char incomingByte; // входящие данные int LED = 12; // LED подключен к 12 пину void setup() { Serial.begin(9600); // инициализация порта pinMode(LED, OUTPUT); //Устанавливаем 12 вывод как выход Serial.println("Press 1 to LED ON or 0 to LED OFF..."); } void loop() { if (Serial.available() > 0) { //если пришли данные incomingByte = Serial.read(); // считываем байт if(incomingByte == "0") { digitalWrite(LED, LOW); // если 1, то выключаем LED Serial.println("LED OFF. Press 1 to LED ON!"); // и выводим обратно сообщение } if(incomingByte == "1") { digitalWrite(LED, HIGH); // если 0, то включаем LED Serial.println("LED ON. Press 0 to LED OFF!"); } } }

Иной раз так хочется посмотреть какой-то фильм с помощью компьютер, но возникает проблема отсутствия пульта для него. Но решение есть.

Ваш смартфон Galaxy S3 может послужить отличным помощником. Существует специальное приложение Tablet Remote, которое превращает девайс в пульт дистанционного управления. Нужно лишь скачать и установить ее на ПК и на смартфон, а затем слегка настроить ее.

Программа на самом деле способна заменить обычный телевизионный пульт и привнести что-то новое. Созданный виртуальный пульт позволить регулировать громкость видео, переключать его, ставить на паузу, осуществлять поиск фильмов или роликов/музыки. Также, при помощи экранной клавиатуры можно вводить текст в поисковой строке и находить все нужные фильмы.

Кроме всего прочего, для работы этой программы не нужны root-права.


Итак, для начала Вам нужно установить эту программу на компьютер и на смартфон. Далее необходимо включить Bluetooth на обеих устройствах. Для того, чтобы они смогли подключиться друг к другу, выполните следующую цепочку действий: «Connection»/ «Scan Devices». Затем одно из устройств будет найдено другим. Чтобы смартфон или ПК был внесен в список, нажмите кнопку «Make Device Discoverable». Не забывайте, что Bluetooth по умолчанию работает 120 секунд, так что Вам придется залезть в настройки и снять это ограничение: «Настройки»/«Беспроводные сети»/«Bluetooth».

Так как управлять нужно будет смартфоном, то на нем открываем установленную программу, нажимаем кнопку «Setup». Откроется новое меню, в котором будут находиться 2 строчки. Напротив каждой из них ставим галочку.


Вот в принципе и все действия по настройке программы на обоих устройствах. Вам остается просто нажать на кнопку «Remote» на Вашем Galaxy S3 для активации виртуального дистанционного пульта управления.

Если Вы хотите просматривать видео в полноэкранном режиме, то необходимо зайти в настройки «Settings» и поставить галочку напротив «Hide Status bar».

Программа функционирует на любых устройствах без каких-либо сбоев и проблем. Скачать ее можно бесплатно в

Все отлично знают, что с помощью Bluetooth можно передать файл с девайса на девайс или подключить беспроводную гарнитуру. Но этим его возможности не ограничиваются. Имея при себе нужный инструмент, можно творить настоящие чудеса. Так почему бы не попробовать себя в роли фокусника?

Встроенный модуль технологии Bluetooth (или, если более официально, IEEE 802.15.3 ) давно перестал быть диковинкой. Стоимость модуля настолько мизерна, что не встраивает его в мобильный, ноутбук или КПК только ленивый производитель. Да и то – по соображениям маркетинга. Словом, Bluetooth используют практически все. Но лишь единицы знают, что, используя технологию, рискуют выдать свои конфиденциальные данные. Но начнем все-таки с хорошего!

Трюк 1: Используем BT для удаленного доступа к компьютеру

Как-то для проведения презентации я пригласил одну длинноногую подругу – нажимать кнопку «пробел», чтобы перелистывать слайды в Power Point. Это удовольствие стоило мне недешевого обеда и двух часов пустых разговоров с Barbie girl. После этого я твердо решил: в следующий раз проблему отсутствия пульта ДУ я обойду по-другому. И обошел, воспользовавшись мобильником! Да-да, прямо с телефона можно перелистывать слайды, управлять музыкой – и делать еще бог знает что. Главное, чтобы на мобильнике и компьютере были установлены BT-модули. Мало того, что сэкономишь деньги и силы, так еще и выглядеть будешь непростительно модно. Показать такой фокус способен каждый, кто заюзает утилиту
Bluetooth Remote Control
, не столь давно обновившуюся до версии 3.0. Она позволяет управлять компьютером с экрана любого мобильного телефона. Все очень просто. На компьютер ставится специальная серверная часть, а на телефон – программа-клиент, написанная на Java (требуется MIDP 2.0). После настройки нехитрой схемы ты сможешь дистанционно управлять мышкой и клавиатурой компа. И самое главное – получишь доступ к удаленному рабочему столу. Настоящий Remote Desktop прямо с экрана мобильного телефона! Ну, а с длинноногой подругой время можно провести куда более удачно. Bluetooth Remote Control пригодится и здесь: чтобы поставить
романтическую музыку:).

Трюк 2: Контроль доступа с помощью BT

Если ты работаешь в комнате, где вместе с тобой сидит с десяток коллег, тебе наверняка приходилось блокировать компьютер, когда уходишь в другое помещение. А что? Не успеешь отойти, как кто-нибудь уже покопается на твоем харде. Расклад не самый приятный. В общем, лочить компьютер нужно обязательно, вопрос в том – как? Можно использовать стандартные возможности винды и по десять раз на дню вводить длиннющий пароль. Или же делать это красиво с помощью технологии Bluetooth . Все просто, как дважды два. Отходишь от компьютера – и он тут же блокируется. Возвращаешься обратно – и лока как не бывало! Единственное условие: как в компьютере, так и в мобильном телефоне должен быть установлен модуль
Bluetooth , а в системе заинсталена программа LockItNow (ты легко можешь ) . Впрочем, приятелям и коллегам можно рассказывать о телепатических возможностях, а потом продавать секрет за деньги:). Кстати говоря, если под рукой BT-модуля нет, то его можно заменить телефоном, который поддерживает «синий зуб» (подключи по COM-порту).

Трюк 3: Снифаем BT-трафик из эфира

Мастерство начинается с понимания. Не возникало ли у тебя когда-нибудь желания посмотреть внутрь протокола и узнать, как происходит обмен данными через «синий зуб»? Прослушивание трафика Bluetooth может выполняться только «в себя», то есть выполняется перехват исходящего и входящего трафика узла, на котором ты отдал команды. В этом деле немаловажное значение имеет так называемый Host Controller Interface (HCI), который позволяет обращаться к передатчику. HCI-узел обычно подключается к узлу драйвера устройства Bluetooth (входящий поток) и к узлу L2CAP (исходящий поток). Windows платформа по умолчанию такой возможности не предоставляет. Однако сторонними разработчиками были выпущены
специальные драйвера, которые позволяют переводить стандартный донгл в сниффер . Традиционно показательной в этом плане является работа FTS4BT Wireless Bluetooth Protocol Analyzer , стоящего бешеные деньги. Продукт цепляет тем, что поддерживает новый Bluetooth v2.0 + EDR , на базе которого работают современные устройства и, более того, способен на лету декодировать весь трафик из эфира, аккуратно отсортировывая аудио, данные протоколов приложений и многое другое. Понятно, что для снифинга (да и вообще) наиболее актуальны USB-донглы класса 1, радиус действия которых достигает ста метров.

Трюк 4: Работаем с BT-адаптером напрямую

Долгое время Bluetooth стеки для Windows предоставляли настолько скудные возможности , что программисты просто обходили эту платформу стороной. Этим объясняется, что большинство программ для серьезных забав c «синим зубом» разрабатываются под никсовую платформу. Некоторые из хитрых приемов мы разберем именно на это платформе, а именно FreeBSD (напомню, что на диске прошлого номера мы выкладывали свежий 7.0 релиз этой ОС). Сама технология Bluetooth официально стала поддерживаться на ней только с 5-ой ветки на базе подсистемы Netgraph. Радует, что большинство USB-адаптеров совместимы с драйвером ng_ubt (его необходимо завести перед подключением устройства). Попробуем?

  1. Подключаем устройство: kldload ng_ubt
  2. Копируем сценарий подгрузки стека в удобное место: cp /usr/share/examples/netgraph/bluetooth/rc.bluetooth /usr/local/etc/rc.bluetooth
  3. Копируем сценарий подгрузки стека в удобное место и запускаем: sh /usr/local/etc/rc.bluetoots start ubt0

Теперь хочу познакомить тебя с утилитой hccontrol. Это одна из основных программ для работы с BT-модулем. Именно она выполняет все операции, связанные с интерфейсом HCI, и имеет следующий синтаксис: hccontrol –n <имя_hci_узла> <команда>. Проверим функциональность нашего устройства, просканиров эфир на наличие устройств:

hccontrol –n ubt0hci Inquiry

Как результат, утилита выведет информацию о найденных устройствах, в том числе их MAC-адреса. Надо заметить, что каждое из устройств Bluetooth, будь то хедсет или обыкновенный телефон, представляет некоторый набор сервисов . Базовый перечень включает в себя: CIP (Common ISDN Access), CTP (Cordless Telephony), DUN (dial-up networking), FAX (FAX), FTRN (Obex File Transwer), HSET (Headset), NAP (Network Access Point). Чтобы выяснить, какие сервисы предоставляет то или иное устройство, используется запрос на специальном протоколе SPD (Service Descovery Protocol). Сервер SPD работает непосредственно на машине-хосте и является исключительно информационной составляющей (повлиять на него
невозможно). Определить, какие сервисы предоставляют найденные устройства, можно с помощью соответствующей утилиты:

# spdcontrol -a browse

Трюк 5: Находим скрытые устройства

Итак, эфир мы просканировали и даже выяснили, какие сервисы доступны на активных устройствах. Но вот загвоздка! Некоторые девайсы никак не выдают своего присутствия, поскольку находятся в режиме «Undiscoverable mode» и не отвечают на широковещательные запросы. По настройкам своего телефона ты наверняка знаешь о подобной опции безопасности. Однако обнаружить такие устройства все-таки можно !

Самый известный прием их обнаружения – тупой перебор MAC-адресов, то есть последовательная посылка запросов на разные адреса из определенного диапазона. Для этого нужно использовать очень простую утилиту Redfang , которая перебирает последние шесть байт адреса устройства и таким образом обнаруживает спрятавшиеся устройства.

Другой вариант – это использовать пассивные методики : перевести свое устройство в режим ожидания, при этом назначить сети какое-нибудь привлекательное имя:

hciconfig hci0 name BT_YANDEX
hciconfig hci0 down
hciconfig hci0 up
hcidump -V | grep bdaddr

В результате отобразятся все входящие соединения, среди которых могут запросто оказаться товарищи со скрытыми идентификаторами.

Трюк 6: Перехватываем из эфира разговоры по гарнитуре

Одна из основных угроз радиотехнологий состоит в том, что данные можно перехватить. Первое, что приходит в голову, касаемо Bluetooth – прослушать разговоры людей, использующих гарнитуру . И зачастую это реально! На хакерском фестивале What the Hack в Нидерландах специалисты из группы Trifinite продемонстрировали, как при помощи ноутбука с Linux, специальной программы и направленной антенны можно подслушать, о чем говорит через Bluetooth-гарнитуру водитель проезжающего автомобиля. Группа разработала программу Car Whisperer («Автомобильный шептун»). Возможности программы относительно невелики: прослушать можно только тех, кто забыл сменить заводские пароли доступа к Bluetooth наподобие
«0000» или «1234». Но таких бедолаг, поверь, очень и очень много! «Шептун» способен вклиниться и успешно пройти «pairing» устройств, получив информацию, передаваемую с каркита или хедсета на мобилку. Хочу обратить внимание: утилита позволяет не только получить информацию, передающуюся между хедсетом и мобилой, но и инжектить туда свою. Мы решили проверить возможности этой программы, скачав Car Whisperer с сайта разработчиков.

hciconfig адаптер class 0x500204
# 0x500204 - это класс «phone»

В противном случае некоторые «умные» девайсы могут заподозрить неладное. Смотрим синтаксис утилиты, который выглядит следующим образом:

./carwhisperer «что внедряем в линию» «что захватываем из линии» «адрес устройства» [канал]

Мы взяли внедряемый файл прямо из папки утилиты, а в качестве выходного указали out.raw:

./carwhisperer 0 message.raw /tmp/out.raw
00:15:0E:91:19:73

На выходе получаем файл out.raw. Прослушать его в чистом виде нельзя: необходимо преобразовать в аудио формат, для чего потребуется дополнительная утилита. Подойдут довольно многие аудио конвертеры, например :

raw –r 8000 –c 1 –s –w out.raw –t wav –r
44100 –c 2 out.wav

Кроме прослушивания, можно войти в систему, просмотреть телефонную книгу и воспользоваться другими возможностями «свободных рук» с Bluetooth. Принцип такой: сначала осуществляется поиск активных устройств и проверка на предмет сервиса HS (Head Set). Далее исследуется MAC-адрес устройства и производится попытка подключения с использованием стандартного ключа. Если коннект установлен, то с устройством можно делать все, что угодно (в пределах доступного набора AT-команд).

На практике это выглядит следующим образом. Сначала осуществляется поиск всех активных гарнитур с помощью команды «sdptool search HS», которая выдает примерно такой ответ:

Inquiring ...
Searching for HS on 00:0A:3A:54:71:95 ...
Service Name: Headset
Service RecHandle: 0x10009
Service Class ID List:
"Headset" (0x1108)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Далее осуществляется попытка открыть RFCOMM соединение на SCO audio channel с помощью команды «rfcomm connect 2 00:0A:3A:54:71:95 1» и посылка нужных AT-команд. Приведу небольшую статистическую заметку о данных авторизации на некоторые модели беспроводных гарнитур:

Nokia (00:02:EE...) - pin="5475"
Audi UHV (00:0E:9F...) - pin="1234"
O"Neill (00:80:37...) - pin="8761"
Cellink (00:0A:94...) - pin="1234"
Eazix (00:0C:84...) - pin="1234"

Кстати говоря, тот же принцип может использоваться для несанкционированного подключения и ко всем остальным устройствам . При помощи AT-команд и протокола RFCOMM можно, к примеру, прочитать SMS-сообщение или даже отправить его с чужого телефона на платный номер, поставив владельца девайса на деньги. Будь бдителен!

Трюк 7: DDoS BT-устройств

Подход традиционен. DDoS реально провести, когда хостовый девайс («master») выполняет работу, во много раз превосходящую клиентскую. Такую ситуацию называют атакой на отказ в обслуживании (Denial Of Service). Она может подвесить телефон или привести к быстрой разрядке батарейки. Провести атаку можно несколькими способами. Начнем со стандартных средств. Самое очевидное – пинговать девайс пакетами большого размера. Сделать это можно, указав утилите l2ping в качестве параметра «-s» флаг:

# l2ping -s 10000 -b "МАС адрес"

Сама программа, как ты уже понял, является родственником ping в bluetooth среде и служит для проверки связи и наличия соединения. Другой способ, принципиально отличающийся от первого, состоит в использовании приема «fuzzing» – своеобразной техники-лотереи, потому как заранее неизвестно, что произойдет. Это новое веяние в выявлении уязвимостей в продуктах без анализа исходных кодов. Полагается техника только на интерактивное общение с объектом на понятном для него языке, но с абсолютно хаотичными аргументами и значениями-переменными. Хакерской задачей будет сделать так, чтобы видимое название телефона состояло из достаточно большого числа элементов. При обнаружении его «master’ом» в 70%
случаев происходит переполнение или отказ в обслуживании:

hciconfig hci0 name `perl -e "print "ash" x 3137"`
# Команда для линукса
hccontrol –n адаптер change_local_name “новое имя”)
# пример для FreeBSD

Многие телефоны по-прежнему не могут переварить файлы-бомбы. Вот простая реализация подобного приема.

  1. Сначала готовят «бомбу». Известный пример:
    echo `perl -e ‘print "skvz" x 3137’` > file
  2. После чего используют модифицированную утилиту для взаимодействия с OBEX – USSP PUSH (xmailserver.org/ussp-push.html)
    ./obextool push file 00:0A:3A:54:71:95 `perl -e ‘print "skvz" x 3137’` 3


Понравилась статья? Поделиться с друзьями: