Светодиодная лента: реверс-инжиниринг Bluetooth LE Communications

Светодиодная лента: реверс-инжиниринг Bluetooth LE Communications

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

В светодиодных лентах»адресный»(адресный), каждым отдельным светодиодом можно управлять отдельно, что позволяет установить разные цвета или определенные схемы освещения для каждого светодиода. В случае с изделиями этого типа более совершенный механизм управления и система адресациичто может быть Запланированное управлять каждой световой точкой.

Реверс-инжиниринг светодиодных лент Bluetooth: из чего состоит и как делается

Независимый исследователь рассказывает что мне недавно понравилось выполнять обратный инжиниринг из целой серии светодиодные ленты неадресный. Хотя это «закрытые системы», вернемся к операция этих продуктов довольно просто. Настолько, что становится возможным интегрировать светодиодные ленты в открытую систему, такую ​​как Домашний помощник.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Последняя представляет собой хорошо известную платформу с открытым исходным кодом для управления иавтоматизация принадлежащий умные устройства: позволяет настроить полную, универсальную и гибкую систему домашней автоматизации, которая предлагает централизованную среду для управления и координации широкого спектра устройств, включая освещение, термостаты, камеры видеонаблюдения, датчики движения и многие другие. Возможность интегрировать светодиодную ленту или дешевую ленту в систему домашней автоматизации, такую ​​​​как Home Assistant, бесценна.

Для проверки работы светодиодных лент обычно используется стандарт Bluetooth LE (Мало энергии, БЛЕ). Так, исследователь опубликовал БЖ_LEDприложение, которое позволяет вам контролировать совместимые светодиодные ленты: например, команда «69 96 06 01 01» вызывает зажигание; «69 96 02 01 00» выключает его. Ряд специальных команд позволяет вам настроить цветас числовым представлением значений красного, зеленого, синего и белого.

Адресные светодиодные ленты: как взять их под контроль, освободившись от официального приложения

Мы говорили, что руководство адресные светодиодные ленты оказывается немного сложнее: автор хотел попробовать свои силы в продуктах, в которых используются светодиоды WS2812 или подобные. Их много на Амазонке в Италии. примеры адресных планок с чипом WS2812. Некоторые продукты действительно дешевый.

Автор указывает, что речь идет о работе светодиодной ленты. адресный это может быть действительно весело и в то же время познавательно. Однако мы также должны действовать с осторожностью, поскольку, хотя стоимость этих устройств ограничена, существует также возможность окончательно поставить под угрозу их функционирование, перейдя на прошивка неправильные команды или определение поведения, которое потенциально может вызвать проблемы.

Чтобы проверить связь со светодиодной лентой, первым делом необходимо изучить байты, отправленные через Bluetooth через официальное приложение. Осветительные устройства, подобные рассматриваемым, обычно используют простой протокол с заголовком (заголовок), байты команд (такие действия, как включение/выключение, изменение цвета) и закрывающий элемент или нижний колонтитул который мог бы сыграть роль контрольная сумма (методика, используемая в ИТ и телекоммуникациях для проверки целостности передаваемых данных).

Включите параметры разработчика Android.

Пользователям, которые хотят приступить к выполнению задачи и напрямую взаимодействовать со светодиодными лентами через BLE, следует активировать параметры разработчика Android (обычно это можно сделать, быстро нажав не менее 7 раз подряд элемент Информация по телефону в настройках). Дать ей Параметры разработчикапоэтому важно активировать голос Отслеживание Registro Bluetooth HCI.

Голос “Отслеживание Registro Bluetooth HCI” о “Журнал отслеживания Bluetooth HCI«» относится к журналу диагностики, который отслеживает низкоуровневые взаимодействия между устройством Bluetooth и его контроллер Интерфейс хост-контроллера Bluetooth (HCI). HCI — это стандарт интерфейса между физическим уровнем Bluetooth и более высоким уровнем протокола: здесь передача пакетов Bluetooth происходит на уровне протокола, данные, которые можно использовать для детального анализа текущих действий.

Опция, содержащаяся в меню Android, записывает байты, которыми обмениваются через Bluetooth, записывая их в файл, доступный для чтения Wireshark. Выполняя обычные действия, предусмотренные вофициальное приложениеТаким образом, можно собрать ценную информацию о последовательности данных для отправки на светодиодную ленту для включения и выключения света и программирования определенного поведения.

В упомянутой выше статье мы увидели, как использовать приложение. adb (мост отладки Android) для доступа к содержимому файловой системы Android с ПК. С помощью следующей команды вы можете скопировать запись HCI со смартфона на подключенный компьютер:

adb извлекает sdcard/btsnoop_hci.log.

Анализ журнала Bluetooth HCI с помощью Wireshark

Открыв файл журнала Bluetooth HCI с помощью Wireshark, вы можете проверить байты, которыми обмениваются приложение и светодиодная лента. Проявив немного терпения, можно найти значения, отличающиеся на один байт (например 1 и 0 для «включено» и «выключено») в случае действий включения и выключения BLE-полоски.

Иль исследователь предполагает драгоценный фильтр Wireshark который помогает извлечь важную информацию:

bluetooth.dst == ff:ff:ff:ff:ff:ff && btatt.opcode.method==0x12

Вместо ff:ff:ff:ff:ff:ff должен быть указан MAC-адрес светильников, а btatt.opcode.method==0x12 позволяет экстраполировать «записывающие» сообщения, отправленные Android-устройством, на светодиодную ленту. .

Пока все достаточно просто, особенно если намерение пользователя ограничивалось выключением и включением светодиодной ленты.

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

Некоторые светодиодные ленты, как и многие другие устройства Bluetooth, не отображают четко все свои функции. Декомпиляция приложения Android, начиная с его APK-файла, помогает раскрыть многие его «секреты». ДжадксНапример, это программное обеспечение с открытым исходным кодом, предназначенное для декомпилировать (переведи с байт-код в исходный код) Android-приложения, написанные на Java. инструмент можно использовать для получения читаемого представления Java-код начиная с скомпилированного приложения для Android.

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

Однако, поскольку зашифрованные данные не меняются каждый раз, автор легко понял, что ключ это должно было быть уникальный (в том числе одинаковый для всех устройств одного и того же производителя светодиодных лент). Кроме того, микроконтроллер (MCU) характеризующийся низким энергопотреблением – как и у светодиодных лент – он явно не может использовать сложные криптографические ключи.

Это стало возможным благодаря декомпиляции библиотеки AES, используемой приложением. восстановить ключ шифрования (о чем уже было известно в сети). Процедура, выполняемая с помощью декомпилятора IDA Free, подробно показано по этому адресу.

Теперь вы можете изучить каждую функцию приложения, записывать байты, отправляемые на светодиодную ленту, и создавать свои собственные. модели для реализации, например, на таких платформах, как Home Assistant.

Вступительное изображение предоставлено: iStock.com/царапать

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *