отметили
1
человек
голосовать
1
человек
Реверс-инжиниринг Xiaomi Smart Band 10habr.com

Автор статьи столкнулся с типичной проблемой владельцев фитнес-браслетов Xiaomi: данные о пульсе, сне и активности остаются запертыми в официальном приложении Mi Fitness, и производитель не предоставляет открытого API для их экспорта. Изначально он хотел просто настроить автоматический сбор этих показателей в локальную базу данных SQLite и выводить отчёты в семейный Telegram-бот.
Для решения задачи потребовалось проанализировать, как именно данные передаются между браслетом, приложением и облаком Xiaomi. Автор начал с анализа сетевого трафика и настройки доверия к собственному центру сертификации, чтобы перехватывать зашифрованные запросы.
В ходе исследования он столкнулся с проприетарным протоколом Xiaomi, использующим шифрование RC4, и смог выполнить его реверс-инжиниринг. Кроме того, потребовалось расшифровать объекты, защищённые алгоритмом AES/CBC, из хранилища FDS.
Особую сложность составил парсинг собственного бинарного формата, в который Xiaomi упаковывает данные о сне. В итоге автору удалось полностью разобрать схему обмена данными и написать код для их извлечения, что позволяет теперь использовать «умный» браслет в собственных проектах без привязки к официальному приложению.
Комментарии (0)
Чтобы комментировать, нужно войти.