Перейти к содержанию
    

Помогите с расшифровкой протокола

Здравствуйте!

 

Помогите решить головоломку =)

 

Есть устройство, которое общается с программой на ПК.

Общение происходит через немного модифицированный USB-COM. После USB-COM идет еще один переходник на базе МК с батарейкой, ограниченный по времени работы (производитель выдает "лицензию" на время).

Программа на ПК о переходнике не знает (?), была написана для более старой версии устройства, которое общалось напрямую с USB-COM.

 

Хочется этот переходник повторить. Логический анализатор показал, что линии RX и TX передаются как есть, с небольной задержкой на МК.

С RTS и DTR вроде тоже понятно (указывают устройству, что подключен комп).

 

НО есть еще один сигнал с переходника на устройство (D0 на скриншоте) - пачки импульсов с паузой в 3.051с. Длительность 1 импульса 3.054мс, длительность пачки 442.85мс.

442.85/3.054=145 бит. 1/0.003054=327.44 бит/с.

Пачки разные =( Но бывают повторяющиеся последовательности. Обмен по TX/RX происходит во время этих пачек, в этот момент сигнал в 0 (но может это и совпадение, сильно мало обмена происходит).

Если этот сигнал пропадает, то устройство перестает отвечать.

Вот вторую последовательность привожу:

 

01111101000010001001000001000011101001111101111010001001000001111011101101000001

00001000100100000100001110100111110100001000110111110100001110100

 

Может, есть идеи, что это?

 

Спасибо!

post-43909-1487395810_thumb.jpg

post-43909-1487395838_thumb.jpg

Изменено пользователем Vasily_

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего, передается некий хеш с принятого сообщения, а устройство проверяет.

Что, настолько дорогая лицензия?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На картинке видно что сигнал D0 просто меняет полярность в начале каждого пакета данных по RX/TX и не несёт никакой информации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего, передается некий хеш с принятого сообщения, а устройство проверяет.

Что, настолько дорогая лицензия?

Хуже =) Не продают буржуи! Раньше да, за дорого, а сейчас - нет

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот вторую последовательность привожу:

 

01111101000010001001000001000011101001111101111010001001000001111011101101000001

00001000100100000100001110100111110100001000110111110100001110100

 

Может, есть идеи, что это?

Берем какой нибудь простой язык: Си или Питон или еще что. И на этом простом языке пишем преобразователь битов в байты. Потому как знаем, что посылки в "COM" начинаются со стартового. Находим в последовательности первый после сброса стартовый и от него начинаем...

Дальше наверняка 8 бит данных, потом может быть паритет и стоповые. Меняем число битов данных, меняем паритеты и стоповые. Ну со стоповыми просто. Если после данных хотя бы в одном месте только один стоповый, то значит так и дальше будет... Ну и пытаемся понять, что находится в данных. Там может быть протокол поверх байтов данных. Либо передача будет идти символьными кодами, либо байт-стаффинг. Либо начало-конец кадра передается по дополнительной линии, и байт-стаффинга нет... Вот тогда и смотрите, что передается в данных и как это можно трактовать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Советчики - это какой-то ад.

Лучше б выложенные картинки ВНИМАТЕЛЬНО посмотрели.

 

1. Сигнал D0 слабо коррелирует с TX/RX. На верхних полосах написано "timeline". И это таймлайн и есть. По RX|TX буквально несколько байт проскакивает (и на заметно большей скорости).

2. Сигнал D0 мало похож на UART. Во всяком случае, глазами старт/стоп биты не отыскиваются ни с 8-битными данными, ни с 9-битными.

Русским языком написано, что длина пачки - 145 бит. Вот можно предположить, что старт-стопы у неё в начале и в конце.

 

Советы:

- посмотреть RX/TX на входе и на выходе. Проверяем гипотезу "данные передаются только при нуле этого хитро-сигнала". Точнее, выясняем, кто откуда синхронизируется - хитросигнал подстраивается под данные или данные задерживаются на нужное время.

- преобразовать снятые данные в хекс. Лично мне глазами похожие куски было б легче искать.

- (главное) подумать на тему эмуляции ПК и устройства. Подавать на эту коробочку заранее записанные сигналы, смотреть что меняется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Советчики - это какой-то ад.

Лучше б выложенные картинки ВНИМАТЕЛЬНО посмотрели.

 

Спасибо. Действительно здравые мысли. Я и сам после создания темы пришел к аналогичным выводам. То, что задержка с передачей RX/TX может специально откладываться не подумал, тоже надо будет проверить.

Надо собрать больше инфы =( К сожалению, доступа к переходнику пока нет, буду готовиться.

Буду эмулировать прогу на ПК и буду эмулировать переходник на компе+МК.

 

С преобразованием в хекс пока не понятен размерность данных =(

Напишу парсер для вывода лог анализатора, а то осциллограммы совсем не удобны для этого =(

Думал, кто-нибудь узнает в этой последовательности BCD какой-нибудь, хитрую 5-битную кодировку или что-то подобное... ну да ладно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочется этот переходник повторить. Логический анализатор показал, что линии RX и TX передаются как есть, с небольной задержкой на МК.

С RTS и DTR вроде тоже понятно (указывают устройству, что подключен комп).

НО есть еще один сигнал с переходника на устройство (D0 на скриншоте) - пачки импульсов...

Такие устройства, обычно, разрабатываются из расчета, что взлом их теоретически возможен, но экономически не целесообразен.

То есть времени и денег на это вы затратите много больше, чем на покупку нового экземпляра...

 

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

Решайте проблему с нуля. И извлеките полезный опыт из произошедшего. Никогда не покупайте оборудование с подобными "примочками" -

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

Мнимая, сиюминутная экономия, как правило, всегда ведет к последующим убыткам...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

145 бит - весьма немало. Такая защита может быть неломаемой, а атака на нее - чреватой потерей функциональности.

 

Хотя, для шифрованных данных паттерн пачки слишком регулярен:

011111010000100010010000010000111010011111011110100010010000011110111011
0100000100001000100100000100001110100111110100001000110111110100001110100

 

Со стороны ключа рискованно, но можно проверить наличие повторного проигрывания:

1. Пишем несколько пачек в режиме связи ключ-устройство.

2. Отключаем устройство и более не подключаем к ключу. Пишем несколько пачек с ключа, не подключенного к устройству. Наличие пачек подтверждает применение одностороннего кода.

 

Включаем питание устройства и сначала проигрываем ему пачки, записанные в п.1. Если такое проигрывание приводит к разблокировке - защита слабая (но это не значит, что она уже сломана).

Если защита злая - такое проигрывание может убить устройство (детект попытки взлома).

Далее, проигрывание пачек из п.2.должно разблокировать устройство. Это подтвердит гипотезу об одностороннем прыгающем коде.

 

Связь с RX/TX тут не нужна и ее может вовсе не быть.

Возможно, тут лучше зайти со стороны защищаемого устройства - на чем оно сделано и т.п.

 

UPD:

В зависимости от того, используется стоповый или стартовый бит:

 

7D 08 90 43 A7 DE 89 07 BB
41 08 90 43 A7 D0 8D F4 3A

или:

FA 11 20 87 4F BD 12 0F 76
82 11 20 87 4F A1 1B E8 74

 

Похоже, это две последовательные посылки. В каждой, возможно, пара 32-битных значений + чексумма. Какой-нибудь Keeloq?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...