[Модуль] Broadlink (dev_broadlink)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
VooDooN
Сообщения: 307
Зарегистрирован: Сб июн 11, 2016 12:02 am
Благодарил (а): 170 раз
Поблагодарили: 64 раза

Re: Модуль Broadlink

Сообщение VooDooN » Вт июл 04, 2017 12:21 pm

dmw писал(а):пакеты шифрованы, на android-устройствах ключ находится в /data/data/com.broadlink.rmt/databases/rmt.db
Если вытащите этот файл (нужен root), выложите его вместе с захваченными пакетами, расшифруем.
nick7zmail писал(а):Эмм...это пакеты полученные или отправленные? Я то отправленный хотел получить...там не так много байт должно быть...нам главное заполучить управляющий...и да, по любому расшифровывать надо.
Что вы называете ключом в базе, devicePassword? Просмотрел всю базу, там нет ничего такого, кроме devicePassword. Я просто установил E-Control на другой девайс с рутом и вот думаю, все ли ключи успели записаться в базу. Не рано ли я ее вытащил... Потом уже пакеты отлавливал.

В общем, вытащил базу, добавил в архив 3 пакета (Upstream и Downstream) для каждого. В имени файлов указал примерные значения, которые могут быть в ответе (точно определить не могу в каком пакете какие значения).
Когда в E-Control открыта вкладка с мощностью, то в packet capture каждые 3 секунды я вижу по 2 пакета для SP3S, в первом я получаю маленький ответ, а во втором - большой. Оба вида запаковал с пометками small и big.
<Архив удален специально>
Хотелось бы научиться расшифровывать это все дело :)
Последний раз редактировалось VooDooN Вт июл 04, 2017 9:22 pm, всего редактировалось 1 раз.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вт июл 04, 2017 12:31 pm

VooDooN писал(а): Хотелось бы научиться расшифровывать это все дело :)
http://php.net/manual/ru/function.mcrypt-decrypt.php
Пожалуйста, учитесь)))
Применительно к бродлинку

Код: Выделить всё

$key = array(0x09, 0x76, 0x28, 0x34, 0x3f, 0xe9, 0x9e, 0x23, 0x76, 0x5c, 0x15, 0x13, 0xac, 0xcf, 0x8b, 0x02);
$iv = array(0x56, 0x2e, 0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58);

function aes128_cbc_decrypt($key, $data, $iv) {
  return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
} 
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Модуль Broadlink

Сообщение dmw » Вт июл 04, 2017 12:45 pm

VooDooN писал(а):Что вы называете ключом в базе, devicePassword? Просмотрел всю базу, там нет ничего такого, кроме devicePassword
Не совсем, но вы в верном направлении))) Нужно смотреть таблицу deviceTable, поле publicKey и terminalId.
В Вашем случае для вашего SP3S:

Код: Выделить всё

$key_authorized = array(0x1b, 0xc9, 0xb1, 0x25, 0x2f, 0x2b, 0x05, 0x61, 0x83, 0x6d, 0xff, 0x6f, 0x39, 0xdb, 0x63, 0xd5);
$id_authorized = array(1, 0, 0, 0); 
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вт июл 04, 2017 12:49 pm

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

Ну да ладно...я в этом меньше понимаю 100%)) т.к. не практиковался особо...всё только в теории предстваляю.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Модуль Broadlink

Сообщение dmw » Вт июл 04, 2017 1:10 pm

Вот например ваш расшифрованый "2.1. Value 12.8 - Upstream":

Код: Выделить всё

0000   01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
и ответ на него "2.2. Value 12.8 - Downstream (big answer)":
СпойлерПоказать

Код: Выделить всё

0000   01 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00 
0010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0040   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0050   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0060   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0080   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0090   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00c0   00 00 00 00 00 00 00 00  00 00 00 00 53 50 33 53 
00d0   28 31 36 41 29 00 00 00  00 00 00 00 00 00 00 00 
00e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0100   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0110   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0120   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0130   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0140   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0150   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0160   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0170   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0180   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0190   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01f0   e1 07 3a 32 0d 02 04 07  7e da 06 81 8f 28 31 e5
Тоесть видим что в запросе используется управляющий бит = 0x01.
3.2. Value 12.72 - Downstream (big answer):
СпойлерПоказать

Код: Выделить всё

0000   01 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00 
0010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0040   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0050   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0060   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0080   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0090   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00c0   00 00 00 00 00 00 00 00  00 00 00 00 53 50 33 53 
00d0   28 31 36 41 29 00 00 00  00 00 00 00 00 00 00 00 
00e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0100   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0110   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0120   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0130   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0140   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0150   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0160   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0170   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0180   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
0190   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
01f0   e1 07 04 33 0d 02 04 07  fb c7 af 6c d6 60 3a d0
Подготовил Вам файлик для последующего анализа что там нам будет выдавать SP3 на запросы по аналогии как искали пищалку у S1 (ip-адрес в начале скрипта поставьте верный):
Вложения
broadlinkSP3S.zip
(3.22 КБ) 161 скачивание
За это сообщение автора dmw поблагодарил:
VooDooN (Вт июл 04, 2017 1:19 pm)
Рейтинг: 1.16%
Аватара пользователя
VooDooN
Сообщения: 307
Зарегистрирован: Сб июн 11, 2016 12:02 am
Благодарил (а): 170 раз
Поблагодарили: 64 раза

Re: Модуль Broadlink

Сообщение VooDooN » Вт июл 04, 2017 1:28 pm

Спасибо!
Интересно, что поле publicKey было пустым, если смотреть базу через андроид-приложение SQLiteViewer, а вот теперь открыл через виндовый "DB Browser for SQLite" - вижу значения.

Вечером посмотрю, что покажет скрипт. Но пока появилось ощущение, что мы вернулись опять к тому, что было написано тут с картинкой-"сапогом":
viewtopic.php?f=5&t=3544&start=1360#p55612
Уж очень похоже. Мне тогда не удалось поймать байты с нагрузкой.

Еще очень интересно, что это за пакет с пометкой small, может там нагрузка указана?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вт июл 04, 2017 1:41 pm

Ну сейчас в библиотеке - байт для запроса тоже

Код: Выделить всё

$packet[0] = 0x01; 
Так что вы 100% получите ту же картину с "сапогом" =D
Посмотрите маленький пакет...может в нем что-то другое зашито...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
VooDooN
Сообщения: 307
Зарегистрирован: Сб июн 11, 2016 12:02 am
Благодарил (а): 170 раз
Поблагодарили: 64 раза

Re: Модуль Broadlink

Сообщение VooDooN » Вт июл 04, 2017 1:47 pm

nick7zmail писал(а):Ну сейчас в библиотеке - байт для запроса тоже

Код: Выделить всё

$packet[0] = 0x01; 
Так что вы 100% получите ту же картину с "сапогом" =D
Посмотрите маленький пакет...может в нем что-то другое зашито...
Да, тот скрипт, что я использовал, содержит

Код: Выделить всё

$packet[0] = 0x01;
Я его тогда подобрал методом перебора :)

Сравнил скрипт, что я использовал и последний скрипт от dmw - почти 1 в 1. Так что вернулись к тому, что было :)
В результате, я буду видеть такую картинку, как я записал в gif вот тут: viewtopic.php?f=5&t=3544&start=1370#p55640
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Модуль Broadlink

Сообщение dmw » Вт июл 04, 2017 1:51 pm

Ах, да. Про сапог то я и забыл. Значит Вам скрип уже не нужен, т.к. он у Вас есть. Ну да ладно.
Что касается small - он зашифрован другим ключем, не SP3
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вт июл 04, 2017 1:56 pm

dmw писал(а):Ах, да. Про сапог то я и забыл. Значит Вам скрип уже не нужен, т.к. он у Вас есть. Ну да ладно.
Что касается small - он зашифрован другим ключем, не SP3
Ну варианта тогда 2...либо мощность вычисляется каким-то ведомым одним китайцам способом из байт последней строки (в чем я сомневаюсь), либо таки запрашивается другим пакетом. Может у какого то из больших пакетов управляющий байт в запросе другой?? Либо таки он в этом шифрованном непонятным способом пакете...

Можно, как вариант, перебором попробовать =D...вариантов всего 255...но ответ, скорее всего в первых 20 будет.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить